summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndree Buschmann <AndreeBuschmann@t-online.de>2010-05-29 15:00:10 +0000
committerAndree Buschmann <AndreeBuschmann@t-online.de>2010-05-29 15:00:10 +0000
commit68054481958397a2ef348cbb19333b5c188adec9 (patch)
tree92bf8f91b65facfc18aa0bd591956a6dc46f83ee
parent9ab57e510e5ff64c5ce3d6bf47d7bf1ff8261e01 (diff)
downloadrockbox-68054481958397a2ef348cbb19333b5c188adec9.tar.gz
rockbox-68054481958397a2ef348cbb19333b5c188adec9.zip
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
-rw-r--r--apps/codecs/demac/libdemac/vector_math16_armv5te.h6
-rw-r--r--apps/codecs/demac/libdemac/vector_math16_armv6.h6
-rw-r--r--apps/codecs/demac/libdemac/vector_math32_armv4.h6
-rw-r--r--apps/codecs/libmad/synth.c88
-rw-r--r--apps/codecs/libspc/spc_dsp.c26
-rw-r--r--apps/codecs/libspeex/filters_arm4.h2
-rw-r--r--apps/codecs/libspeex/ltp_arm4.h2
-rw-r--r--apps/codecs/libspeex/vq_arm4.h2
-rw-r--r--apps/codecs/libtremor/mapping0.c6
9 files changed, 78 insertions, 66 deletions
diff --git a/apps/codecs/demac/libdemac/vector_math16_armv5te.h b/apps/codecs/demac/libdemac/vector_math16_armv5te.h
index 0a3679ce63..ae7427c137 100644
--- a/apps/codecs/demac/libdemac/vector_math16_armv5te.h
+++ b/apps/codecs/demac/libdemac/vector_math16_armv5te.h
@@ -168,7 +168,7 @@ static inline int32_t vector_sp_add(int16_t* v1, int16_t* f2, int16_t* s2)
168 [res]"=r"(res) 168 [res]"=r"(res)
169 : /* inputs */ 169 : /* inputs */
170 : /* clobbers */ 170 : /* clobbers */
171 "r0", "r1", "r2", "r3", "r4", "r5", "memory" 171 "r0", "r1", "r2", "r3", "r4", "r5", "cc", "memory"
172 ); 172 );
173 return res; 173 return res;
174} 174}
@@ -310,7 +310,7 @@ static inline int32_t vector_sp_sub(int16_t* v1, int16_t* f2, int16_t* s2)
310 [res]"=r"(res) 310 [res]"=r"(res)
311 : /* inputs */ 311 : /* inputs */
312 : /* clobbers */ 312 : /* clobbers */
313 "r0", "r1", "r2", "r3", "r4", "r5", "r6", "memory" 313 "r0", "r1", "r2", "r3", "r4", "r5", "r6", "cc", "memory"
314 ); 314 );
315 return res; 315 return res;
316} 316}
@@ -398,7 +398,7 @@ static inline int32_t scalarproduct(int16_t* v1, int16_t* v2)
398 [res]"=r"(res) 398 [res]"=r"(res)
399 : /* inputs */ 399 : /* inputs */
400 : /* clobbers */ 400 : /* clobbers */
401 "r0", "r1", "r2", "r3" 401 "r0", "r1", "r2", "r3", "cc", "memory"
402 ); 402 );
403 return res; 403 return res;
404} 404}
diff --git a/apps/codecs/demac/libdemac/vector_math16_armv6.h b/apps/codecs/demac/libdemac/vector_math16_armv6.h
index 2ce62728cb..8d27331b62 100644
--- a/apps/codecs/demac/libdemac/vector_math16_armv6.h
+++ b/apps/codecs/demac/libdemac/vector_math16_armv6.h
@@ -196,7 +196,7 @@ static inline int32_t vector_sp_add(int16_t* v1, int16_t* f2, int16_t* s2)
196 : /* inputs */ 196 : /* inputs */
197 : /* clobbers */ 197 : /* clobbers */
198 "r0", "r1", "r2", "r3", "r4", 198 "r0", "r1", "r2", "r3", "r4",
199 "r5", "r6", "r7", "memory" 199 "r5", "r6", "r7", "cc", "memory"
200 ); 200 );
201 return res; 201 return res;
202} 202}
@@ -365,7 +365,7 @@ static inline int32_t vector_sp_sub(int16_t* v1, int16_t* f2, int16_t* s2)
365 : /* inputs */ 365 : /* inputs */
366 : /* clobbers */ 366 : /* clobbers */
367 "r0", "r1", "r2", "r3", "r4", 367 "r0", "r1", "r2", "r3", "r4",
368 "r5", "r6", "r7", "memory" 368 "r5", "r6", "r7", "cc", "memory"
369 ); 369 );
370 return res; 370 return res;
371} 371}
@@ -484,7 +484,7 @@ static inline int32_t scalarproduct(int16_t* v1, int16_t* v2)
484 : /* inputs */ 484 : /* inputs */
485 : /* clobbers */ 485 : /* clobbers */
486 "r0", "r1", "r2", "r3", 486 "r0", "r1", "r2", "r3",
487 "r4", "r5", "r6", "r7" 487 "r4", "r5", "r6", "r7", "cc", "memory"
488 ); 488 );
489 return res; 489 return res;
490} 490}
diff --git a/apps/codecs/demac/libdemac/vector_math32_armv4.h b/apps/codecs/demac/libdemac/vector_math32_armv4.h
index cb5fe9e0ee..d6bb9b0d9c 100644
--- a/apps/codecs/demac/libdemac/vector_math32_armv4.h
+++ b/apps/codecs/demac/libdemac/vector_math32_armv4.h
@@ -89,7 +89,7 @@ static inline int32_t vector_sp_add(int32_t* v1, int32_t* f2, int32_t* s2)
89 : /* inputs */ 89 : /* inputs */
90 : /* clobbers */ 90 : /* clobbers */
91 "r0", "r1", "r2", "r3", "r4", 91 "r0", "r1", "r2", "r3", "r4",
92 "r5", "r6", "r7", "memory" 92 "r5", "r6", "r7", "cc", "memory"
93 ); 93 );
94 return res; 94 return res;
95} 95}
@@ -149,7 +149,7 @@ static inline int32_t vector_sp_sub(int32_t* v1, int32_t* f2, int32_t* s2)
149 : /* inputs */ 149 : /* inputs */
150 : /* clobbers */ 150 : /* clobbers */
151 "r0", "r1", "r2", "r3", "r4", 151 "r0", "r1", "r2", "r3", "r4",
152 "r5", "r6", "r7", "memory" 152 "r5", "r6", "r7", "cc", "memory"
153 ); 153 );
154 return res; 154 return res;
155} 155}
@@ -195,7 +195,7 @@ static inline int32_t scalarproduct(int32_t* v1, int32_t* v2)
195 : /* inputs */ 195 : /* inputs */
196 : /* clobbers */ 196 : /* clobbers */
197 "r0", "r1", "r2", "r3", 197 "r0", "r1", "r2", "r3",
198 "r4", "r5", "r6", "r7" 198 "r4", "r5", "r6", "r7", "cc", "memory"
199 ); 199 );
200 return res; 200 return res;
201} 201}
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,
829#elif defined(FPM_ARM) 829#elif defined(FPM_ARM)
830 830
831#define PROD_O(hi, lo, f, ptr) \ 831#define PROD_O(hi, lo, f, ptr) \
832 ({ \ 832 ({ \
833 mad_fixed_t *__p = (f); \ 833 mad_fixed_t *__p = (f); \
834 asm("ldmia %2!, {r0, r1, r2, r3}\n\t" \ 834 asm volatile ( \
835 "ldr r4, [%3, #0]\n\t" \ 835 "ldmia %2!, {r0, r1, r2, r3} \n\t" \
836 "smull %0, %1, r0, r4\n\t" \ 836 "ldr r4, [%3, #0] \n\t" \
837 "ldr r4, [%3, #56]\n\t" \ 837 "smull %0, %1, r0, r4 \n\t" \
838 "smlal %0, %1, r1, r4\n\t" \ 838 "ldr r4, [%3, #56] \n\t" \
839 "ldr r4, [%3, #48]\n\t" \ 839 "smlal %0, %1, r1, r4 \n\t" \
840 "smlal %0, %1, r2, r4\n\t" \ 840 "ldr r4, [%3, #48] \n\t" \
841 "ldr r4, [%3, #40]\n\t" \ 841 "smlal %0, %1, r2, r4 \n\t" \
842 "smlal %0, %1, r3, r4\n\t" \ 842 "ldr r4, [%3, #40] \n\t" \
843 "ldmia %2, {r0, r1, r2, r3}\n\t" \ 843 "smlal %0, %1, r3, r4 \n\t" \
844 "ldr r4, [%3, #32]\n\t" \ 844 "ldmia %2, {r0, r1, r2, r3} \n\t" \
845 "smlal %0, %1, r0, r4\n\t" \ 845 "ldr r4, [%3, #32] \n\t" \
846 "ldr r4, [%3, #24]\n\t" \ 846 "smlal %0, %1, r0, r4 \n\t" \
847 "smlal %0, %1, r1, r4\n\t" \ 847 "ldr r4, [%3, #24] \n\t" \
848 "ldr r4, [%3, #16]\n\t" \ 848 "smlal %0, %1, r1, r4 \n\t" \
849 "smlal %0, %1, r2, r4\n\t" \ 849 "ldr r4, [%3, #16] \n\t" \
850 "ldr r4, [%3, #8]\n\t" \ 850 "smlal %0, %1, r2, r4 \n\t" \
851 "smlal %0, %1, r3, r4\n\t" \ 851 "ldr r4, [%3, #8] \n\t" \
852 "smlal %0, %1, r3, r4 \n\t" \
852 : "=&r" (lo), "=&r" (hi), "+r" (__p) \ 853 : "=&r" (lo), "=&r" (hi), "+r" (__p) \
853 : "r" (ptr) \ 854 : "r" (ptr) \
854 : "r0", "r1", "r2", "r3", "r4"); \ 855 : "r0", "r1", "r2", "r3", "r4", "memory"); \
855 }) 856 })
856 857
857#define PROD_A(hi, lo, f, ptr) \ 858#define PROD_A(hi, lo, f, ptr) \
858 ({ \ 859 ({ \
859 mad_fixed_t *__p = (f); \ 860 mad_fixed_t *__p = (f); \
860 asm("ldmia %2!, {r0, r1, r2, r3}\n\t" \ 861 asm volatile ( \
861 "ldr r4, [%3, #0]\n\t" \ 862 "ldmia %2!, {r0, r1, r2, r3} \n\t" \
862 "smlal %0, %1, r0, r4\n\t" \ 863 "ldr r4, [%3, #0] \n\t" \
863 "ldr r4, [%3, #56]\n\t" \ 864 "smlal %0, %1, r0, r4 \n\t" \
864 "smlal %0, %1, r1, r4\n\t" \ 865 "ldr r4, [%3, #56] \n\t" \
865 "ldr r4, [%3, #48]\n\t" \ 866 "smlal %0, %1, r1, r4 \n\t" \
866 "smlal %0, %1, r2, r4\n\t" \ 867 "ldr r4, [%3, #48] \n\t" \
867 "ldr r4, [%3, #40]\n\t" \ 868 "smlal %0, %1, r2, r4 \n\t" \
868 "smlal %0, %1, r3, r4\n\t" \ 869 "ldr r4, [%3, #40] \n\t" \
869 "ldmia %2, {r0, r1, r2, r3}\n\t" \ 870 "smlal %0, %1, r3, r4 \n\t" \
870 "ldr r4, [%3, #32]\n\t" \ 871 "ldmia %2, {r0, r1, r2, r3} \n\t" \
871 "smlal %0, %1, r0, r4\n\t" \ 872 "ldr r4, [%3, #32] \n\t" \
872 "ldr r4, [%3, #24]\n\t" \ 873 "smlal %0, %1, r0, r4 \n\t" \
873 "smlal %0, %1, r1, r4\n\t" \ 874 "ldr r4, [%3, #24] \n\t" \
874 "ldr r4, [%3, #16]\n\t" \ 875 "smlal %0, %1, r1, r4 \n\t" \
875 "smlal %0, %1, r2, r4\n\t" \ 876 "ldr r4, [%3, #16] \n\t" \
876 "ldr r4, [%3, #8]\n\t" \ 877 "smlal %0, %1, r2, r4 \n\t" \
877 "smlal %0, %1, r3, r4\n\t" \ 878 "ldr r4, [%3, #8] \n\t" \
879 "smlal %0, %1, r3, r4 \n\t" \
878 : "+r" (lo), "+r" (hi), "+r" (__p) \ 880 : "+r" (lo), "+r" (hi), "+r" (__p) \
879 : "r" (ptr) \ 881 : "r" (ptr) \
880 : "r0", "r1", "r2", "r3", "r4"); \ 882 : "r0", "r1", "r2", "r3", "r4", "memory"); \
881 }) 883 })
882 884
883void synth_full_odd_sbsample (mad_fixed_t *pcm, 885void synth_full_odd_sbsample (mad_fixed_t *pcm,
diff --git a/apps/codecs/libspc/spc_dsp.c b/apps/codecs/libspc/spc_dsp.c
index 0d07e5f04e..a5ad1ff877 100644
--- a/apps/codecs/libspc/spc_dsp.c
+++ b/apps/codecs/libspc/spc_dsp.c
@@ -840,7 +840,8 @@ void DSP_run_( struct Spc_Dsp* this, long count, int32_t* out_buf )
840 [_0]"=&r"(amp_0), [_1]"=&r"(amp_1), 840 [_0]"=&r"(amp_0), [_1]"=&r"(amp_1),
841 [_2]"=&r"(_2), [_3]"=&r"(_3) 841 [_2]"=&r"(_2), [_3]"=&r"(_3)
842 : [fwd]"r"(fwd), [rev]"r"(rev), 842 : [fwd]"r"(fwd), [rev]"r"(rev),
843 [interp]"r"(interp)); 843 [interp]"r"(interp)
844 : "memory");
844 /* Apply voice envelope */ 845 /* Apply voice envelope */
845 asm volatile ( 846 asm volatile (
846 "mov %[_2], %[out], asr #(11-5) \r\n" /* To do >> 16 later */ 847 "mov %[_2], %[out], asr #(11-5) \r\n" /* To do >> 16 later */
@@ -876,7 +877,8 @@ void DSP_run_( struct Spc_Dsp* this, long count, int32_t* out_buf )
876 [_0]"=&r"(amp_0), [_1]"=&r"(amp_1), 877 [_0]"=&r"(amp_0), [_1]"=&r"(amp_1),
877 [_2]"=&r"(_2), [_3]"=&r"(_3) 878 [_2]"=&r"(_2), [_3]"=&r"(_3)
878 : [fwd]"r"(fwd), [rev]"r"(rev), 879 : [fwd]"r"(fwd), [rev]"r"(rev),
879 [interp]"r"(interp)); 880 [interp]"r"(interp)
881 : "memory");
880 /* Apply voice envelope */ 882 /* Apply voice envelope */
881 asm volatile ( 883 asm volatile (
882 "mov %[_2], %[out], asr #11 \r\n" 884 "mov %[_2], %[out], asr #11 \r\n"
@@ -932,7 +934,8 @@ void DSP_run_( struct Spc_Dsp* this, long count, int32_t* out_buf )
932 [_0]"=&r"(amp_0), [_1]"=&r"(amp_1), 934 [_0]"=&r"(amp_0), [_1]"=&r"(amp_1),
933 [_2]"=&r"(_2), [_3]"=&r"(_3) 935 [_2]"=&r"(_2), [_3]"=&r"(_3)
934 : [fwd]"r"(fwd), [rev]"r"(rev), 936 : [fwd]"r"(fwd), [rev]"r"(rev),
935 [interp]"r"(interp)); 937 [interp]"r"(interp)
938 : "memory");
936 asm volatile ( 939 asm volatile (
937 "mov %[out], %[out], asr#12 \r\n" 940 "mov %[out], %[out], asr#12 \r\n"
938 "add %[_0], %[out], %[_0], asr #12 \r\n" 941 "add %[_0], %[out], %[_0], asr #12 \r\n"
@@ -993,7 +996,8 @@ void DSP_run_( struct Spc_Dsp* this, long count, int32_t* out_buf )
993 [_0]"=&r"(amp_0), [_1]"=&r"(amp_1), 996 [_0]"=&r"(amp_0), [_1]"=&r"(amp_1),
994 [_2]"=&r"(_2), [_3]"=&r"(_3) 997 [_2]"=&r"(_2), [_3]"=&r"(_3)
995 : [fwd]"r"(fwd), [rev]"r"(rev), 998 : [fwd]"r"(fwd), [rev]"r"(rev),
996 [interp]"r"(interp)); 999 [interp]"r"(interp)
1000 : "memory");
997 1001
998 output = CLAMP16(output); 1002 output = CLAMP16(output);
999 } 1003 }
@@ -1128,7 +1132,9 @@ void DSP_run_( struct Spc_Dsp* this, long count, int32_t* out_buf )
1128 "sub %[y1], %[y1], %[y0] \r\n" 1132 "sub %[y1], %[y1], %[y0] \r\n"
1129 "mul %[f], %[y1], %[f] \r\n" 1133 "mul %[f], %[y1], %[f] \r\n"
1130 "add %[y0], %[y0], %[f], asr #12 \r\n" 1134 "add %[y0], %[y0], %[f], asr #12 \r\n"
1131 : [f]"+r"(f), [y0]"+r"(amp_0), [y1]"=&r"(amp_1)); 1135 : [f]"+r"(f), [y0]"+r"(amp_0), [y1]"=&r"(amp_1)
1136 :
1137 : "memory");
1132 } 1138 }
1133 1139
1134 voice->position += rate; 1140 voice->position += rate;
@@ -1347,7 +1353,8 @@ void DSP_run_( struct Spc_Dsp* this, long count, int32_t* out_buf )
1347 /* duplicate at +8 eliminates wrap checking below */ 1353 /* duplicate at +8 eliminates wrap checking below */
1348 "str %[fb_0], [%[fir_p], #28] \r\n" 1354 "str %[fb_0], [%[fir_p], #28] \r\n"
1349 : [fir_p]"=&r"(fir_ptr), [t_fir_p]"+r"(this->fir_ptr) 1355 : [fir_p]"=&r"(fir_ptr), [t_fir_p]"+r"(this->fir_ptr)
1350 : [fb_0]"r"(fb_0), [mask]"i"(~FIR_BUF_MASK)); 1356 : [fb_0]"r"(fb_0), [mask]"i"(~FIR_BUF_MASK)
1357 : "memory");
1351 1358
1352 fir_coeff = (int32_t *)this->fir_coeff; 1359 fir_coeff = (int32_t *)this->fir_coeff;
1353 1360
@@ -1377,7 +1384,7 @@ void DSP_run_( struct Spc_Dsp* this, long count, int32_t* out_buf )
1377 : [acc0]"+r"(fb_0), [acc1]"=&r"(fb_1), [_0]"=&r"(_0), 1384 : [acc0]"+r"(fb_0), [acc1]"=&r"(fb_1), [_0]"=&r"(_0),
1378 [fir_p]"+r"(fir_ptr), [fir_c]"+r"(fir_coeff) 1385 [fir_p]"+r"(fir_ptr), [fir_c]"+r"(fir_coeff)
1379 : 1386 :
1380 : "r0", "r1", "r2", "r3", "r4", "r5"); 1387 : "r0", "r1", "r2", "r3", "r4", "r5", "memory");
1381 1388
1382 /* Generate output */ 1389 /* Generate output */
1383 int amp_0, amp_1; 1390 int amp_0, amp_1;
@@ -1439,7 +1446,8 @@ void DSP_run_( struct Spc_Dsp* this, long count, int32_t* out_buf )
1439 "str %[fb_0], [%[fir_p], #56] \r\n" 1446 "str %[fb_0], [%[fir_p], #56] \r\n"
1440 "str %[fb_1], [%[fir_p], #60] \r\n" 1447 "str %[fb_1], [%[fir_p], #60] \r\n"
1441 : [fir_p]"=&r"(fir_ptr), [t_fir_p]"+r"(this->fir_ptr) 1448 : [fir_p]"=&r"(fir_ptr), [t_fir_p]"+r"(this->fir_ptr)
1442 : [fb_0]"r"(fb_0), [fb_1]"r"(fb_1), [mask]"i"(~FIR_BUF_MASK)); 1449 : [fb_0]"r"(fb_0), [fb_1]"r"(fb_1), [mask]"i"(~FIR_BUF_MASK)
1450 : "memory");
1443 1451
1444 fir_coeff = this->fir_coeff; 1452 fir_coeff = this->fir_coeff;
1445 1453
@@ -1471,7 +1479,7 @@ void DSP_run_( struct Spc_Dsp* this, long count, int32_t* out_buf )
1471 : [fb_0]"+r"(fb_0), [fb_1]"+r"(fb_1), 1479 : [fb_0]"+r"(fb_0), [fb_1]"+r"(fb_1),
1472 [fir_p]"+r"(fir_ptr), [fir_c]"+r"(fir_coeff) 1480 [fir_p]"+r"(fir_ptr), [fir_c]"+r"(fir_coeff)
1473 : 1481 :
1474 : "r0", "r1", "r2", "r3", "r4", "r5"); 1482 : "r0", "r1", "r2", "r3", "r4", "r5", "memory");
1475 1483
1476 /* Generate output */ 1484 /* Generate output */
1477 int amp_0 = (chans_0 * global_vol_0 + fb_0 * this->r.g.echo_volume_0) 1485 int amp_0 = (chans_0 * global_vol_0 + fb_0 * this->r.g.echo_volume_0)
diff --git a/apps/codecs/libspeex/filters_arm4.h b/apps/codecs/libspeex/filters_arm4.h
index bbe4bc93f8..18c2a7d448 100644
--- a/apps/codecs/libspeex/filters_arm4.h
+++ b/apps/codecs/libspeex/filters_arm4.h
@@ -60,7 +60,7 @@ int normalize16(const spx_sig_t *x, spx_word16_t *y, spx_sig_t max_scale, int le
60 : "=r" (dead1), "=r" (max_val), "=r" (dead3), "=r" (dead4), 60 : "=r" (dead1), "=r" (max_val), "=r" (dead3), "=r" (dead4),
61 "=r" (dead5), "=r" (dead6) 61 "=r" (dead5), "=r" (dead6)
62 : "0" (x), "2" (len) 62 : "0" (x), "2" (len)
63 : "cc"); 63 : "cc", "memory");
64 64
65 sig_shift=0; 65 sig_shift=0;
66 while (max_val>max_scale) 66 while (max_val>max_scale)
diff --git a/apps/codecs/libspeex/ltp_arm4.h b/apps/codecs/libspeex/ltp_arm4.h
index e1c60ad7d5..46ecfa40ec 100644
--- a/apps/codecs/libspeex/ltp_arm4.h
+++ b/apps/codecs/libspeex/ltp_arm4.h
@@ -79,7 +79,7 @@ spx_word32_t inner_prod(const spx_word16_t *x, const spx_word16_t *y, int len)
79 "=r" (deadlen), "=r" (dead1), "=r" (dead2), "=r" (dead3), 79 "=r" (deadlen), "=r" (dead1), "=r" (dead2), "=r" (dead3),
80 "=r" (dead4), "=r" (dead5), "=r" (dead6) 80 "=r" (dead4), "=r" (dead5), "=r" (dead6)
81 : "0" (x), "1" (y), "4" (len>>3) 81 : "0" (x), "1" (y), "4" (len>>3)
82 : "cc" 82 : "cc", "memory"
83 ); 83 );
84 return (sum1+sum2)>>1; 84 return (sum1+sum2)>>1;
85} 85}
diff --git a/apps/codecs/libspeex/vq_arm4.h b/apps/codecs/libspeex/vq_arm4.h
index 585b8613c5..d2697e5784 100644
--- a/apps/codecs/libspeex/vq_arm4.h
+++ b/apps/codecs/libspeex/vq_arm4.h
@@ -66,7 +66,7 @@ void vq_nbest(spx_word16_t *in, const spx_word16_t *codebook, int len, int entri
66 "=r" (dead1), "=r" (dead2), "=r" (codebook), "=r" (dead4), 66 "=r" (dead1), "=r" (dead2), "=r" (codebook), "=r" (dead4),
67 "=r" (dead5), "=r" (dead6), "=r" (dead7) 67 "=r" (dead5), "=r" (dead6), "=r" (dead7)
68 : "4" (len), "5" (in), "6" (codebook) 68 : "4" (len), "5" (in), "6" (codebook)
69 : "cc"); 69 : "cc", "memory");
70#else 70#else
71dist1=dist2=dist3=dist4=0; 71dist1=dist2=dist3=dist4=0;
72 /* spx_word32_t dist1=0; 72 /* spx_word32_t dist1=0;
diff --git a/apps/codecs/libtremor/mapping0.c b/apps/codecs/libtremor/mapping0.c
index c7e7299ccc..f3bd3401fe 100644
--- a/apps/codecs/libtremor/mapping0.c
+++ b/apps/codecs/libtremor/mapping0.c
@@ -211,7 +211,8 @@ static inline void channel_couple(ogg_int32_t *pcmM, ogg_int32_t *pcmA, int n)
211 "ldmia %[pcmA], {%[A0], %[A1], %[A2], %[A3]}\n\t" 211 "ldmia %[pcmA], {%[A0], %[A1], %[A2], %[A3]}\n\t"
212 : [M0] "=r" (M0), [M1] "=r" (M1), [M2] "=r" (M2), [M3] "=r" (M3), 212 : [M0] "=r" (M0), [M1] "=r" (M1), [M2] "=r" (M2), [M3] "=r" (M3),
213 [A0] "=r" (A0), [A1] "=r" (A1), [A2] "=r" (A2), [A3] "=r" (A3) 213 [A0] "=r" (A0), [A1] "=r" (A1), [A2] "=r" (A2), [A3] "=r" (A3)
214 : [pcmM] "r" (pcmM), [pcmA] "r" (pcmA) ); 214 : [pcmM] "r" (pcmM), [pcmA] "r" (pcmA)
215 : "memory" );
215 MAGANG( M0, A0 ); 216 MAGANG( M0, A0 );
216 MAGANG( M1, A1 ); 217 MAGANG( M1, A1 );
217 MAGANG( M2, A2 ); 218 MAGANG( M2, A2 );
@@ -220,7 +221,8 @@ static inline void channel_couple(ogg_int32_t *pcmM, ogg_int32_t *pcmA, int n)
220 "stmia %[pcmA]!, {%[A0], %[A1], %[A2], %[A3]}\n\t" 221 "stmia %[pcmA]!, {%[A0], %[A1], %[A2], %[A3]}\n\t"
221 : [pcmM] "+r" (pcmM), [pcmA] "+r" (pcmA) 222 : [pcmM] "+r" (pcmM), [pcmA] "+r" (pcmA)
222 : [M0] "r" (M0), [M1] "r" (M1), [M2] "r" (M2), [M3] "r" (M3), 223 : [M0] "r" (M0), [M1] "r" (M1), [M2] "r" (M2), [M3] "r" (M3),
223 [A0] "r" (A0), [A1] "r" (A1), [A2] "r" (A2), [A3] "r" (A3) ); 224 [A0] "r" (A0), [A1] "r" (A1), [A2] "r" (A2), [A3] "r" (A3)
225 : "memory" );
224 } 226 }
225} 227}
226#else 228#else