diff options
author | Michael Giacomelli <giac2000@hotmail.com> | 2007-07-08 05:57:14 +0000 |
---|---|---|
committer | Michael Giacomelli <giac2000@hotmail.com> | 2007-07-08 05:57:14 +0000 |
commit | 030dce6f886865b026bf8e2413b58e1f6485a81e (patch) | |
tree | b27454a7d0072e0ee5d47c161a77fe14c68bf304 /apps/codecs/libwma/wmafixed.h | |
parent | f5114daa730c05c6967bb4d908c934d0e3a8f994 (diff) | |
download | rockbox-030dce6f886865b026bf8e2413b58e1f6485a81e.tar.gz rockbox-030dce6f886865b026bf8e2413b58e1f6485a81e.zip |
Fix previous
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13814 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs/libwma/wmafixed.h')
-rw-r--r-- | apps/codecs/libwma/wmafixed.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/apps/codecs/libwma/wmafixed.h b/apps/codecs/libwma/wmafixed.h index 99ddec759e..da0637fb68 100644 --- a/apps/codecs/libwma/wmafixed.h +++ b/apps/codecs/libwma/wmafixed.h @@ -61,6 +61,21 @@ long fsincos(unsigned long phase, fixed32 *cos); __result; \ }) + + #define fixmul32b(x, y) \ + ({ int32_t __hi; \ + uint32_t __lo; \ + int32_t __result; \ + asm ("smull %0, %1, %3, %4\n\t" \ + "movs %0, %0, lsr %5\n\t" \ + "adc %2, %0, %1, lsl %6" \ + : "=&r" (__lo), "=&r" (__hi), "=r" (__result) \ + : "%r" (x), "r" (y), \ + "M" (31), "M" (32 - 31) \ + : "cc"); \ + __result; \ + }) + #elif defined(CPU_COLDFIRE) static inline int32_t fixmul32(int32_t x, int32_t y) { |