diff --git a/codec/common/deblocking_neon.S b/codec/common/deblocking_neon.S index 23d9b183..da352c9d 100644 --- a/codec/common/deblocking_neon.S +++ b/codec/common/deblocking_neon.S @@ -910,7 +910,7 @@ bs_mv_check_jump1: beq bs_nzc_check_jump0 sub r6, \arg0, \arg2, lsl #4 - sub r6, \arg2, lsl #3 + sub r6, r6, \arg2, lsl #3 add r6, #12 vld1.32 d3[1], [r6] diff --git a/codec/decoder/core/arm/mc_neon.S b/codec/decoder/core/arm/mc_neon.S index 1f76f96f..28e4b979 100644 --- a/codec/decoder/core/arm/mc_neon.S +++ b/codec/decoder/core/arm/mc_neon.S @@ -499,7 +499,7 @@ WELS_ASM_FUNC_BEGIN McHorVer01WidthEq16_neon push {r4} ldr r4, [sp, #4] - sub r0, r1, lsl #1 //src[-2*src_stride] + sub r0, r0, r1, lsl #1 //src[-2*src_stride] pld [r0] pld [r0, r1] vmov.u16 q14, #0x0014 // 20 @@ -581,7 +581,7 @@ WELS_ASM_FUNC_BEGIN McHorVer01WidthEq8_neon push {r4} ldr r4, [sp, #4] - sub r0, r1, lsl #1 //src[-2*src_stride] + sub r0, r0, r1, lsl #1 //src[-2*src_stride] pld [r0] pld [r0, r1] vmov.u16 q14, #0x0014 // 20 @@ -633,7 +633,7 @@ WELS_ASM_FUNC_END WELS_ASM_FUNC_BEGIN McHorVer01WidthEq4_neon push {r4, r5, r6, r7} - sub r0, r1, lsl #1 //src[-2*src_stride] + sub r0, r0, r1, lsl #1 //src[-2*src_stride] pld [r0] pld [r0, r1] vmov.u16 q14, #0x0014 // 20 @@ -694,7 +694,7 @@ WELS_ASM_FUNC_BEGIN McHorVer03WidthEq16_neon push {r4} ldr r4, [sp, #4] - sub r0, r1, lsl #1 //src[-2*src_stride] + sub r0, r0, r1, lsl #1 //src[-2*src_stride] pld [r0] pld [r0, r1] vmov.u16 q14, #0x0014 // 20 @@ -776,7 +776,7 @@ WELS_ASM_FUNC_BEGIN McHorVer03WidthEq8_neon push {r4} ldr r4, [sp, #4] - sub r0, r1, lsl #1 //src[-2*src_stride] + sub r0, r0, r1, lsl #1 //src[-2*src_stride] pld [r0] pld [r0, r1] vmov.u16 q14, #0x0014 // 20 @@ -828,7 +828,7 @@ WELS_ASM_FUNC_END WELS_ASM_FUNC_BEGIN McHorVer03WidthEq4_neon push {r4, r5, r6, r7} - sub r0, r1, lsl #1 //src[-2*src_stride] + sub r0, r0, r1, lsl #1 //src[-2*src_stride] pld [r0] pld [r0, r1] vmov.u16 q14, #0x0014 // 20 @@ -889,7 +889,7 @@ WELS_ASM_FUNC_BEGIN McHorVer02WidthEq16_neon push {r4} ldr r4, [sp, #4] - sub r0, r1, lsl #1 //src[-2*src_stride] + sub r0, r0, r1, lsl #1 //src[-2*src_stride] pld [r0] pld [r0, r1] vmov.u16 q14, #0x0014 // 20 @@ -971,7 +971,7 @@ WELS_ASM_FUNC_BEGIN McHorVer02WidthEq8_neon push {r4} ldr r4, [sp, #4] - sub r0, r1, lsl #1 //src[-2*src_stride] + sub r0, r0, r1, lsl #1 //src[-2*src_stride] pld [r0] pld [r0, r1] vmov.u16 q14, #0x0014 // 20 @@ -1023,7 +1023,7 @@ WELS_ASM_FUNC_END WELS_ASM_FUNC_BEGIN McHorVer02WidthEq4_neon push {r4, r5, r6, r7} - sub r0, r1, lsl #1 //src[-2*src_stride] + sub r0, r0, r1, lsl #1 //src[-2*src_stride] pld [r0] pld [r0, r1] vmov.u16 q14, #0x0014 // 20 @@ -1085,7 +1085,7 @@ WELS_ASM_FUNC_BEGIN McHorVer22WidthEq16_neon ldr r4, [sp, #4] sub r0, #2 //src[-2] - sub r0, r1, lsl #1 //src[-2*src_stride-2] + sub r0, r0, r1, lsl #1 //src[-2*src_stride-2] pld [r0] pld [r0, r1] @@ -1197,7 +1197,7 @@ WELS_ASM_FUNC_BEGIN McHorVer22WidthEq8_neon ldr r4, [sp, #4] sub r0, #2 //src[-2] - sub r0, r1, lsl #1 //src[-2*src_stride-2] + sub r0, r0, r1, lsl #1 //src[-2*src_stride-2] pld [r0] pld [r0, r1] @@ -1279,7 +1279,7 @@ WELS_ASM_FUNC_BEGIN McHorVer22WidthEq4_neon ldr r6, [sp, #12] sub r0, #2 //src[-2] - sub r0, r1, lsl #1 //src[-2*src_stride-2] + sub r0, r0, r1, lsl #1 //src[-2*src_stride-2] pld [r0] pld [r0, r1] diff --git a/codec/encoder/core/arm/intra_pred_sad_3_opt_neon.S b/codec/encoder/core/arm/intra_pred_sad_3_opt_neon.S index 6c6b6b8b..8ae46816 100644 --- a/codec/encoder/core/arm/intra_pred_sad_3_opt_neon.S +++ b/codec/encoder/core/arm/intra_pred_sad_3_opt_neon.S @@ -272,14 +272,14 @@ WELS_ASM_FUNC_BEGIN WelsIntra16x16Combined3Satd_neon vpaddl.u16 d16, d16 vpaddl.u32 d16, d16 vmov.u32 r1, d16[0] - add r1, r6, lsl #1 + add r1, r1, r6, lsl #1 //vadd.u16 d20, d21 vrshr.u16 d17, #1 vpaddl.u16 d17, d17 vpaddl.u32 d17, d17 vmov.u32 r2, d17[0] - add r2, r6, lsl #1 + add r2, r2, r6, lsl #1 mov r4, #0 cmp r1, r0 @@ -362,13 +362,13 @@ sad_intra_16x16_x3_opt_loop0: vpaddl.u16 d22, d22 vpaddl.u32 d22, d22 vmov.u32 r1, d22[0] - add r1, r6, lsl #1 + add r1, r1, r6, lsl #1 vadd.u16 d20, d21 vpaddl.u16 d20, d20 vpaddl.u32 d20, d20 vmov.u32 r2, d20[0] - add r2, r6, lsl #1 + add r2, r2, r6, lsl #1 mov r4, #0 cmp r1, r0 @@ -506,13 +506,13 @@ sad_intra_8x8_x3_opt_loop1: vpaddl.u16 d22, d22 vpaddl.u32 d22, d22 vmov.u32 r0, d22[0] - add r0, r6, lsl #1 + add r0, r0, r6, lsl #1 vadd.u16 d20, d21 vpaddl.u16 d20, d20 vpaddl.u32 d20, d20 vmov.u32 r1, d20[0] - add r1, r6, lsl #1 + add r1, r1, r6, lsl #1 vadd.u16 d18, d19 vpaddl.u16 d18, d18 @@ -644,13 +644,13 @@ WELS_ASM_FUNC_BEGIN WelsIntra8x8Combined3Satd_neon vpaddl.u16 d11, d11 vpaddl.u32 d11, d11 vmov.u32 lr, d11[0] - add lr, r6, lsl #1 + add lr, lr, r6, lsl #1 vrshr.u16 d10, #1 vpaddl.u16 d10, d10 vpaddl.u32 d10, d10 vmov.u32 r3, d10[0] - add r3, r6, lsl #1 + add r3, r3, r6, lsl #1 vrshr.u16 d28, #1 vpaddl.u16 d28, d28 diff --git a/codec/encoder/core/arm/mc_neon.S b/codec/encoder/core/arm/mc_neon.S index 0c1b5d25..e3ca6027 100644 --- a/codec/encoder/core/arm/mc_neon.S +++ b/codec/encoder/core/arm/mc_neon.S @@ -612,7 +612,7 @@ WELS_ASM_FUNC_BEGIN enc_mc_luma_w16_xy_01_neon push {r4} ldr r4, [sp, #4] - sub r0, r1, lsl #1 //src[-2*src_stride] + sub r0, r0, r1, lsl #1 //src[-2*src_stride] pld [r0] pld [r0, r1] vmov.u16 q14, #0x0014 // 20 @@ -694,7 +694,7 @@ WELS_ASM_FUNC_BEGIN enc_mc_luma_w8_xy_01_neon push {r4} ldr r4, [sp, #4] - sub r0, r1, lsl #1 //src[-2*src_stride] + sub r0, r0, r1, lsl #1 //src[-2*src_stride] pld [r0] pld [r0, r1] vmov.u16 q14, #0x0014 // 20 @@ -746,7 +746,7 @@ WELS_ASM_FUNC_END WELS_ASM_FUNC_BEGIN enc_mc_luma_w4_xy_01_neon push {r4, r5, r6, r7} - sub r0, r1, lsl #1 //src[-2*src_stride] + sub r0, r0, r1, lsl #1 //src[-2*src_stride] pld [r0] pld [r0, r1] vmov.u16 q14, #0x0014 // 20 @@ -806,7 +806,7 @@ WELS_ASM_FUNC_BEGIN enc_mc_luma_w16_xy_03_neon push {r4} ldr r4, [sp, #4] - sub r0, r1, lsl #1 //src[-2*src_stride] + sub r0, r0, r1, lsl #1 //src[-2*src_stride] pld [r0] pld [r0, r1] vmov.u16 q14, #0x0014 // 20 @@ -888,7 +888,7 @@ WELS_ASM_FUNC_BEGIN enc_mc_luma_w8_xy_03_neon push {r4} ldr r4, [sp, #4] - sub r0, r1, lsl #1 //src[-2*src_stride] + sub r0, r0, r1, lsl #1 //src[-2*src_stride] pld [r0] pld [r0, r1] vmov.u16 q14, #0x0014 // 20 @@ -939,7 +939,7 @@ w8_xy_03_mc_luma_loop: WELS_ASM_FUNC_BEGIN enc_mc_luma_w4_xy_03_neon push {r4, r5, r6, r7} - sub r0, r1, lsl #1 //src[-2*src_stride] + sub r0, r0, r1, lsl #1 //src[-2*src_stride] pld [r0] pld [r0, r1] vmov.u16 q14, #0x0014 // 20 @@ -999,7 +999,7 @@ WELS_ASM_FUNC_BEGIN enc_mc_luma_w16_v_neon push {r4} ldr r4, [sp, #4] - sub r0, r1, lsl #1 //src[-2*src_stride] + sub r0, r0, r1, lsl #1 //src[-2*src_stride] pld [r0] pld [r0, r1] vmov.u16 q14, #0x0014 // 20 @@ -1080,7 +1080,7 @@ w16_v_mc_luma_loop: push {r4} ldr r4, [sp, #4] - sub r0, r1, lsl #1 //src[-2*src_stride] + sub r0, r0, r1, lsl #1 //src[-2*src_stride] pld [r0] pld [r0, r1] vmov.u16 q14, #0x0014 // 20 @@ -1168,7 +1168,7 @@ WELS_ASM_FUNC_BEGIN enc_mc_luma_w9_v_neon push {r4} ldr r4, [sp, #4] - sub r0, r1, lsl #1 //src[-2*src_stride] + sub r0, r0, r1, lsl #1 //src[-2*src_stride] pld [r0] pld [r0, r1] vmov.u16 q14, #0x0014 // 20 @@ -1223,7 +1223,7 @@ WELS_ASM_FUNC_END WELS_ASM_FUNC_BEGIN enc_mc_luma_w4_v_neon push {r4, r5, r6, r7} - sub r0, r1, lsl #1 //src[-2*src_stride] + sub r0, r0, r1, lsl #1 //src[-2*src_stride] pld [r0] pld [r0, r1] vmov.u16 q14, #0x0014 // 20 @@ -1285,7 +1285,7 @@ WELS_ASM_FUNC_BEGIN enc_mc_luma_w16_hv_neon ldr r4, [sp, #4] sub r0, #2 //src[-2] - sub r0, r1, lsl #1 //src[-2*src_stride-2] + sub r0, r0, r1, lsl #1 //src[-2*src_stride-2] pld [r0] pld [r0, r1] @@ -1393,7 +1393,7 @@ WELS_ASM_FUNC_BEGIN enc_mc_luma_w17_hv_neon ldr r4, [sp, #4] sub r0, #2 //src[-2] - sub r0, r1, lsl #1 //src[-2*src_stride-2] + sub r0, r0, r1, lsl #1 //src[-2*src_stride-2] pld [r0] pld [r0, r1] @@ -1526,7 +1526,7 @@ WELS_ASM_FUNC_BEGIN enc_mc_luma_w9_hv_neon ldr r4, [sp, #4] sub r0, #2 //src[-2] - sub r0, r1, lsl #1 //src[-2*src_stride-2] + sub r0, r0, r1, lsl #1 //src[-2*src_stride-2] pld [r0] pld [r0, r1] @@ -1628,7 +1628,7 @@ WELS_ASM_FUNC_BEGIN enc_mc_luma_w4_hv_neon ldr r6, [sp, #12] sub r0, #2 //src[-2] - sub r0, r1, lsl #1 //src[-2*src_stride-2] + sub r0, r0, r1, lsl #1 //src[-2*src_stride-2] pld [r0] pld [r0, r1] diff --git a/codec/processing/src/arm/down_sample_neon.S b/codec/processing/src/arm/down_sample_neon.S index 208169ec..3e73ac23 100644 --- a/codec/processing/src/arm/down_sample_neon.S +++ b/codec/processing/src/arm/down_sample_neon.S @@ -75,7 +75,7 @@ comp_ds_bilinear_loop0: cmp lr, r4 movcs lr, #0 - addcs r6, r3, lsl #1 + addcs r6, r6, r3, lsl #1 movcs r2, r6 addcs r7, r2, r3 addcs r8, r1