From 0b5338a6e9097c98223ea1e06b962b1cc78ea57b Mon Sep 17 00:00:00 2001 From: Dave Hooper Date: Sun, 21 Feb 2010 21:17:53 +0000 Subject: Eep, didn't mean to commit those other files git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24820 a1c6a512-1295-4272-9138-f99709370657 --- apps/codecs/lib/asm_arm.h | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'apps/codecs/lib/asm_arm.h') diff --git a/apps/codecs/lib/asm_arm.h b/apps/codecs/lib/asm_arm.h index 9dcbcef755..4f31f80c3e 100644 --- a/apps/codecs/lib/asm_arm.h +++ b/apps/codecs/lib/asm_arm.h @@ -226,11 +226,14 @@ void vect_mult_bw(int32_t *data, int32_t *window, int n) #define _V_CLIP_MATH static inline int32_t CLIP_TO_15(int32_t x) { - const int32_t mask = 0xffff7fff; - asm volatile("teq %0,%0,asr #31\n\t" - "eorne %0,%1,%0,asr #31\n\t" - : "+r"(x) - : "r" (mask) + int tmp; + asm volatile("subs %1, %0, #32768\n\t" + "movpl %0, #0x7f00\n\t" + "orrpl %0, %0, #0xff\n" + "adds %1, %0, #32768\n\t" + "movmi %0, #0x8000" + : "+r"(x),"=r"(tmp) + : : "cc"); return(x); } -- cgit v1.2.3