From 30fe6eb66c59f8c2b0b16ef305a9ab3742595115 Mon Sep 17 00:00:00 2001 From: Michael Sevakis Date: Sun, 26 May 2013 00:33:30 -0400 Subject: SPC Codec ARMv5: I didn't have fast gauss quite right. Fix wrapping hazard which did eventually manifest on the right file. Change-Id: I996a6efd3181b56fd172b5c3a526c7434f88bbbe --- lib/rbcodec/codecs/libspc/cpu/spc_dsp_armv5.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/rbcodec/codecs/libspc/cpu/spc_dsp_armv5.c b/lib/rbcodec/codecs/libspc/cpu/spc_dsp_armv5.c index dd08e9edef..10bbb47a5f 100644 --- a/lib/rbcodec/codecs/libspc/cpu/spc_dsp_armv5.c +++ b/lib/rbcodec/codecs/libspc/cpu/spc_dsp_armv5.c @@ -55,14 +55,14 @@ static inline int gaussian_fast_amp( struct voice_t* voice, int output, int* amp_0, int* amp_1 ) { asm volatile ( - "mov %[out], %[out], asr #15 \n" - "smulbb %[out], %[out], %[envx] \n" + "smulwb %[out], %[out], %[envx] \n" : [out]"+r"(output) : [envx]"r"(voice->envx)); asm volatile ( - "mov %[out], %[out], asr #11 \n" - "smulbb %[a0], %[out], %[v0] \n" - "smulbb %[a1], %[out], %[v1] \n" + "mov %[out], %[out], asl #6 \n" + "smulwb %[a0], %[out], %[v0] \n" + "smulwb %[a1], %[out], %[v1] \n" + "mov %[out], %[out], asr #5 \n" : [out]"+r"(output), [a0]"=&r"(*amp_0), [a1]"=r"(*amp_1) : [v0]"r"(voice->volume [0]), -- cgit v1.2.3