Index: webrtc/modules/audio_coding/codecs/isac/fix/source/lattice_armv7.S |
diff --git a/webrtc/modules/audio_coding/codecs/isac/fix/source/lattice_armv7.S b/webrtc/modules/audio_coding/codecs/isac/fix/source/lattice_armv7.S |
index 35fd9ef748249fa87dca509cbcec7609194a27d6..ccea467990aa23b57961ab586e2024dfa8e061ae 100644 |
--- a/webrtc/modules/audio_coding/codecs/isac/fix/source/lattice_armv7.S |
+++ b/webrtc/modules/audio_coding/codecs/isac/fix/source/lattice_armv7.S |
@@ -46,21 +46,21 @@ HALF_SUBFRAME_LOOP: @ for(n = 0; n < HALF_SUBFRAMELEN - 1; n++) |
add r2, r9, asl #1 @ Restore r2 to &cth_Q15[order_coef] |
add r3, r9, asl #1 @ Restore r3 to &sth_Q15[order_coef] |
-ORDER_COEF_LOOP: @ for(k = order_coef - 1 ; k >= 0; k--) |
+ORDER_COEF_LOOP: @ for(k = order_coef ; k > 0; k--) |
- ldrh r7, [r3, #-2]! @ sth_Q15[k] |
- ldrh r6, [r2, #-2]! @ cth_Q15[k] |
+ ldrh r7, [r3, #-2]! @ sth_Q15[k - 1] |
+ ldrh r6, [r2, #-2]! @ cth_Q15[k - 1] |
- ldrh r8, [r0, #-2] @ ar_g_Q0[k] |
- smlabb r11, r7, r5, r12 @ sth_Q15[k] * tmpAR + 16384 |
- smlabb r10, r6, r5, r12 @ cth_Q15[k] * tmpAR + 16384 |
- smulbb r7, r7, r8 @ sth_Q15[k] * ar_g_Q0[k] |
- smlabb r11, r6, r8, r11 @ cth_Q15[k]*ar_g_Q0[k]+(sth_Q15[k]*tmpAR+16384) |
+ ldrh r8, [r0, #-2] @ ar_g_Q0[k - 1] |
+ smlabb r11, r7, r5, r12 @ sth_Q15[k - 1] * tmpAR + 16384 |
+ smlabb r10, r6, r5, r12 @ cth_Q15[k - 1] * tmpAR + 16384 |
+ smulbb r7, r7, r8 @ sth_Q15[k - 1] * ar_g_Q0[k - 1] |
+ smlabb r11, r6, r8, r11 @ cth_Q15[k - 1]*ar_g_Q0[k - 1]+(sth_Q15[k - 1]*tmpAR+16384) |
- sub r10, r10, r7 @ cth_Q15[k]*tmpAR+16384-(sth_Q15[k]*ar_g_Q0[k]) |
+ sub r10, r10, r7 @ cth_Q15[k - 1]*tmpAR+16384-(sth_Q15[k - 1]*ar_g_Q0[k - 1]) |
ssat r11, #16, r11, asr #15 |
ssat r5, #16, r10, asr #15 |
- strh r11, [r0], #-2 @ Output: ar_g_Q0[k+1] |
+ strh r11, [r0], #-2 @ Output: ar_g_Q0[k] |
subs r9, #1 |
bgt ORDER_COEF_LOOP |