# HG changeset patch # User mru # Date 1230395136 0 # Node ID 927f0ee6e4adfd721063d7a3bb7ad9be94554526 # Parent 19e2f1a50aa77e8c6fbfff089b387bd31c6ccd7f simple_idct: use MUL16 and MAC16 from mathops.h diff -r 19e2f1a50aa7 -r 927f0ee6e4ad simple_idct.c --- 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]);