summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2011-08-31 11:19:16 +0000
committerMichael Sevakis <jethead71@rockbox.org>2011-08-31 11:19:16 +0000
commitd089e104034fdf5562bea125d2cacf4ee486782a (patch)
treebd68fd3a07178128735ad2aad391bed5ae0136ee
parent5ed7439cc79716bb09affd7d4564568507011b41 (diff)
downloadrockbox-d089e104034fdf5562bea125d2cacf4ee486782a.tar.gz
rockbox-d089e104034fdf5562bea125d2cacf4ee486782a.zip
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
-rw-r--r--apps/codecs/libspc/spc_dsp.c7
1 files 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 )
1338 int fb_0, fb_1; 1338 int fb_0, fb_1;
1339 1339
1340 /* Apply FIR */ 1340 /* Apply FIR */
1341 fb_0 = *(uint32_t *)echo_ptr;
1342 1341
1343 /* Keep last 8 samples */ 1342 /* Keep last 8 samples */
1344 asm volatile ( 1343 asm volatile (
1344 "ldr %[fb_0], [%[echo_p]] \r\n"
1345 "add %[fir_p], %[t_fir_p], #4 \r\n" 1345 "add %[fir_p], %[t_fir_p], #4 \r\n"
1346 "bic %[t_fir_p], %[fir_p], %[mask] \r\n" 1346 "bic %[t_fir_p], %[fir_p], %[mask] \r\n"
1347 "str %[fb_0], [%[fir_p], #-4] \r\n" 1347 "str %[fb_0], [%[fir_p], #-4] \r\n"
1348 /* duplicate at +8 eliminates wrap checking below */ 1348 /* duplicate at +8 eliminates wrap checking below */
1349 "str %[fb_0], [%[fir_p], #28] \r\n" 1349 "str %[fb_0], [%[fir_p], #28] \r\n"
1350 : [fir_p]"=&r"(fir_ptr), [t_fir_p]"+r"(this->fir_ptr) 1350 : [fir_p]"=&r"(fir_ptr), [t_fir_p]"+r"(this->fir_ptr),
1351 : [fb_0]"r"(fb_0), [mask]"i"(~FIR_BUF_MASK)); 1351 [fb_0]"=&r"(fb_0)
1352 : [echo_p]"r"(echo_ptr), [mask]"i"(~FIR_BUF_MASK));
1352 1353
1353 fir_coeff = (int32_t *)this->fir_coeff; 1354 fir_coeff = (int32_t *)this->fir_coeff;
1354 1355