diff options
author | Steve Kondik <shade@chemlab.org> | 2012-11-18 14:51:05 -0800 |
---|---|---|
committer | Steve Kondik <shade@chemlab.org> | 2012-11-18 14:51:05 -0800 |
commit | b2511c6a79ea8d029b2b9d19130fd41d9838546f (patch) | |
tree | 19735375d488a64d7005b3b8e9ecec5438168913 /libFDK/include/mips/cplx_mul.h | |
parent | 49fa8770b0adce84246d5db3feec09db02eeeaee (diff) | |
parent | 6ab36997af5d5acda4f21d33031f4e45c85f96b7 (diff) | |
download | android_external_aac-b2511c6a79ea8d029b2b9d19130fd41d9838546f.tar.gz android_external_aac-b2511c6a79ea8d029b2b9d19130fd41d9838546f.tar.bz2 android_external_aac-b2511c6a79ea8d029b2b9d19130fd41d9838546f.zip |
Merge branch 'jb-mr1-release' of https://android.googlesource.com/platform/external/aac into mr1-stagingcm-10.1.3-RC2cm-10.1.3-RC1cm-10.1.3cm-10.1.2cm-10.1.1cm-10.1.0-RC5cm-10.1.0-RC4cm-10.1.0-RC3cm-10.1.0-RC2cm-10.1.0-RC1cm-10.1.0cm-10.1-M3cm-10.1-M2cm-10.1-M1mr1.1-stagingcm-10.1
Diffstat (limited to 'libFDK/include/mips/cplx_mul.h')
-rw-r--r-- | libFDK/include/mips/cplx_mul.h | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/libFDK/include/mips/cplx_mul.h b/libFDK/include/mips/cplx_mul.h index e0781dd..fb777ce 100644 --- a/libFDK/include/mips/cplx_mul.h +++ b/libFDK/include/mips/cplx_mul.h @@ -107,19 +107,21 @@ inline void cplxMultDiv2( FIXP_DBL *c_Re, FIXP_DBL b_Re, FIXP_DBL b_Im) { - INT result; + INT result; __asm__ ("mult %[a_Re], %[b_Re];\n" "msub %[a_Im], %[b_Im];\n" - : "=hi"(result) - : [a_Re]"r"(a_Re), [b_Re]"r"(b_Re), [a_Im]"r"(a_Im), [b_Im]"r"(b_Im) + "mfhi %[result];\n" + : [result]"=r"(result) + : [a_Re]"d"(a_Re), [b_Re]"d"(b_Re), [a_Im]"d"(a_Im), [b_Im]"d"(b_Im) : "lo"); *c_Re = result; __asm__ ("mult %[a_Re], %[b_Im];\n" "madd %[a_Im], %[b_Re];\n" - : "=hi"(result) + "mfhi %[result];\n" + : [result]"=r"(result) : [a_Re]"r"(a_Re), [b_Im]"r"(b_Im), [a_Im]"r"(a_Im), [b_Re]"r"(b_Re) : "lo"); *c_Im = result; @@ -134,17 +136,22 @@ inline void cplxMult( FIXP_DBL *c_Re, FIXP_DBL b_Re, FIXP_DBL b_Im) { - INT result; + INT result; + __asm__ ("mult %[a_Re], %[b_Re];\n" "msub %[a_Im], %[b_Im];\n" - : "=hi"(result) + "mfhi %[result];\n" + //"extr_w %[result], 31;\n" + : [result]"=r"(result) : [a_Re]"r"(a_Re), [b_Re]"r"(b_Re), [a_Im]"r"(a_Im), [b_Im]"r"(b_Im) : "lo"); *c_Re = result<<1; __asm__ ("mult %[a_Re], %[b_Im];\n" "madd %[a_Im], %[b_Re];\n" - : "=hi"(result) + "mfhi %[result];\n" + //"extr_w %[result], 31;\n" + : [result]"=r"(result) : [a_Re]"r"(a_Re), [b_Im]"r"(b_Im), [a_Im]"r"(a_Im), [b_Re]"r"(b_Re) : "lo"); *c_Im = result<<1; |