diff --git a/vp8/encoder/arm/armv5te/boolhuff_armv5te.asm b/vp8/encoder/arm/armv5te/boolhuff_armv5te.asm index 3c05f57055c88e7428d08af58426cb9ba84831fc..138ed46deefc551c6555db8f08318be1df944684 100644 --- a/vp8/encoder/arm/armv5te/boolhuff_armv5te.asm +++ b/vp8/encoder/arm/armv5te/boolhuff_armv5te.asm @@ -53,10 +53,10 @@ sub r7, r5, #1 ; range-1 cmp r1, #0 - mul r4, r4, r7 ; ((range-1) * probability) + mul r6, r4, r7 ; ((range-1) * probability) mov r7, #1 - add r4, r7, r4, lsr #8 ; 1 + (((range-1) * probability) >> 8) + add r4, r7, r6, lsr #8 ; 1 + (((range-1) * probability) >> 8) addne r2, r2, r4 ; if (bit) lowvalue += split subne r4, r5, r4 ; if (bit) range = range-split diff --git a/vp8/encoder/arm/armv5te/vp8_packtokens_armv5.asm b/vp8/encoder/arm/armv5te/vp8_packtokens_armv5.asm index d939287ff0b65cd93a7e79d955164afd30e1053f..933717c63d4267976390f4e2a589884ee4a54b15 100644 --- a/vp8/encoder/arm/armv5te/vp8_packtokens_armv5.asm +++ b/vp8/encoder/arm/armv5te/vp8_packtokens_armv5.asm @@ -71,7 +71,7 @@ token_loop ; off of v, so set a flag here based on this. ; This value is refered to as "bb" lsls r12, r12, #1 ; bb = v >> n - mul r4, r4, r7 ; ((range-1) * pp[i>>1])) + mul r6, r4, r7 ; ((range-1) * pp[i>>1])) ; bb can only be 0 or 1. So only execute this statement ; if bb == 1, otherwise it will act like i + 0 @@ -79,7 +79,7 @@ token_loop mov r7, #1 ldrsb lr, [r10, lr] ; i = vp8_coef_tree[i+bb] - add r4, r7, r4, lsr #8 ; 1 + (((range-1) * pp[i>>1]) >> 8) + add r4, r7, r6, lsr #8 ; 1 + (((range-1) * pp[i>>1]) >> 8) addcs r2, r2, r4 ; if (bb) lowvalue += split subcs r4, r5, r4 ; if (bb) range = range-split @@ -172,12 +172,12 @@ extra_bits_loop ldrb r4, [r9, lr, asr #1] ; pp[i>>1] sub r7, r5, #1 ; range-1 lsls r12, r12, #1 ; v >> n - mul r4, r4, r7 ; (range-1) * pp[i>>1] + mul r6, r4, r7 ; (range-1) * pp[i>>1] addcs lr, lr, #1 ; i + bb mov r7, #1 ldrsb lr, [r10, lr] ; i = b->tree[i+bb] - add r4, r7, r4, lsr #8 ; split = 1 + (((range-1) * pp[i>>1]) >> 8) + add r4, r7, r6, lsr #8 ; split = 1 + (((range-1) * pp[i>>1]) >> 8) addcs r2, r2, r4 ; if (bb) lowvalue += split subcs r4, r5, r4 ; if (bb) range = range-split diff --git a/vp8/encoder/arm/armv5te/vp8_packtokens_mbrow_armv5.asm b/vp8/encoder/arm/armv5te/vp8_packtokens_mbrow_armv5.asm index ac2bba681a47e303af4e97f47e8db3e63eebd311..82bf71f351958af658bda20d58974c5182db1fc1 100644 --- a/vp8/encoder/arm/armv5te/vp8_packtokens_mbrow_armv5.asm +++ b/vp8/encoder/arm/armv5te/vp8_packtokens_mbrow_armv5.asm @@ -93,7 +93,7 @@ token_loop ; off of v, so set a flag here based on this. ; This value is refered to as "bb" lsls r12, r12, #1 ; bb = v >> n - mul r4, r4, r7 ; ((range-1) * pp[i>>1])) + mul r6, r4, r7 ; ((range-1) * pp[i>>1])) ; bb can only be 0 or 1. So only execute this statement ; if bb == 1, otherwise it will act like i + 0 @@ -101,7 +101,7 @@ token_loop mov r7, #1 ldrsb lr, [r10, lr] ; i = vp8_coef_tree[i+bb] - add r4, r7, r4, lsr #8 ; 1 + (((range-1) * pp[i>>1]) >> 8) + add r4, r7, r6, lsr #8 ; 1 + (((range-1) * pp[i>>1]) >> 8) addcs r2, r2, r4 ; if (bb) lowvalue += split subcs r4, r5, r4 ; if (bb) range = range-split @@ -194,12 +194,12 @@ extra_bits_loop ldrb r4, [r9, lr, asr #1] ; pp[i>>1] sub r7, r5, #1 ; range-1 lsls r12, r12, #1 ; v >> n - mul r4, r4, r7 ; (range-1) * pp[i>>1] + mul r6, r4, r7 ; (range-1) * pp[i>>1] addcs lr, lr, #1 ; i + bb mov r7, #1 ldrsb lr, [r10, lr] ; i = b->tree[i+bb] - add r4, r7, r4, lsr #8 ; split = 1 + (((range-1) * pp[i>>1]) >> 8) + add r4, r7, r6, lsr #8 ; split = 1 + (((range-1) * pp[i>>1]) >> 8) addcs r2, r2, r4 ; if (bb) lowvalue += split subcs r4, r5, r4 ; if (bb) range = range-split diff --git a/vp8/encoder/arm/armv5te/vp8_packtokens_partitions_armv5.asm b/vp8/encoder/arm/armv5te/vp8_packtokens_partitions_armv5.asm index c2eccdb53e1f3d94b9fff91dc8b82c4ec837800c..c00375e88f33205fdef33bd5df8ef39c6528a967 100644 --- a/vp8/encoder/arm/armv5te/vp8_packtokens_partitions_armv5.asm +++ b/vp8/encoder/arm/armv5te/vp8_packtokens_partitions_armv5.asm @@ -123,7 +123,7 @@ token_loop ; off of v, so set a flag here based on this. ; This value is refered to as "bb" lsls r12, r12, #1 ; bb = v >> n - mul r4, r4, r7 ; ((range-1) * pp[i>>1])) + mul r6, r4, r7 ; ((range-1) * pp[i>>1])) ; bb can only be 0 or 1. So only execute this statement ; if bb == 1, otherwise it will act like i + 0 @@ -131,7 +131,7 @@ token_loop mov r7, #1 ldrsb lr, [r10, lr] ; i = vp8_coef_tree[i+bb] - add r4, r7, r4, lsr #8 ; 1 + (((range-1) * pp[i>>1]) >> 8) + add r4, r7, r6, lsr #8 ; 1 + (((range-1) * pp[i>>1]) >> 8) addcs r2, r2, r4 ; if (bb) lowvalue += split subcs r4, r5, r4 ; if (bb) range = range-split @@ -224,12 +224,12 @@ extra_bits_loop ldrb r4, [r9, lr, asr #1] ; pp[i>>1] sub r7, r5, #1 ; range-1 lsls r12, r12, #1 ; v >> n - mul r4, r4, r7 ; (range-1) * pp[i>>1] + mul r6, r4, r7 ; (range-1) * pp[i>>1] addcs lr, lr, #1 ; i + bb mov r7, #1 ldrsb lr, [r10, lr] ; i = b->tree[i+bb] - add r4, r7, r4, lsr #8 ; split = 1 + (((range-1) * pp[i>>1]) >> 8) + add r4, r7, r6, lsr #8 ; split = 1 + (((range-1) * pp[i>>1]) >> 8) addcs r2, r2, r4 ; if (bb) lowvalue += split subcs r4, r5, r4 ; if (bb) range = range-split