Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Staging: echo cleanup

before:
errors lines of code errors/KLOC
drivers/staging/echo/ 213 1701 125.2

after:
errors lines of code errors/KLOC
drivers/staging/echo/ 8 1685 4.7

Compile tested.

Signed-off-by: Alexander Beregalov <a.beregalov@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

authored by

Alexander Beregalov and committed by
Greg Kroah-Hartman
dc57a3ea 2961f24f

+219 -235
+14 -16
drivers/staging/echo/bit_operations.h
··· 21 21 * You should have received a copy of the GNU General Public License 22 22 * along with this program; if not, write to the Free Software 23 23 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 24 - * 25 - * $Id: bit_operations.h,v 1.11 2006/11/28 15:37:03 steveu Exp $ 26 24 */ 27 25 28 26 /*! \file */ ··· 32 34 /*! \brief Find the bit position of the highest set bit in a word 33 35 \param bits The word to be searched 34 36 \return The bit number of the highest set bit, or -1 if the word is zero. */ 35 - static __inline__ int top_bit(unsigned int bits) 37 + static inline int top_bit(unsigned int bits) 36 38 { 37 39 int res; 38 40 ··· 48 50 /*! \brief Find the bit position of the lowest set bit in a word 49 51 \param bits The word to be searched 50 52 \return The bit number of the lowest set bit, or -1 if the word is zero. */ 51 - static __inline__ int bottom_bit(unsigned int bits) 53 + static inline int bottom_bit(unsigned int bits) 52 54 { 53 55 int res; 54 56 ··· 61 63 return res; 62 64 } 63 65 #else 64 - static __inline__ int top_bit(unsigned int bits) 66 + static inline int top_bit(unsigned int bits) 65 67 { 66 68 int i; 67 69 ··· 91 93 return i; 92 94 } 93 95 94 - static __inline__ int bottom_bit(unsigned int bits) 96 + static inline int bottom_bit(unsigned int bits) 95 97 { 96 98 int i; 97 99 ··· 125 127 /*! \brief Bit reverse a byte. 126 128 \param data The byte to be reversed. 127 129 \return The bit reversed version of data. */ 128 - static __inline__ uint8_t bit_reverse8(uint8_t x) 130 + static inline uint8_t bit_reverse8(uint8_t x) 129 131 { 130 132 #if defined(__i386__) || defined(__x86_64__) 131 133 /* If multiply is fast */ ··· 170 172 uint16_t make_mask16(uint16_t x); 171 173 172 174 /*! \brief Find the least significant one in a word, and return a word 173 - with just that bit set. 175 + with just that bit set. 174 176 \param x The word to be searched. 175 177 \return The word with the single set bit. */ 176 - static __inline__ uint32_t least_significant_one32(uint32_t x) 178 + static inline uint32_t least_significant_one32(uint32_t x) 177 179 { 178 - return (x & (-(int32_t) x)); 180 + return x & (-(int32_t) x); 179 181 } 180 182 181 183 /*! \brief Find the most significant one in a word, and return a word 182 - with just that bit set. 184 + with just that bit set. 183 185 \param x The word to be searched. 184 186 \return The word with the single set bit. */ 185 - static __inline__ uint32_t most_significant_one32(uint32_t x) 187 + static inline uint32_t most_significant_one32(uint32_t x) 186 188 { 187 189 #if defined(__i386__) || defined(__x86_64__) 188 190 return 1 << top_bit(x); 189 191 #else 190 192 x = make_mask32(x); 191 - return (x ^ (x >> 1)); 193 + return x ^ (x >> 1); 192 194 #endif 193 195 } 194 196 195 197 /*! \brief Find the parity of a byte. 196 198 \param x The byte to be checked. 197 199 \return 1 for odd, or 0 for even. */ 198 - static __inline__ int parity8(uint8_t x) 200 + static inline int parity8(uint8_t x) 199 201 { 200 202 x = (x ^ (x >> 4)) & 0x0F; 201 203 return (0x6996 >> x) & 1; ··· 204 206 /*! \brief Find the parity of a 16 bit word. 205 207 \param x The word to be checked. 206 208 \return 1 for odd, or 0 for even. */ 207 - static __inline__ int parity16(uint16_t x) 209 + static inline int parity16(uint16_t x) 208 210 { 209 211 x ^= (x >> 8); 210 212 x = (x ^ (x >> 4)) & 0x0F; ··· 214 216 /*! \brief Find the parity of a 32 bit word. 215 217 \param x The word to be checked. 216 218 \return 1 for odd, or 0 for even. */ 217 - static __inline__ int parity32(uint32_t x) 219 + static inline int parity32(uint32_t x) 218 220 { 219 221 x ^= (x >> 16); 220 222 x ^= (x >> 8);
+16 -26
drivers/staging/echo/echo.c
··· 27 27 * You should have received a copy of the GNU General Public License 28 28 * along with this program; if not, write to the Free Software 29 29 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 30 - * 31 - * $Id: echo.c,v 1.20 2006/12/01 18:00:48 steveu Exp $ 32 30 */ 33 31 34 32 /*! \file */ ··· 111 113 112 114 #define MIN_TX_POWER_FOR_ADAPTION 64 113 115 #define MIN_RX_POWER_FOR_ADAPTION 64 114 - #define DTD_HANGOVER 600 /* 600 samples, or 75ms */ 115 - #define DC_LOG2BETA 3 /* log2() of DC filter Beta */ 116 + #define DTD_HANGOVER 600 /* 600 samples, or 75ms */ 117 + #define DC_LOG2BETA 3 /* log2() of DC filter Beta */ 116 118 117 119 /*-----------------------------------------------------------------------*\ 118 - FUNCTIONS 120 + FUNCTIONS 119 121 \*-----------------------------------------------------------------------*/ 120 122 121 123 /* adapting coeffs using the traditional stochastic descent (N)LMS algorithm */ 122 124 123 125 #ifdef __bfin__ 124 - static void __inline__ lms_adapt_bg(struct oslec_state *ec, int clean, 126 + static inline void lms_adapt_bg(struct oslec_state *ec, int clean, 125 127 int shift) 126 128 { 127 129 int i, j; ··· 145 147 146 148 /* st: and en: help us locate the assembler in echo.s */ 147 149 148 - //asm("st:"); 150 + /* asm("st:"); */ 149 151 n = ec->taps; 150 152 for (i = 0, j = offset2; i < n; i++, j++) { 151 153 exp = *phist++ * factor; 152 154 ec->fir_taps16[1][i] += (int16_t) ((exp + (1 << 14)) >> 15); 153 155 } 154 - //asm("en:"); 156 + /* asm("en:"); */ 155 157 156 158 /* Note the asm for the inner loop above generated by Blackfin gcc 157 159 4.1.1 is pretty good (note even parallel instructions used): ··· 193 195 */ 194 196 195 197 #else 196 - static __inline__ void lms_adapt_bg(struct oslec_state *ec, int clean, 198 + static inline void lms_adapt_bg(struct oslec_state *ec, int clean, 197 199 int shift) 198 200 { 199 201 int i; ··· 247 249 fir16_create(&ec->fir_state, ec->fir_taps16[0], ec->taps); 248 250 fir16_create(&ec->fir_state_bg, ec->fir_taps16[1], ec->taps); 249 251 250 - for (i = 0; i < 5; i++) { 252 + for (i = 0; i < 5; i++) 251 253 ec->xvtx[i] = ec->yvtx[i] = ec->xvrx[i] = ec->yvrx[i] = 0; 252 - } 253 254 254 255 ec->cng_level = 1000; 255 256 oslec_adaption_mode(ec, adaption_mode); ··· 268 271 269 272 return ec; 270 273 271 - error_oom: 274 + error_oom: 272 275 for (i = 0; i < 2; i++) 273 276 kfree(ec->fir_taps16[i]); 274 277 275 278 kfree(ec); 276 279 return NULL; 277 280 } 278 - 279 281 EXPORT_SYMBOL_GPL(oslec_create); 280 282 281 283 void oslec_free(struct oslec_state *ec) ··· 288 292 kfree(ec->snapshot); 289 293 kfree(ec); 290 294 } 291 - 292 295 EXPORT_SYMBOL_GPL(oslec_free); 293 296 294 297 void oslec_adaption_mode(struct oslec_state *ec, int adaption_mode) 295 298 { 296 299 ec->adaption_mode = adaption_mode; 297 300 } 298 - 299 301 EXPORT_SYMBOL_GPL(oslec_adaption_mode); 300 302 301 303 void oslec_flush(struct oslec_state *ec) ··· 320 326 ec->curr_pos = ec->taps - 1; 321 327 ec->Pstates = 0; 322 328 } 323 - 324 329 EXPORT_SYMBOL_GPL(oslec_flush); 325 330 326 331 void oslec_snapshot(struct oslec_state *ec) 327 332 { 328 333 memcpy(ec->snapshot, ec->fir_taps16[0], ec->taps * sizeof(int16_t)); 329 334 } 330 - 331 335 EXPORT_SYMBOL_GPL(oslec_snapshot); 332 336 333 337 /* Dual Path Echo Canceller ------------------------------------------------*/ ··· 391 399 /* efficient "out with the old and in with the new" algorithm so 392 400 we don't have to recalculate over the whole block of 393 401 samples. */ 394 - new = (int)tx *(int)tx; 402 + new = (int)tx * (int)tx; 395 403 old = (int)ec->fir_state.history[ec->fir_state.curr_pos] * 396 404 (int)ec->fir_state.history[ec->fir_state.curr_pos]; 397 405 ec->Pstates += ··· 490 498 491 499 if ((ec->adaption_mode & ECHO_CAN_USE_ADAPTION) && 492 500 (ec->nonupdate_dwell == 0) && 493 - (8 * ec->Lclean_bg < 494 - 7 * ec->Lclean) /* (ec->Lclean_bg < 0.875*ec->Lclean) */ && 495 - (8 * ec->Lclean_bg < 496 - ec->Ltx) /* (ec->Lclean_bg < 0.125*ec->Ltx) */ ) { 501 + /* (ec->Lclean_bg < 0.875*ec->Lclean) */ 502 + (8 * ec->Lclean_bg < 7 * ec->Lclean) && 503 + /* (ec->Lclean_bg < 0.125*ec->Ltx) */ 504 + (8 * ec->Lclean_bg < ec->Ltx)) { 497 505 if (ec->cond_met == 6) { 498 506 /* BG filter has had better results for 6 consecutive samples */ 499 507 ec->adapt = 1; 500 508 memcpy(ec->fir_taps16[0], ec->fir_taps16[1], 501 - ec->taps * sizeof(int16_t)); 509 + ec->taps * sizeof(int16_t)); 502 510 } else 503 511 ec->cond_met++; 504 512 } else ··· 572 580 573 581 return (int16_t) ec->clean_nlp << 1; 574 582 } 575 - 576 583 EXPORT_SYMBOL_GPL(oslec_update); 577 584 578 585 /* This function is seperated from the echo canceller is it is usually called ··· 595 604 precision, which noise shapes things, giving very clean DC removal. 596 605 */ 597 606 598 - int16_t oslec_hpf_tx(struct oslec_state * ec, int16_t tx) 607 + int16_t oslec_hpf_tx(struct oslec_state *ec, int16_t tx) 599 608 { 600 609 int tmp, tmp1; 601 610 ··· 620 629 621 630 return tx; 622 631 } 623 - 624 632 EXPORT_SYMBOL_GPL(oslec_hpf_tx); 625 633 626 634 MODULE_LICENSE("GPL");
-2
drivers/staging/echo/echo.h
··· 23 23 * You should have received a copy of the GNU General Public License 24 24 * along with this program; if not, write to the Free Software 25 25 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 26 - * 27 - * $Id: echo.h,v 1.9 2006/10/24 13:45:28 steveu Exp $ 28 26 */ 29 27 30 28 #ifndef __ECHO_H
+13 -15
drivers/staging/echo/fir.h
··· 21 21 * You should have received a copy of the GNU General Public License 22 22 * along with this program; if not, write to the Free Software 23 23 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 24 - * 25 - * $Id: fir.h,v 1.8 2006/10/24 13:45:28 steveu Exp $ 26 24 */ 27 25 28 26 /*! \page fir_page FIR filtering ··· 100 102 float *history; 101 103 }; 102 104 103 - static __inline__ const int16_t *fir16_create(struct fir16_state_t *fir, 104 - const int16_t * coeffs, int taps) 105 + static inline const int16_t *fir16_create(struct fir16_state_t *fir, 106 + const int16_t *coeffs, int taps) 105 107 { 106 108 fir->taps = taps; 107 109 fir->curr_pos = taps - 1; ··· 114 116 return fir->history; 115 117 } 116 118 117 - static __inline__ void fir16_flush(struct fir16_state_t *fir) 119 + static inline void fir16_flush(struct fir16_state_t *fir) 118 120 { 119 121 #if defined(USE_MMX) || defined(USE_SSE2) || defined(__bfin__) 120 122 memset(fir->history, 0, 2 * fir->taps * sizeof(int16_t)); ··· 123 125 #endif 124 126 } 125 127 126 - static __inline__ void fir16_free(struct fir16_state_t *fir) 128 + static inline void fir16_free(struct fir16_state_t *fir) 127 129 { 128 130 kfree(fir->history); 129 131 } ··· 146 148 "A0 += R0.L*R1.L (IS);\n\t" 147 149 "R0 = A0;\n\t" 148 150 "%0 = R0;\n\t" 149 - :"=&d"(dot) 150 - :"a"(x), "a"(y), "a"(len) 151 - :"I0", "I1", "A1", "A0", "R0", "R1" 151 + : "=&d"(dot) 152 + : "a"(x), "a"(y), "a"(len) 153 + : "I0", "I1", "A1", "A0", "R0", "R1" 152 154 ); 153 155 154 156 return dot; 155 157 } 156 158 #endif 157 159 158 - static __inline__ int16_t fir16(struct fir16_state_t *fir, int16_t sample) 160 + static inline int16_t fir16(struct fir16_state_t *fir, int16_t sample) 159 161 { 160 162 int32_t y; 161 163 #if defined(USE_MMX) ··· 248 250 return (int16_t) (y >> 15); 249 251 } 250 252 251 - static __inline__ const int16_t *fir32_create(struct fir32_state_t *fir, 252 - const int32_t * coeffs, int taps) 253 + static inline const int16_t *fir32_create(struct fir32_state_t *fir, 254 + const int32_t *coeffs, int taps) 253 255 { 254 256 fir->taps = taps; 255 257 fir->curr_pos = taps - 1; ··· 258 260 return fir->history; 259 261 } 260 262 261 - static __inline__ void fir32_flush(struct fir32_state_t *fir) 263 + static inline void fir32_flush(struct fir32_state_t *fir) 262 264 { 263 265 memset(fir->history, 0, fir->taps * sizeof(int16_t)); 264 266 } 265 267 266 - static __inline__ void fir32_free(struct fir32_state_t *fir) 268 + static inline void fir32_free(struct fir32_state_t *fir) 267 269 { 268 270 kfree(fir->history); 269 271 } 270 272 271 - static __inline__ int16_t fir32(struct fir32_state_t *fir, int16_t sample) 273 + static inline int16_t fir32(struct fir32_state_t *fir, int16_t sample) 272 274 { 273 275 int i; 274 276 int32_t y;
+176 -176
drivers/staging/echo/mmx.h
··· 44 44 char b[16]; 45 45 }; 46 46 47 - #define mmx_i2r(op,imm,reg) \ 48 - __asm__ __volatile__ (#op " %0, %%" #reg \ 49 - : /* nothing */ \ 50 - : "i" (imm) ) 47 + #define mmx_i2r(op, imm, reg) \ 48 + __asm__ __volatile__ (#op " %0, %%" #reg \ 49 + : /* nothing */ \ 50 + : "i" (imm)) 51 51 52 - #define mmx_m2r(op,mem,reg) \ 53 - __asm__ __volatile__ (#op " %0, %%" #reg \ 54 - : /* nothing */ \ 55 - : "m" (mem)) 52 + #define mmx_m2r(op, mem, reg) \ 53 + __asm__ __volatile__ (#op " %0, %%" #reg \ 54 + : /* nothing */ \ 55 + : "m" (mem)) 56 56 57 - #define mmx_r2m(op,reg,mem) \ 58 - __asm__ __volatile__ (#op " %%" #reg ", %0" \ 59 - : "=m" (mem) \ 60 - : /* nothing */ ) 57 + #define mmx_r2m(op, reg, mem) \ 58 + __asm__ __volatile__ (#op " %%" #reg ", %0" \ 59 + : "=m" (mem) \ 60 + : /* nothing */) 61 61 62 - #define mmx_r2r(op,regs,regd) \ 63 - __asm__ __volatile__ (#op " %" #regs ", %" #regd) 62 + #define mmx_r2r(op, regs, regd) \ 63 + __asm__ __volatile__ (#op " %" #regs ", %" #regd) 64 64 65 - #define emms() __asm__ __volatile__ ("emms") 65 + #define emms() __asm__ __volatile__ ("emms") 66 66 67 - #define movd_m2r(var,reg) mmx_m2r (movd, var, reg) 68 - #define movd_r2m(reg,var) mmx_r2m (movd, reg, var) 69 - #define movd_r2r(regs,regd) mmx_r2r (movd, regs, regd) 67 + #define movd_m2r(var, reg) mmx_m2r(movd, var, reg) 68 + #define movd_r2m(reg, var) mmx_r2m(movd, reg, var) 69 + #define movd_r2r(regs, regd) mmx_r2r(movd, regs, regd) 70 70 71 - #define movq_m2r(var,reg) mmx_m2r (movq, var, reg) 72 - #define movq_r2m(reg,var) mmx_r2m (movq, reg, var) 73 - #define movq_r2r(regs,regd) mmx_r2r (movq, regs, regd) 71 + #define movq_m2r(var, reg) mmx_m2r(movq, var, reg) 72 + #define movq_r2m(reg, var) mmx_r2m(movq, reg, var) 73 + #define movq_r2r(regs, regd) mmx_r2r(movq, regs, regd) 74 74 75 - #define packssdw_m2r(var,reg) mmx_m2r (packssdw, var, reg) 76 - #define packssdw_r2r(regs,regd) mmx_r2r (packssdw, regs, regd) 77 - #define packsswb_m2r(var,reg) mmx_m2r (packsswb, var, reg) 78 - #define packsswb_r2r(regs,regd) mmx_r2r (packsswb, regs, regd) 75 + #define packssdw_m2r(var, reg) mmx_m2r(packssdw, var, reg) 76 + #define packssdw_r2r(regs, regd) mmx_r2r(packssdw, regs, regd) 77 + #define packsswb_m2r(var, reg) mmx_m2r(packsswb, var, reg) 78 + #define packsswb_r2r(regs, regd) mmx_r2r(packsswb, regs, regd) 79 79 80 - #define packuswb_m2r(var,reg) mmx_m2r (packuswb, var, reg) 81 - #define packuswb_r2r(regs,regd) mmx_r2r (packuswb, regs, regd) 80 + #define packuswb_m2r(var, reg) mmx_m2r(packuswb, var, reg) 81 + #define packuswb_r2r(regs, regd) mmx_r2r(packuswb, regs, regd) 82 82 83 - #define paddb_m2r(var,reg) mmx_m2r (paddb, var, reg) 84 - #define paddb_r2r(regs,regd) mmx_r2r (paddb, regs, regd) 85 - #define paddd_m2r(var,reg) mmx_m2r (paddd, var, reg) 86 - #define paddd_r2r(regs,regd) mmx_r2r (paddd, regs, regd) 87 - #define paddw_m2r(var,reg) mmx_m2r (paddw, var, reg) 88 - #define paddw_r2r(regs,regd) mmx_r2r (paddw, regs, regd) 83 + #define paddb_m2r(var, reg) mmx_m2r(paddb, var, reg) 84 + #define paddb_r2r(regs, regd) mmx_r2r(paddb, regs, regd) 85 + #define paddd_m2r(var, reg) mmx_m2r(paddd, var, reg) 86 + #define paddd_r2r(regs, regd) mmx_r2r(paddd, regs, regd) 87 + #define paddw_m2r(var, reg) mmx_m2r(paddw, var, reg) 88 + #define paddw_r2r(regs, regd) mmx_r2r(paddw, regs, regd) 89 89 90 - #define paddsb_m2r(var,reg) mmx_m2r (paddsb, var, reg) 91 - #define paddsb_r2r(regs,regd) mmx_r2r (paddsb, regs, regd) 92 - #define paddsw_m2r(var,reg) mmx_m2r (paddsw, var, reg) 93 - #define paddsw_r2r(regs,regd) mmx_r2r (paddsw, regs, regd) 90 + #define paddsb_m2r(var, reg) mmx_m2r(paddsb, var, reg) 91 + #define paddsb_r2r(regs, regd) mmx_r2r(paddsb, regs, regd) 92 + #define paddsw_m2r(var, reg) mmx_m2r(paddsw, var, reg) 93 + #define paddsw_r2r(regs, regd) mmx_r2r(paddsw, regs, regd) 94 94 95 - #define paddusb_m2r(var,reg) mmx_m2r (paddusb, var, reg) 96 - #define paddusb_r2r(regs,regd) mmx_r2r (paddusb, regs, regd) 97 - #define paddusw_m2r(var,reg) mmx_m2r (paddusw, var, reg) 98 - #define paddusw_r2r(regs,regd) mmx_r2r (paddusw, regs, regd) 95 + #define paddusb_m2r(var, reg) mmx_m2r(paddusb, var, reg) 96 + #define paddusb_r2r(regs, regd) mmx_r2r(paddusb, regs, regd) 97 + #define paddusw_m2r(var, reg) mmx_m2r(paddusw, var, reg) 98 + #define paddusw_r2r(regs, regd) mmx_r2r(paddusw, regs, regd) 99 99 100 - #define pand_m2r(var,reg) mmx_m2r (pand, var, reg) 101 - #define pand_r2r(regs,regd) mmx_r2r (pand, regs, regd) 100 + #define pand_m2r(var, reg) mmx_m2r(pand, var, reg) 101 + #define pand_r2r(regs, regd) mmx_r2r(pand, regs, regd) 102 102 103 - #define pandn_m2r(var,reg) mmx_m2r (pandn, var, reg) 104 - #define pandn_r2r(regs,regd) mmx_r2r (pandn, regs, regd) 103 + #define pandn_m2r(var, reg) mmx_m2r(pandn, var, reg) 104 + #define pandn_r2r(regs, regd) mmx_r2r(pandn, regs, regd) 105 105 106 - #define pcmpeqb_m2r(var,reg) mmx_m2r (pcmpeqb, var, reg) 107 - #define pcmpeqb_r2r(regs,regd) mmx_r2r (pcmpeqb, regs, regd) 108 - #define pcmpeqd_m2r(var,reg) mmx_m2r (pcmpeqd, var, reg) 109 - #define pcmpeqd_r2r(regs,regd) mmx_r2r (pcmpeqd, regs, regd) 110 - #define pcmpeqw_m2r(var,reg) mmx_m2r (pcmpeqw, var, reg) 111 - #define pcmpeqw_r2r(regs,regd) mmx_r2r (pcmpeqw, regs, regd) 106 + #define pcmpeqb_m2r(var, reg) mmx_m2r(pcmpeqb, var, reg) 107 + #define pcmpeqb_r2r(regs, regd) mmx_r2r(pcmpeqb, regs, regd) 108 + #define pcmpeqd_m2r(var, reg) mmx_m2r(pcmpeqd, var, reg) 109 + #define pcmpeqd_r2r(regs, regd) mmx_r2r(pcmpeqd, regs, regd) 110 + #define pcmpeqw_m2r(var, reg) mmx_m2r(pcmpeqw, var, reg) 111 + #define pcmpeqw_r2r(regs, regd) mmx_r2r(pcmpeqw, regs, regd) 112 112 113 - #define pcmpgtb_m2r(var,reg) mmx_m2r (pcmpgtb, var, reg) 114 - #define pcmpgtb_r2r(regs,regd) mmx_r2r (pcmpgtb, regs, regd) 115 - #define pcmpgtd_m2r(var,reg) mmx_m2r (pcmpgtd, var, reg) 116 - #define pcmpgtd_r2r(regs,regd) mmx_r2r (pcmpgtd, regs, regd) 117 - #define pcmpgtw_m2r(var,reg) mmx_m2r (pcmpgtw, var, reg) 118 - #define pcmpgtw_r2r(regs,regd) mmx_r2r (pcmpgtw, regs, regd) 113 + #define pcmpgtb_m2r(var, reg) mmx_m2r(pcmpgtb, var, reg) 114 + #define pcmpgtb_r2r(regs, regd) mmx_r2r(pcmpgtb, regs, regd) 115 + #define pcmpgtd_m2r(var, reg) mmx_m2r(pcmpgtd, var, reg) 116 + #define pcmpgtd_r2r(regs, regd) mmx_r2r(pcmpgtd, regs, regd) 117 + #define pcmpgtw_m2r(var, reg) mmx_m2r(pcmpgtw, var, reg) 118 + #define pcmpgtw_r2r(regs, regd) mmx_r2r(pcmpgtw, regs, regd) 119 119 120 - #define pmaddwd_m2r(var,reg) mmx_m2r (pmaddwd, var, reg) 121 - #define pmaddwd_r2r(regs,regd) mmx_r2r (pmaddwd, regs, regd) 120 + #define pmaddwd_m2r(var, reg) mmx_m2r(pmaddwd, var, reg) 121 + #define pmaddwd_r2r(regs, regd) mmx_r2r(pmaddwd, regs, regd) 122 122 123 - #define pmulhw_m2r(var,reg) mmx_m2r (pmulhw, var, reg) 124 - #define pmulhw_r2r(regs,regd) mmx_r2r (pmulhw, regs, regd) 123 + #define pmulhw_m2r(var, reg) mmx_m2r(pmulhw, var, reg) 124 + #define pmulhw_r2r(regs, regd) mmx_r2r(pmulhw, regs, regd) 125 125 126 - #define pmullw_m2r(var,reg) mmx_m2r (pmullw, var, reg) 127 - #define pmullw_r2r(regs,regd) mmx_r2r (pmullw, regs, regd) 126 + #define pmullw_m2r(var, reg) mmx_m2r(pmullw, var, reg) 127 + #define pmullw_r2r(regs, regd) mmx_r2r(pmullw, regs, regd) 128 128 129 - #define por_m2r(var,reg) mmx_m2r (por, var, reg) 130 - #define por_r2r(regs,regd) mmx_r2r (por, regs, regd) 129 + #define por_m2r(var, reg) mmx_m2r(por, var, reg) 130 + #define por_r2r(regs, regd) mmx_r2r(por, regs, regd) 131 131 132 - #define pslld_i2r(imm,reg) mmx_i2r (pslld, imm, reg) 133 - #define pslld_m2r(var,reg) mmx_m2r (pslld, var, reg) 134 - #define pslld_r2r(regs,regd) mmx_r2r (pslld, regs, regd) 135 - #define psllq_i2r(imm,reg) mmx_i2r (psllq, imm, reg) 136 - #define psllq_m2r(var,reg) mmx_m2r (psllq, var, reg) 137 - #define psllq_r2r(regs,regd) mmx_r2r (psllq, regs, regd) 138 - #define psllw_i2r(imm,reg) mmx_i2r (psllw, imm, reg) 139 - #define psllw_m2r(var,reg) mmx_m2r (psllw, var, reg) 140 - #define psllw_r2r(regs,regd) mmx_r2r (psllw, regs, regd) 132 + #define pslld_i2r(imm, reg) mmx_i2r(pslld, imm, reg) 133 + #define pslld_m2r(var, reg) mmx_m2r(pslld, var, reg) 134 + #define pslld_r2r(regs, regd) mmx_r2r(pslld, regs, regd) 135 + #define psllq_i2r(imm, reg) mmx_i2r(psllq, imm, reg) 136 + #define psllq_m2r(var, reg) mmx_m2r(psllq, var, reg) 137 + #define psllq_r2r(regs, regd) mmx_r2r(psllq, regs, regd) 138 + #define psllw_i2r(imm, reg) mmx_i2r(psllw, imm, reg) 139 + #define psllw_m2r(var, reg) mmx_m2r(psllw, var, reg) 140 + #define psllw_r2r(regs, regd) mmx_r2r(psllw, regs, regd) 141 141 142 - #define psrad_i2r(imm,reg) mmx_i2r (psrad, imm, reg) 143 - #define psrad_m2r(var,reg) mmx_m2r (psrad, var, reg) 144 - #define psrad_r2r(regs,regd) mmx_r2r (psrad, regs, regd) 145 - #define psraw_i2r(imm,reg) mmx_i2r (psraw, imm, reg) 146 - #define psraw_m2r(var,reg) mmx_m2r (psraw, var, reg) 147 - #define psraw_r2r(regs,regd) mmx_r2r (psraw, regs, regd) 142 + #define psrad_i2r(imm, reg) mmx_i2r(psrad, imm, reg) 143 + #define psrad_m2r(var, reg) mmx_m2r(psrad, var, reg) 144 + #define psrad_r2r(regs, regd) mmx_r2r(psrad, regs, regd) 145 + #define psraw_i2r(imm, reg) mmx_i2r(psraw, imm, reg) 146 + #define psraw_m2r(var, reg) mmx_m2r(psraw, var, reg) 147 + #define psraw_r2r(regs, regd) mmx_r2r(psraw, regs, regd) 148 148 149 - #define psrld_i2r(imm,reg) mmx_i2r (psrld, imm, reg) 150 - #define psrld_m2r(var,reg) mmx_m2r (psrld, var, reg) 151 - #define psrld_r2r(regs,regd) mmx_r2r (psrld, regs, regd) 152 - #define psrlq_i2r(imm,reg) mmx_i2r (psrlq, imm, reg) 153 - #define psrlq_m2r(var,reg) mmx_m2r (psrlq, var, reg) 154 - #define psrlq_r2r(regs,regd) mmx_r2r (psrlq, regs, regd) 155 - #define psrlw_i2r(imm,reg) mmx_i2r (psrlw, imm, reg) 156 - #define psrlw_m2r(var,reg) mmx_m2r (psrlw, var, reg) 157 - #define psrlw_r2r(regs,regd) mmx_r2r (psrlw, regs, regd) 149 + #define psrld_i2r(imm, reg) mmx_i2r(psrld, imm, reg) 150 + #define psrld_m2r(var, reg) mmx_m2r(psrld, var, reg) 151 + #define psrld_r2r(regs, regd) mmx_r2r(psrld, regs, regd) 152 + #define psrlq_i2r(imm, reg) mmx_i2r(psrlq, imm, reg) 153 + #define psrlq_m2r(var, reg) mmx_m2r(psrlq, var, reg) 154 + #define psrlq_r2r(regs, regd) mmx_r2r(psrlq, regs, regd) 155 + #define psrlw_i2r(imm, reg) mmx_i2r(psrlw, imm, reg) 156 + #define psrlw_m2r(var, reg) mmx_m2r(psrlw, var, reg) 157 + #define psrlw_r2r(regs, regd) mmx_r2r(psrlw, regs, regd) 158 158 159 - #define psubb_m2r(var,reg) mmx_m2r (psubb, var, reg) 160 - #define psubb_r2r(regs,regd) mmx_r2r (psubb, regs, regd) 161 - #define psubd_m2r(var,reg) mmx_m2r (psubd, var, reg) 162 - #define psubd_r2r(regs,regd) mmx_r2r (psubd, regs, regd) 163 - #define psubw_m2r(var,reg) mmx_m2r (psubw, var, reg) 164 - #define psubw_r2r(regs,regd) mmx_r2r (psubw, regs, regd) 159 + #define psubb_m2r(var, reg) mmx_m2r(psubb, var, reg) 160 + #define psubb_r2r(regs, regd) mmx_r2r(psubb, regs, regd) 161 + #define psubd_m2r(var, reg) mmx_m2r(psubd, var, reg) 162 + #define psubd_r2r(regs, regd) mmx_r2r(psubd, regs, regd) 163 + #define psubw_m2r(var, reg) mmx_m2r(psubw, var, reg) 164 + #define psubw_r2r(regs, regd) mmx_r2r(psubw, regs, regd) 165 165 166 - #define psubsb_m2r(var,reg) mmx_m2r (psubsb, var, reg) 167 - #define psubsb_r2r(regs,regd) mmx_r2r (psubsb, regs, regd) 168 - #define psubsw_m2r(var,reg) mmx_m2r (psubsw, var, reg) 169 - #define psubsw_r2r(regs,regd) mmx_r2r (psubsw, regs, regd) 166 + #define psubsb_m2r(var, reg) mmx_m2r(psubsb, var, reg) 167 + #define psubsb_r2r(regs, regd) mmx_r2r(psubsb, regs, regd) 168 + #define psubsw_m2r(var, reg) mmx_m2r(psubsw, var, reg) 169 + #define psubsw_r2r(regs, regd) mmx_r2r(psubsw, regs, regd) 170 170 171 - #define psubusb_m2r(var,reg) mmx_m2r (psubusb, var, reg) 172 - #define psubusb_r2r(regs,regd) mmx_r2r (psubusb, regs, regd) 173 - #define psubusw_m2r(var,reg) mmx_m2r (psubusw, var, reg) 174 - #define psubusw_r2r(regs,regd) mmx_r2r (psubusw, regs, regd) 171 + #define psubusb_m2r(var, reg) mmx_m2r(psubusb, var, reg) 172 + #define psubusb_r2r(regs, regd) mmx_r2r(psubusb, regs, regd) 173 + #define psubusw_m2r(var, reg) mmx_m2r(psubusw, var, reg) 174 + #define psubusw_r2r(regs, regd) mmx_r2r(psubusw, regs, regd) 175 175 176 - #define punpckhbw_m2r(var,reg) mmx_m2r (punpckhbw, var, reg) 177 - #define punpckhbw_r2r(regs,regd) mmx_r2r (punpckhbw, regs, regd) 178 - #define punpckhdq_m2r(var,reg) mmx_m2r (punpckhdq, var, reg) 179 - #define punpckhdq_r2r(regs,regd) mmx_r2r (punpckhdq, regs, regd) 180 - #define punpckhwd_m2r(var,reg) mmx_m2r (punpckhwd, var, reg) 181 - #define punpckhwd_r2r(regs,regd) mmx_r2r (punpckhwd, regs, regd) 176 + #define punpckhbw_m2r(var, reg) mmx_m2r(punpckhbw, var, reg) 177 + #define punpckhbw_r2r(regs, regd) mmx_r2r(punpckhbw, regs, regd) 178 + #define punpckhdq_m2r(var, reg) mmx_m2r(punpckhdq, var, reg) 179 + #define punpckhdq_r2r(regs, regd) mmx_r2r(punpckhdq, regs, regd) 180 + #define punpckhwd_m2r(var, reg) mmx_m2r(punpckhwd, var, reg) 181 + #define punpckhwd_r2r(regs, regd) mmx_r2r(punpckhwd, regs, regd) 182 182 183 - #define punpcklbw_m2r(var,reg) mmx_m2r (punpcklbw, var, reg) 184 - #define punpcklbw_r2r(regs,regd) mmx_r2r (punpcklbw, regs, regd) 185 - #define punpckldq_m2r(var,reg) mmx_m2r (punpckldq, var, reg) 186 - #define punpckldq_r2r(regs,regd) mmx_r2r (punpckldq, regs, regd) 187 - #define punpcklwd_m2r(var,reg) mmx_m2r (punpcklwd, var, reg) 188 - #define punpcklwd_r2r(regs,regd) mmx_r2r (punpcklwd, regs, regd) 183 + #define punpcklbw_m2r(var, reg) mmx_m2r(punpcklbw, var, reg) 184 + #define punpcklbw_r2r(regs, regd) mmx_r2r(punpcklbw, regs, regd) 185 + #define punpckldq_m2r(var, reg) mmx_m2r(punpckldq, var, reg) 186 + #define punpckldq_r2r(regs, regd) mmx_r2r(punpckldq, regs, regd) 187 + #define punpcklwd_m2r(var, reg) mmx_m2r(punpcklwd, var, reg) 188 + #define punpcklwd_r2r(regs, regd) mmx_r2r(punpcklwd, regs, regd) 189 189 190 - #define pxor_m2r(var,reg) mmx_m2r (pxor, var, reg) 191 - #define pxor_r2r(regs,regd) mmx_r2r (pxor, regs, regd) 190 + #define pxor_m2r(var, reg) mmx_m2r(pxor, var, reg) 191 + #define pxor_r2r(regs, regd) mmx_r2r(pxor, regs, regd) 192 192 193 193 /* 3DNOW extensions */ 194 194 195 - #define pavgusb_m2r(var,reg) mmx_m2r (pavgusb, var, reg) 196 - #define pavgusb_r2r(regs,regd) mmx_r2r (pavgusb, regs, regd) 195 + #define pavgusb_m2r(var, reg) mmx_m2r(pavgusb, var, reg) 196 + #define pavgusb_r2r(regs, regd) mmx_r2r(pavgusb, regs, regd) 197 197 198 198 /* AMD MMX extensions - also available in intel SSE */ 199 199 200 - #define mmx_m2ri(op,mem,reg,imm) \ 201 - __asm__ __volatile__ (#op " %1, %0, %%" #reg \ 202 - : /* nothing */ \ 203 - : "m" (mem), "i" (imm)) 204 - #define mmx_r2ri(op,regs,regd,imm) \ 205 - __asm__ __volatile__ (#op " %0, %%" #regs ", %%" #regd \ 206 - : /* nothing */ \ 207 - : "i" (imm) ) 200 + #define mmx_m2ri(op, mem, reg, imm) \ 201 + __asm__ __volatile__ (#op " %1, %0, %%" #reg \ 202 + : /* nothing */ \ 203 + : "m" (mem), "i" (imm)) 204 + #define mmx_r2ri(op, regs, regd, imm) \ 205 + __asm__ __volatile__ (#op " %0, %%" #regs ", %%" #regd \ 206 + : /* nothing */ \ 207 + : "i" (imm)) 208 208 209 - #define mmx_fetch(mem,hint) \ 210 - __asm__ __volatile__ ("prefetch" #hint " %0" \ 211 - : /* nothing */ \ 212 - : "m" (mem)) 209 + #define mmx_fetch(mem, hint) \ 210 + __asm__ __volatile__ ("prefetch" #hint " %0" \ 211 + : /* nothing */ \ 212 + : "m" (mem)) 213 213 214 - #define maskmovq(regs,maskreg) mmx_r2ri (maskmovq, regs, maskreg) 214 + #define maskmovq(regs, maskreg) mmx_r2ri(maskmovq, regs, maskreg) 215 215 216 - #define movntq_r2m(mmreg,var) mmx_r2m (movntq, mmreg, var) 216 + #define movntq_r2m(mmreg, var) mmx_r2m(movntq, mmreg, var) 217 217 218 - #define pavgb_m2r(var,reg) mmx_m2r (pavgb, var, reg) 219 - #define pavgb_r2r(regs,regd) mmx_r2r (pavgb, regs, regd) 220 - #define pavgw_m2r(var,reg) mmx_m2r (pavgw, var, reg) 221 - #define pavgw_r2r(regs,regd) mmx_r2r (pavgw, regs, regd) 218 + #define pavgb_m2r(var, reg) mmx_m2r(pavgb, var, reg) 219 + #define pavgb_r2r(regs, regd) mmx_r2r(pavgb, regs, regd) 220 + #define pavgw_m2r(var, reg) mmx_m2r(pavgw, var, reg) 221 + #define pavgw_r2r(regs, regd) mmx_r2r(pavgw, regs, regd) 222 222 223 - #define pextrw_r2r(mmreg,reg,imm) mmx_r2ri (pextrw, mmreg, reg, imm) 223 + #define pextrw_r2r(mmreg, reg, imm) mmx_r2ri(pextrw, mmreg, reg, imm) 224 224 225 - #define pinsrw_r2r(reg,mmreg,imm) mmx_r2ri (pinsrw, reg, mmreg, imm) 225 + #define pinsrw_r2r(reg, mmreg, imm) mmx_r2ri(pinsrw, reg, mmreg, imm) 226 226 227 - #define pmaxsw_m2r(var,reg) mmx_m2r (pmaxsw, var, reg) 228 - #define pmaxsw_r2r(regs,regd) mmx_r2r (pmaxsw, regs, regd) 227 + #define pmaxsw_m2r(var, reg) mmx_m2r(pmaxsw, var, reg) 228 + #define pmaxsw_r2r(regs, regd) mmx_r2r(pmaxsw, regs, regd) 229 229 230 - #define pmaxub_m2r(var,reg) mmx_m2r (pmaxub, var, reg) 231 - #define pmaxub_r2r(regs,regd) mmx_r2r (pmaxub, regs, regd) 230 + #define pmaxub_m2r(var, reg) mmx_m2r(pmaxub, var, reg) 231 + #define pmaxub_r2r(regs, regd) mmx_r2r(pmaxub, regs, regd) 232 232 233 - #define pminsw_m2r(var,reg) mmx_m2r (pminsw, var, reg) 234 - #define pminsw_r2r(regs,regd) mmx_r2r (pminsw, regs, regd) 233 + #define pminsw_m2r(var, reg) mmx_m2r(pminsw, var, reg) 234 + #define pminsw_r2r(regs, regd) mmx_r2r(pminsw, regs, regd) 235 235 236 - #define pminub_m2r(var,reg) mmx_m2r (pminub, var, reg) 237 - #define pminub_r2r(regs,regd) mmx_r2r (pminub, regs, regd) 236 + #define pminub_m2r(var, reg) mmx_m2r(pminub, var, reg) 237 + #define pminub_r2r(regs, regd) mmx_r2r(pminub, regs, regd) 238 238 239 - #define pmovmskb(mmreg,reg) \ 240 - __asm__ __volatile__ ("movmskps %" #mmreg ", %" #reg) 239 + #define pmovmskb(mmreg, reg) \ 240 + __asm__ __volatile__ ("movmskps %" #mmreg ", %" #reg) 241 241 242 - #define pmulhuw_m2r(var,reg) mmx_m2r (pmulhuw, var, reg) 243 - #define pmulhuw_r2r(regs,regd) mmx_r2r (pmulhuw, regs, regd) 242 + #define pmulhuw_m2r(var, reg) mmx_m2r(pmulhuw, var, reg) 243 + #define pmulhuw_r2r(regs, regd) mmx_r2r(pmulhuw, regs, regd) 244 244 245 - #define prefetcht0(mem) mmx_fetch (mem, t0) 246 - #define prefetcht1(mem) mmx_fetch (mem, t1) 247 - #define prefetcht2(mem) mmx_fetch (mem, t2) 248 - #define prefetchnta(mem) mmx_fetch (mem, nta) 245 + #define prefetcht0(mem) mmx_fetch(mem, t0) 246 + #define prefetcht1(mem) mmx_fetch(mem, t1) 247 + #define prefetcht2(mem) mmx_fetch(mem, t2) 248 + #define prefetchnta(mem) mmx_fetch(mem, nta) 249 249 250 - #define psadbw_m2r(var,reg) mmx_m2r (psadbw, var, reg) 251 - #define psadbw_r2r(regs,regd) mmx_r2r (psadbw, regs, regd) 250 + #define psadbw_m2r(var, reg) mmx_m2r(psadbw, var, reg) 251 + #define psadbw_r2r(regs, regd) mmx_r2r(psadbw, regs, regd) 252 252 253 - #define pshufw_m2r(var,reg,imm) mmx_m2ri(pshufw, var, reg, imm) 254 - #define pshufw_r2r(regs,regd,imm) mmx_r2ri(pshufw, regs, regd, imm) 253 + #define pshufw_m2r(var, reg, imm) mmx_m2ri(pshufw, var, reg, imm) 254 + #define pshufw_r2r(regs, regd, imm) mmx_r2ri(pshufw, regs, regd, imm) 255 255 256 - #define sfence() __asm__ __volatile__ ("sfence\n\t") 256 + #define sfence() __asm__ __volatile__ ("sfence\n\t") 257 257 258 258 /* SSE2 */ 259 - #define pshufhw_m2r(var,reg,imm) mmx_m2ri(pshufhw, var, reg, imm) 260 - #define pshufhw_r2r(regs,regd,imm) mmx_r2ri(pshufhw, regs, regd, imm) 261 - #define pshuflw_m2r(var,reg,imm) mmx_m2ri(pshuflw, var, reg, imm) 262 - #define pshuflw_r2r(regs,regd,imm) mmx_r2ri(pshuflw, regs, regd, imm) 259 + #define pshufhw_m2r(var, reg, imm) mmx_m2ri(pshufhw, var, reg, imm) 260 + #define pshufhw_r2r(regs, regd, imm) mmx_r2ri(pshufhw, regs, regd, imm) 261 + #define pshuflw_m2r(var, reg, imm) mmx_m2ri(pshuflw, var, reg, imm) 262 + #define pshuflw_r2r(regs, regd, imm) mmx_r2ri(pshuflw, regs, regd, imm) 263 263 264 - #define pshufd_r2r(regs,regd,imm) mmx_r2ri(pshufd, regs, regd, imm) 264 + #define pshufd_r2r(regs, regd, imm) mmx_r2ri(pshufd, regs, regd, imm) 265 265 266 - #define movdqa_m2r(var,reg) mmx_m2r (movdqa, var, reg) 267 - #define movdqa_r2m(reg,var) mmx_r2m (movdqa, reg, var) 268 - #define movdqa_r2r(regs,regd) mmx_r2r (movdqa, regs, regd) 269 - #define movdqu_m2r(var,reg) mmx_m2r (movdqu, var, reg) 270 - #define movdqu_r2m(reg,var) mmx_r2m (movdqu, reg, var) 271 - #define movdqu_r2r(regs,regd) mmx_r2r (movdqu, regs, regd) 266 + #define movdqa_m2r(var, reg) mmx_m2r(movdqa, var, reg) 267 + #define movdqa_r2m(reg, var) mmx_r2m(movdqa, reg, var) 268 + #define movdqa_r2r(regs, regd) mmx_r2r(movdqa, regs, regd) 269 + #define movdqu_m2r(var, reg) mmx_m2r(movdqu, var, reg) 270 + #define movdqu_r2m(reg, var) mmx_r2m(movdqu, reg, var) 271 + #define movdqu_r2r(regs, regd) mmx_r2r(movdqu, regs, regd) 272 272 273 - #define pmullw_r2m(reg,var) mmx_r2m (pmullw, reg, var) 273 + #define pmullw_r2m(reg, var) mmx_r2m(pmullw, reg, var) 274 274 275 - #define pslldq_i2r(imm,reg) mmx_i2r (pslldq, imm, reg) 276 - #define psrldq_i2r(imm,reg) mmx_i2r (psrldq, imm, reg) 275 + #define pslldq_i2r(imm, reg) mmx_i2r(pslldq, imm, reg) 276 + #define psrldq_i2r(imm, reg) mmx_i2r(psrldq, imm, reg) 277 277 278 - #define punpcklqdq_r2r(regs,regd) mmx_r2r (punpcklqdq, regs, regd) 279 - #define punpckhqdq_r2r(regs,regd) mmx_r2r (punpckhqdq, regs, regd) 278 + #define punpcklqdq_r2r(regs, regd) mmx_r2r(punpcklqdq, regs, regd) 279 + #define punpckhqdq_r2r(regs, regd) mmx_r2r(punpckhqdq, regs, regd) 280 280 281 281 #endif /* AVCODEC_I386MMX_H */