diff options
-rw-r--r-- | firmware/target/arm/as3525/pcm-as3525.c | 15 |
1 files changed, 1 insertions, 14 deletions
diff --git a/firmware/target/arm/as3525/pcm-as3525.c b/firmware/target/arm/as3525/pcm-as3525.c index bb91bfad65..20c34bba36 100644 --- a/firmware/target/arm/as3525/pcm-as3525.c +++ b/firmware/target/arm/as3525/pcm-as3525.c | |||
@@ -263,7 +263,7 @@ static inline void mono2stereo(int16_t *end) | |||
263 | { | 263 | { |
264 | if(audio_channels != 1) /* only for microphone */ | 264 | if(audio_channels != 1) /* only for microphone */ |
265 | return; | 265 | return; |
266 | #if 0 | 266 | |
267 | /* load pointer in a register and avoid updating it in each loop */ | 267 | /* load pointer in a register and avoid updating it in each loop */ |
268 | register int16_t *samples = mono_samples; | 268 | register int16_t *samples = mono_samples; |
269 | 269 | ||
@@ -273,19 +273,6 @@ static inline void mono2stereo(int16_t *end) | |||
273 | } while(samples != end); | 273 | } while(samples != end); |
274 | 274 | ||
275 | mono_samples = samples; /* update pointer */ | 275 | mono_samples = samples; /* update pointer */ |
276 | #else | ||
277 | /* gcc doesn't use pre indexing : let's save 1 cycle */ | ||
278 | int16_t left; | ||
279 | asm ( | ||
280 | "1: ldrh %0, [%1], #2 \n" // load 1 sample of the left-channel | ||
281 | " strh %0, [%1], #2 \n" // copy it in the right-channel | ||
282 | " cmp %1, %2 \n" // are we finished? | ||
283 | " bne 1b \n" | ||
284 | : "=r"(left), "+r"(mono_samples) | ||
285 | : "r"(end) | ||
286 | : "memory" | ||
287 | ); | ||
288 | #endif /* C / ASM */ | ||
289 | } | 276 | } |
290 | #endif /* CONFIG_CPU == AS3525 */ | 277 | #endif /* CONFIG_CPU == AS3525 */ |
291 | 278 | ||