From d166d61b09e40a010c8a3b98b40b8b075e5af463 Mon Sep 17 00:00:00 2001 From: Wincent Balin Date: Fri, 4 Jun 2010 18:21:47 +0000 Subject: pdbox: Added Coldfire multiplication optimization by Buschel. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26550 a1c6a512-1295-4272-9138-f99709370657 --- apps/plugins/pdbox/PDa/src/m_fixed.h | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/apps/plugins/pdbox/PDa/src/m_fixed.h b/apps/plugins/pdbox/PDa/src/m_fixed.h index 2a89a18b5a..d46299efe6 100644 --- a/apps/plugins/pdbox/PDa/src/m_fixed.h +++ b/apps/plugins/pdbox/PDa/src/m_fixed.h @@ -16,7 +16,8 @@ typedef int t_sample; /* fixed point multiplication and division */ -#if defined(ROCKBOX) && defined(CPU_ARM) +#ifdef ROCKBOX +#if defined(CPU_ARM) #define mult(A,B) \ ({ \ t_fixed lo; \ @@ -30,10 +31,28 @@ typedef int t_sample; lo; \ }) #define idiv(a,b) ((((long long) (a) )<>= 18 */ + "or.l %[x],%[t1] \n" /* combine result */ + : [t1]"=&d"(t1), [t2]"=&d"(t2), [x]"+d"(x) + : [y]"d"(y), [shl]"d"(31-fix1), [shr]"d"(fix1)); + return t1; +} +#define idiv(a,b) ((((long long) (a) )<>fix1) #define idiv(a,b) ((((long long) (a) )<