Use the three-operand form of add/sub with shift
When using unified syntax, the two operand form with a shift isn't allowed.
This commit is contained in:
@@ -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]
|
||||
|
||||
|
||||
@@ -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]
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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]
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user