Merge cherrypicks of [8558068, 8558825, 8558826, 8558827, 8557109, 8558018, 8558886, 8558887, 8558888, 8558889, 8558071, 8558072, 8556231] into qt-release

Change-Id: I765da6de3bf2599f7804361c2be393c05cfac1e5
diff --git a/libopus_blacklist.txt b/libopus_blacklist.txt
index a789961..fd3f398 100644
--- a/libopus_blacklist.txt
+++ b/libopus_blacklist.txt
@@ -23,6 +23,26 @@
 
 src:*/celt/kiss_fft.c
 
+# assembly optimizations that know what they are doing
+fun:silk_SMULWB_armv4
+fun:silk_SMULWT_armv4
+fun:silk_SMULWW_armv4
+fun:silk_SMLAWW_armv4
+#
+fun:silk_SMULWB_armv5e
+fun:silk_SMLAWB_armv5e
+fun:silk_SMULWT_armv5e
+fun:silk_SMLAWT_armv5e
+fun:silk_SMULBB_armv5e
+fun:silk_SMLABB_armv5e
+fun:silk_SMULBT_armv5e
+fun:silk_SMLABT_armv5e
+fun:silk_ADD_SAT32_armv5e
+fun:silk_SUB_SAT32_armv5e
+fun:silk_CLZ16_armv5
+fun:silk_CLZ32_armv5
+
+
 # Performance related
 fun:exp_rotation1
 fun:haar1
diff --git a/silk/fixed/arm/warped_autocorrelation_FIX_neon_intr.c b/silk/fixed/arm/warped_autocorrelation_FIX_neon_intr.c
index 00a70cb..ee06f98 100644
--- a/silk/fixed/arm/warped_autocorrelation_FIX_neon_intr.c
+++ b/silk/fixed/arm/warped_autocorrelation_FIX_neon_intr.c
@@ -172,7 +172,7 @@
                     state_QS_s32x4[ 0 ][ 1 ] = calc_state( state_QS_s32x4[ 0 ][ 1 ], state_QS_s32x4[ 2 ][ 1 ], state_QS_s32x4[ 1 ][ 1 ], warping_Q16_s32x4 );
                     state_QS_s32x4[ 1 ][ 0 ] = state_QS_s32x4[ 2 ][ 0 ];
                     state_QS_s32x4[ 1 ][ 1 ] = state_QS_s32x4[ 2 ][ 1 ];
-                } while( ++n < ( length + order ) );
+                } while( ++n < ( length + order - 3) );
                 in = state;
                 o -= 8;
             } while( o > 4 );