Go to the documentation of this file.
41 #if ((defined (ARM4_ASM)||defined (ARM4_ASM)) && defined(BFIN_ASM)) || (defined (ARM4_ASM)&&defined(ARM5E_ASM))
42 #error Make up your mind. What CPU do you have?
47 #if defined (ARM4_ASM) || defined(ARM5E_ASM) || defined(BFIN_ASM)
48 #error I suppose you can have a [ARM4/ARM5E/Blackfin] that has float instructions?
54 #include "speex/speexdsp_types.h"
57 #define ABS(x) ((x) < 0 ? (-(x)) : (x))
58 #define ABS16(x) ((x) < 0 ? (-(x)) : (x))
59 #define MIN16(a,b) ((a) < (b) ? (a) : (b))
60 #define MAX16(a,b) ((a) > (b) ? (a) : (b))
61 #define ABS32(x) ((x) < 0 ? (-(x)) : (x))
62 #define MIN32(a,b) ((a) < (b) ? (a) : (b))
63 #define MAX32(a,b) ((a) > (b) ? (a) : (b))
76 #define LPC_SCALING 8192
77 #define SIG_SCALING 16384
78 #define LSP_SCALING 8192.
79 #define GAMMA_SCALING 32768.
80 #define GAIN_SCALING 64
81 #define GAIN_SCALING_1 0.015625
88 #define WORD2INT(x) ((x) < -32767 ? -32768 : ((x) > 32766 ? 32767 : (x)))
91 #define VERY_LARGE32 ((spx_word32_t)2147483647)
92 #define VERY_LARGE16 ((spx_word16_t)32767)
93 #define Q15_ONE ((spx_word16_t)32767)
97 #include "fixed_debug.h"
100 #include "fixed_generic.h"
103 #include "fixed_arm5e.h"
104 #elif defined (ARM4_ASM)
105 #include "fixed_arm4.h"
106 #elif defined (BFIN_ASM)
107 #include "fixed_bfin.h"
123 #define LPC_SCALING 1.f
124 #define SIG_SCALING 1.f
125 #define LSP_SCALING 1.f
126 #define GAMMA_SCALING 1.f
127 #define GAIN_SCALING 1.f
128 #define GAIN_SCALING_1 1.f
131 #define VERY_SMALL 1e-15f
132 #define VERY_LARGE32 1e15f
133 #define VERY_LARGE16 1e15f
134 #define Q15_ONE ((spx_word16_t)1.f)
136 #define QCONST16(x,bits) (x)
137 #define QCONST32(x,bits) (x)
139 #define NEG16(x) (-(x))
140 #define NEG32(x) (-(x))
141 #define EXTRACT16(x) (x)
142 #define EXTEND32(x) (x)
143 #define SHR16(a,shift) (a)
144 #define SHL16(a,shift) (a)
145 #define SHR32(a,shift) (a)
146 #define SHL32(a,shift) (a)
147 #define PSHR16(a,shift) (a)
148 #define PSHR32(a,shift) (a)
149 #define VSHR32(a,shift) (a)
150 #define SATURATE16(x,a) (x)
151 #define SATURATE32(x,a) (x)
152 #define SATURATE32PSHR(x,shift,a) (x)
154 #define PSHR(a,shift) (a)
155 #define SHR(a,shift) (a)
156 #define SHL(a,shift) (a)
157 #define SATURATE(x,a) (x)
159 #define ADD16(a,b) ((a)+(b))
160 #define SUB16(a,b) ((a)-(b))
161 #define ADD32(a,b) ((a)+(b))
162 #define SUB32(a,b) ((a)-(b))
163 #define MULT16_16_16(a,b) ((a)*(b))
164 #define MULT16_16(a,b) ((spx_word32_t)(a)*(spx_word32_t)(b))
165 #define MAC16_16(c,a,b) ((c)+(spx_word32_t)(a)*(spx_word32_t)(b))
167 #define MULT16_32_Q11(a,b) ((a)*(b))
168 #define MULT16_32_Q13(a,b) ((a)*(b))
169 #define MULT16_32_Q14(a,b) ((a)*(b))
170 #define MULT16_32_Q15(a,b) ((a)*(b))
171 #define MULT16_32_P15(a,b) ((a)*(b))
173 #define MAC16_32_Q11(c,a,b) ((c)+(a)*(b))
174 #define MAC16_32_Q15(c,a,b) ((c)+(a)*(b))
176 #define MAC16_16_Q11(c,a,b) ((c)+(a)*(b))
177 #define MAC16_16_Q13(c,a,b) ((c)+(a)*(b))
178 #define MAC16_16_P13(c,a,b) ((c)+(a)*(b))
179 #define MULT16_16_Q11_32(a,b) ((a)*(b))
180 #define MULT16_16_Q13(a,b) ((a)*(b))
181 #define MULT16_16_Q14(a,b) ((a)*(b))
182 #define MULT16_16_Q15(a,b) ((a)*(b))
183 #define MULT16_16_P15(a,b) ((a)*(b))
184 #define MULT16_16_P13(a,b) ((a)*(b))
185 #define MULT16_16_P14(a,b) ((a)*(b))
187 #define DIV32_16(a,b) (((spx_word32_t)(a))/(spx_word16_t)(b))
188 #define PDIV32_16(a,b) (((spx_word32_t)(a))/(spx_word16_t)(b))
189 #define DIV32(a,b) (((spx_word32_t)(a))/(spx_word32_t)(b))
190 #define PDIV32(a,b) (((spx_word32_t)(a))/(spx_word32_t)(b))
192 #define WORD2INT(x) ((x) < -32767.5f ? -32768 : \
193 ((x) > 32766.5f ? 32767 : (spx_int16_t)floor(.5 + (x))))
197 #if defined (CONFIG_TI_C54X) || defined (CONFIG_TI_C55X)
200 #define BYTES_PER_CHAR 2
201 #define BITS_PER_CHAR 16
202 #define LOG2_BITS_PER_CHAR 4
206 #define BYTES_PER_CHAR 1
207 #define BITS_PER_CHAR 8
208 #define LOG2_BITS_PER_CHAR 3
215 extern long long spx_mips;