Mercurial > libavcodec.hg
changeset 8497:927f0ee6e4ad libavcodec
simple_idct: use MUL16 and MAC16 from mathops.h
author | mru |
---|---|
date | Sat, 27 Dec 2008 16:25:36 +0000 |
parents | 19e2f1a50aa7 |
children | 2c7e8fe5fc6a |
files | simple_idct.c |
diffstat | 1 files changed, 17 insertions(+), 36 deletions(-) [+] |
line wrap: on
line diff
--- a/simple_idct.c Sat Dec 27 11:33:26 2008 +0000 +++ b/simple_idct.c Sat Dec 27 16:25:36 2008 +0000 @@ -31,6 +31,7 @@ */ #include "avcodec.h" #include "dsputil.h" +#include "mathops.h" #include "simple_idct.h" #if 0 @@ -55,26 +56,6 @@ #define COL_SHIFT 20 // 6 #endif -#if defined(ARCH_PPC_405) - -/* signed 16x16 -> 32 multiply add accumulate */ -#define MAC16(rt, ra, rb) \ - __asm__ ("maclhw %0, %2, %3" : "=r" (rt) : "0" (rt), "r" (ra), "r" (rb)); - -/* signed 16x16 -> 32 multiply */ -#define MUL16(rt, ra, rb) \ - __asm__ ("mullhw %0, %1, %2" : "=r" (rt) : "r" (ra), "r" (rb)); - -#else - -/* signed 16x16 -> 32 multiply add accumulate */ -#define MAC16(rt, ra, rb) rt += (ra) * (rb) - -/* signed 16x16 -> 32 multiply */ -#define MUL16(rt, ra, rb) rt = (ra) * (rb) - -#endif - static inline void idctRowCondDC (DCTELEM * row) { int a0, a1, a2, a3, b0, b1, b2, b3; @@ -137,13 +118,13 @@ a2 -= W6 * row[2]; a3 -= W2 * row[2]; - MUL16(b0, W1, row[1]); + b0 = MUL16(W1, row[1]); MAC16(b0, W3, row[3]); - MUL16(b1, W3, row[1]); + b1 = MUL16(W3, row[1]); MAC16(b1, -W7, row[3]); - MUL16(b2, W5, row[1]); + b2 = MUL16(W5, row[1]); MAC16(b2, -W1, row[3]); - MUL16(b3, W7, row[1]); + b3 = MUL16(W7, row[1]); MAC16(b3, -W5, row[3]); #ifdef HAVE_FAST_64BIT @@ -197,10 +178,10 @@ a2 += - W6*col[8*2]; a3 += - W2*col[8*2]; - MUL16(b0, W1, col[8*1]); - MUL16(b1, W3, col[8*1]); - MUL16(b2, W5, col[8*1]); - MUL16(b3, W7, col[8*1]); + b0 = MUL16(W1, col[8*1]); + b1 = MUL16(W3, col[8*1]); + b2 = MUL16(W5, col[8*1]); + b3 = MUL16(W7, col[8*1]); MAC16(b0, + W3, col[8*3]); MAC16(b1, - W7, col[8*3]); @@ -269,10 +250,10 @@ a2 += - W6*col[8*2]; a3 += - W2*col[8*2]; - MUL16(b0, W1, col[8*1]); - MUL16(b1, W3, col[8*1]); - MUL16(b2, W5, col[8*1]); - MUL16(b3, W7, col[8*1]); + b0 = MUL16(W1, col[8*1]); + b1 = MUL16(W3, col[8*1]); + b2 = MUL16(W5, col[8*1]); + b3 = MUL16(W7, col[8*1]); MAC16(b0, + W3, col[8*3]); MAC16(b1, - W7, col[8*3]); @@ -339,10 +320,10 @@ a2 += - W6*col[8*2]; a3 += - W2*col[8*2]; - MUL16(b0, W1, col[8*1]); - MUL16(b1, W3, col[8*1]); - MUL16(b2, W5, col[8*1]); - MUL16(b3, W7, col[8*1]); + b0 = MUL16(W1, col[8*1]); + b1 = MUL16(W3, col[8*1]); + b2 = MUL16(W5, col[8*1]); + b3 = MUL16(W7, col[8*1]); MAC16(b0, + W3, col[8*3]); MAC16(b1, - W7, col[8*3]);