From 816c9119c9e24435224a496cfbed28dab5119ba7 Mon Sep 17 00:00:00 2001 From: saratoga Date: Sun, 8 Jul 2007 05:57:14 +0000 Subject: [PATCH] Fix previous git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13814 a1c6a512-1295-4272-9138-f99709370657 --- apps/codecs/libwma/wmadeci.c | 4 ++-- apps/codecs/libwma/wmafixed.c | 4 ++-- apps/codecs/libwma/wmafixed.h | 15 +++++++++++++++ 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/apps/codecs/libwma/wmadeci.c b/apps/codecs/libwma/wmadeci.c index bb9b96abe..cd01c030c 100644 --- a/apps/codecs/libwma/wmadeci.c +++ b/apps/codecs/libwma/wmadeci.c @@ -696,14 +696,14 @@ void ff_mdct_end(MDCTContext *s) static void vector_fmul_add_add(fixed32 *dst, const fixed32 *src0, const fixed32 *src1, const fixed32 *src2, int src3, int len, int step){ int i; for(i=0; i>1))*-1; } -#endif + diff --git a/apps/codecs/libwma/wmafixed.h b/apps/codecs/libwma/wmafixed.h index 99ddec759..da0637fb6 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) { -- 2.11.4.GIT