From d089e104034fdf5562bea125d2cacf4ee486782a Mon Sep 17 00:00:00 2001 From: Michael Sevakis Date: Wed, 31 Aug 2011 11:19:16 +0000 Subject: Get rid of strict aliasing warnings for ARMv6 spc_dsp.c. Just do load in asm block instead. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30396 a1c6a512-1295-4272-9138-f99709370657 --- apps/codecs/libspc/spc_dsp.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/apps/codecs/libspc/spc_dsp.c b/apps/codecs/libspc/spc_dsp.c index 0017b2a0a0..28e05425fb 100644 --- a/apps/codecs/libspc/spc_dsp.c +++ b/apps/codecs/libspc/spc_dsp.c @@ -1338,17 +1338,18 @@ void DSP_run_( struct Spc_Dsp* this, long count, int32_t* out_buf ) int fb_0, fb_1; /* Apply FIR */ - fb_0 = *(uint32_t *)echo_ptr; /* Keep last 8 samples */ asm volatile ( + "ldr %[fb_0], [%[echo_p]] \r\n" "add %[fir_p], %[t_fir_p], #4 \r\n" "bic %[t_fir_p], %[fir_p], %[mask] \r\n" "str %[fb_0], [%[fir_p], #-4] \r\n" /* duplicate at +8 eliminates wrap checking below */ "str %[fb_0], [%[fir_p], #28] \r\n" - : [fir_p]"=&r"(fir_ptr), [t_fir_p]"+r"(this->fir_ptr) - : [fb_0]"r"(fb_0), [mask]"i"(~FIR_BUF_MASK)); + : [fir_p]"=&r"(fir_ptr), [t_fir_p]"+r"(this->fir_ptr), + [fb_0]"=&r"(fb_0) + : [echo_p]"r"(echo_ptr), [mask]"i"(~FIR_BUF_MASK)); fir_coeff = (int32_t *)this->fir_coeff; -- cgit v1.2.3