# HG changeset patch # User mru # Date 1241458275 0 # Node ID 182f35c8eaedacceb4b70af43081a869738d33cf # Parent f9a7147cc9e6bee575b19650b2e05743cce48a51 PPC: implement MULH() in assembler Left to its own devices, gcc calculates the full 64-bit product only to discard the low 32 bits. This forces it to do the right thing. 20% faster MP3 decoding on G4. diff -r f9a7147cc9e6 -r 182f35c8eaed ppc/mathops.h --- a/ppc/mathops.h Mon May 04 14:23:48 2009 +0000 +++ b/ppc/mathops.h Mon May 04 17:31:15 2009 +0000 @@ -37,4 +37,11 @@ __rt; }) #endif +#define MULH MULH +static inline av_const int MULH(int a, int b){ + int r; + __asm__ ("mulhw %0, %1, %2" : "=r"(r) : "r"(a), "r"(b)); + return r; +} + #endif /* AVCODEC_PPC_MATHOPS_H */