diff options
Diffstat (limited to 'libFDK/include/mips/fixmul_mips.h')
-rw-r--r-- | libFDK/include/mips/fixmul_mips.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/libFDK/include/mips/fixmul_mips.h b/libFDK/include/mips/fixmul_mips.h index 0e7af0d..4fb72f7 100644 --- a/libFDK/include/mips/fixmul_mips.h +++ b/libFDK/include/mips/fixmul_mips.h @@ -100,8 +100,14 @@ amm-info@iis.fraunhofer.de inline INT fixmuldiv2_DD (const INT a, const INT b) { + INT result ; - return ((long long) a * b) >> 32; + asm ("mult %1,%2;\n" + : "=hi" (result) + : "d" (a), "r" (b) + : "lo"); + + return result ; } #endif /* (__GNUC__) && defined(__mips__) */ |