From 68054481958397a2ef348cbb19333b5c188adec9 Mon Sep 17 00:00:00 2001 From: Andree Buschmann Date: Sat, 29 May 2010 15:00:10 +0000 Subject: Correction to clobber lists of several codec's inline assembly. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26376 a1c6a512-1295-4272-9138-f99709370657 --- apps/codecs/libmad/synth.c | 88 ++++++++++++++++++++++++---------------------- 1 file changed, 45 insertions(+), 43 deletions(-) (limited to 'apps/codecs/libmad/synth.c') diff --git a/apps/codecs/libmad/synth.c b/apps/codecs/libmad/synth.c index 1575d93667..7f1c2e6fc0 100644 --- a/apps/codecs/libmad/synth.c +++ b/apps/codecs/libmad/synth.c @@ -829,55 +829,57 @@ void synth_full(struct mad_synth *synth, struct mad_frame const *frame, #elif defined(FPM_ARM) #define PROD_O(hi, lo, f, ptr) \ - ({ \ - mad_fixed_t *__p = (f); \ - asm("ldmia %2!, {r0, r1, r2, r3}\n\t" \ - "ldr r4, [%3, #0]\n\t" \ - "smull %0, %1, r0, r4\n\t" \ - "ldr r4, [%3, #56]\n\t" \ - "smlal %0, %1, r1, r4\n\t" \ - "ldr r4, [%3, #48]\n\t" \ - "smlal %0, %1, r2, r4\n\t" \ - "ldr r4, [%3, #40]\n\t" \ - "smlal %0, %1, r3, r4\n\t" \ - "ldmia %2, {r0, r1, r2, r3}\n\t" \ - "ldr r4, [%3, #32]\n\t" \ - "smlal %0, %1, r0, r4\n\t" \ - "ldr r4, [%3, #24]\n\t" \ - "smlal %0, %1, r1, r4\n\t" \ - "ldr r4, [%3, #16]\n\t" \ - "smlal %0, %1, r2, r4\n\t" \ - "ldr r4, [%3, #8]\n\t" \ - "smlal %0, %1, r3, r4\n\t" \ + ({ \ + mad_fixed_t *__p = (f); \ + asm volatile ( \ + "ldmia %2!, {r0, r1, r2, r3} \n\t" \ + "ldr r4, [%3, #0] \n\t" \ + "smull %0, %1, r0, r4 \n\t" \ + "ldr r4, [%3, #56] \n\t" \ + "smlal %0, %1, r1, r4 \n\t" \ + "ldr r4, [%3, #48] \n\t" \ + "smlal %0, %1, r2, r4 \n\t" \ + "ldr r4, [%3, #40] \n\t" \ + "smlal %0, %1, r3, r4 \n\t" \ + "ldmia %2, {r0, r1, r2, r3} \n\t" \ + "ldr r4, [%3, #32] \n\t" \ + "smlal %0, %1, r0, r4 \n\t" \ + "ldr r4, [%3, #24] \n\t" \ + "smlal %0, %1, r1, r4 \n\t" \ + "ldr r4, [%3, #16] \n\t" \ + "smlal %0, %1, r2, r4 \n\t" \ + "ldr r4, [%3, #8] \n\t" \ + "smlal %0, %1, r3, r4 \n\t" \ : "=&r" (lo), "=&r" (hi), "+r" (__p) \ : "r" (ptr) \ - : "r0", "r1", "r2", "r3", "r4"); \ + : "r0", "r1", "r2", "r3", "r4", "memory"); \ }) #define PROD_A(hi, lo, f, ptr) \ - ({ \ - mad_fixed_t *__p = (f); \ - asm("ldmia %2!, {r0, r1, r2, r3}\n\t" \ - "ldr r4, [%3, #0]\n\t" \ - "smlal %0, %1, r0, r4\n\t" \ - "ldr r4, [%3, #56]\n\t" \ - "smlal %0, %1, r1, r4\n\t" \ - "ldr r4, [%3, #48]\n\t" \ - "smlal %0, %1, r2, r4\n\t" \ - "ldr r4, [%3, #40]\n\t" \ - "smlal %0, %1, r3, r4\n\t" \ - "ldmia %2, {r0, r1, r2, r3}\n\t" \ - "ldr r4, [%3, #32]\n\t" \ - "smlal %0, %1, r0, r4\n\t" \ - "ldr r4, [%3, #24]\n\t" \ - "smlal %0, %1, r1, r4\n\t" \ - "ldr r4, [%3, #16]\n\t" \ - "smlal %0, %1, r2, r4\n\t" \ - "ldr r4, [%3, #8]\n\t" \ - "smlal %0, %1, r3, r4\n\t" \ + ({ \ + mad_fixed_t *__p = (f); \ + asm volatile ( \ + "ldmia %2!, {r0, r1, r2, r3} \n\t" \ + "ldr r4, [%3, #0] \n\t" \ + "smlal %0, %1, r0, r4 \n\t" \ + "ldr r4, [%3, #56] \n\t" \ + "smlal %0, %1, r1, r4 \n\t" \ + "ldr r4, [%3, #48] \n\t" \ + "smlal %0, %1, r2, r4 \n\t" \ + "ldr r4, [%3, #40] \n\t" \ + "smlal %0, %1, r3, r4 \n\t" \ + "ldmia %2, {r0, r1, r2, r3} \n\t" \ + "ldr r4, [%3, #32] \n\t" \ + "smlal %0, %1, r0, r4 \n\t" \ + "ldr r4, [%3, #24] \n\t" \ + "smlal %0, %1, r1, r4 \n\t" \ + "ldr r4, [%3, #16] \n\t" \ + "smlal %0, %1, r2, r4 \n\t" \ + "ldr r4, [%3, #8] \n\t" \ + "smlal %0, %1, r3, r4 \n\t" \ : "+r" (lo), "+r" (hi), "+r" (__p) \ - : "r" (ptr) \ - : "r0", "r1", "r2", "r3", "r4"); \ + : "r" (ptr) \ + : "r0", "r1", "r2", "r3", "r4", "memory"); \ }) void synth_full_odd_sbsample (mad_fixed_t *pcm, -- cgit v1.2.3