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
|
beq bs_nzc_check_jump0
|
||||||
|
|
||||||
sub r6, \arg0, \arg2, lsl #4
|
sub r6, \arg0, \arg2, lsl #4
|
||||||
sub r6, \arg2, lsl #3
|
sub r6, r6, \arg2, lsl #3
|
||||||
add r6, #12
|
add r6, #12
|
||||||
vld1.32 d3[1], [r6]
|
vld1.32 d3[1], [r6]
|
||||||
|
|
||||||
|
|||||||
@@ -499,7 +499,7 @@ WELS_ASM_FUNC_BEGIN McHorVer01WidthEq16_neon
|
|||||||
push {r4}
|
push {r4}
|
||||||
ldr r4, [sp, #4]
|
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]
|
||||||
pld [r0, r1]
|
pld [r0, r1]
|
||||||
vmov.u16 q14, #0x0014 // 20
|
vmov.u16 q14, #0x0014 // 20
|
||||||
@@ -581,7 +581,7 @@ WELS_ASM_FUNC_BEGIN McHorVer01WidthEq8_neon
|
|||||||
push {r4}
|
push {r4}
|
||||||
ldr r4, [sp, #4]
|
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]
|
||||||
pld [r0, r1]
|
pld [r0, r1]
|
||||||
vmov.u16 q14, #0x0014 // 20
|
vmov.u16 q14, #0x0014 // 20
|
||||||
@@ -633,7 +633,7 @@ WELS_ASM_FUNC_END
|
|||||||
|
|
||||||
WELS_ASM_FUNC_BEGIN McHorVer01WidthEq4_neon
|
WELS_ASM_FUNC_BEGIN McHorVer01WidthEq4_neon
|
||||||
push {r4, r5, r6, r7}
|
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]
|
||||||
pld [r0, r1]
|
pld [r0, r1]
|
||||||
vmov.u16 q14, #0x0014 // 20
|
vmov.u16 q14, #0x0014 // 20
|
||||||
@@ -694,7 +694,7 @@ WELS_ASM_FUNC_BEGIN McHorVer03WidthEq16_neon
|
|||||||
push {r4}
|
push {r4}
|
||||||
ldr r4, [sp, #4]
|
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]
|
||||||
pld [r0, r1]
|
pld [r0, r1]
|
||||||
vmov.u16 q14, #0x0014 // 20
|
vmov.u16 q14, #0x0014 // 20
|
||||||
@@ -776,7 +776,7 @@ WELS_ASM_FUNC_BEGIN McHorVer03WidthEq8_neon
|
|||||||
push {r4}
|
push {r4}
|
||||||
ldr r4, [sp, #4]
|
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]
|
||||||
pld [r0, r1]
|
pld [r0, r1]
|
||||||
vmov.u16 q14, #0x0014 // 20
|
vmov.u16 q14, #0x0014 // 20
|
||||||
@@ -828,7 +828,7 @@ WELS_ASM_FUNC_END
|
|||||||
|
|
||||||
WELS_ASM_FUNC_BEGIN McHorVer03WidthEq4_neon
|
WELS_ASM_FUNC_BEGIN McHorVer03WidthEq4_neon
|
||||||
push {r4, r5, r6, r7}
|
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]
|
||||||
pld [r0, r1]
|
pld [r0, r1]
|
||||||
vmov.u16 q14, #0x0014 // 20
|
vmov.u16 q14, #0x0014 // 20
|
||||||
@@ -889,7 +889,7 @@ WELS_ASM_FUNC_BEGIN McHorVer02WidthEq16_neon
|
|||||||
push {r4}
|
push {r4}
|
||||||
ldr r4, [sp, #4]
|
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]
|
||||||
pld [r0, r1]
|
pld [r0, r1]
|
||||||
vmov.u16 q14, #0x0014 // 20
|
vmov.u16 q14, #0x0014 // 20
|
||||||
@@ -971,7 +971,7 @@ WELS_ASM_FUNC_BEGIN McHorVer02WidthEq8_neon
|
|||||||
push {r4}
|
push {r4}
|
||||||
ldr r4, [sp, #4]
|
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]
|
||||||
pld [r0, r1]
|
pld [r0, r1]
|
||||||
vmov.u16 q14, #0x0014 // 20
|
vmov.u16 q14, #0x0014 // 20
|
||||||
@@ -1023,7 +1023,7 @@ WELS_ASM_FUNC_END
|
|||||||
|
|
||||||
WELS_ASM_FUNC_BEGIN McHorVer02WidthEq4_neon
|
WELS_ASM_FUNC_BEGIN McHorVer02WidthEq4_neon
|
||||||
push {r4, r5, r6, r7}
|
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]
|
||||||
pld [r0, r1]
|
pld [r0, r1]
|
||||||
vmov.u16 q14, #0x0014 // 20
|
vmov.u16 q14, #0x0014 // 20
|
||||||
@@ -1085,7 +1085,7 @@ WELS_ASM_FUNC_BEGIN McHorVer22WidthEq16_neon
|
|||||||
ldr r4, [sp, #4]
|
ldr r4, [sp, #4]
|
||||||
|
|
||||||
sub r0, #2 //src[-2]
|
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]
|
||||||
pld [r0, r1]
|
pld [r0, r1]
|
||||||
|
|
||||||
@@ -1197,7 +1197,7 @@ WELS_ASM_FUNC_BEGIN McHorVer22WidthEq8_neon
|
|||||||
ldr r4, [sp, #4]
|
ldr r4, [sp, #4]
|
||||||
|
|
||||||
sub r0, #2 //src[-2]
|
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]
|
||||||
pld [r0, r1]
|
pld [r0, r1]
|
||||||
|
|
||||||
@@ -1279,7 +1279,7 @@ WELS_ASM_FUNC_BEGIN McHorVer22WidthEq4_neon
|
|||||||
ldr r6, [sp, #12]
|
ldr r6, [sp, #12]
|
||||||
|
|
||||||
sub r0, #2 //src[-2]
|
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]
|
||||||
pld [r0, r1]
|
pld [r0, r1]
|
||||||
|
|
||||||
|
|||||||
@@ -272,14 +272,14 @@ WELS_ASM_FUNC_BEGIN WelsIntra16x16Combined3Satd_neon
|
|||||||
vpaddl.u16 d16, d16
|
vpaddl.u16 d16, d16
|
||||||
vpaddl.u32 d16, d16
|
vpaddl.u32 d16, d16
|
||||||
vmov.u32 r1, d16[0]
|
vmov.u32 r1, d16[0]
|
||||||
add r1, r6, lsl #1
|
add r1, r1, r6, lsl #1
|
||||||
|
|
||||||
//vadd.u16 d20, d21
|
//vadd.u16 d20, d21
|
||||||
vrshr.u16 d17, #1
|
vrshr.u16 d17, #1
|
||||||
vpaddl.u16 d17, d17
|
vpaddl.u16 d17, d17
|
||||||
vpaddl.u32 d17, d17
|
vpaddl.u32 d17, d17
|
||||||
vmov.u32 r2, d17[0]
|
vmov.u32 r2, d17[0]
|
||||||
add r2, r6, lsl #1
|
add r2, r2, r6, lsl #1
|
||||||
|
|
||||||
mov r4, #0
|
mov r4, #0
|
||||||
cmp r1, r0
|
cmp r1, r0
|
||||||
@@ -362,13 +362,13 @@ sad_intra_16x16_x3_opt_loop0:
|
|||||||
vpaddl.u16 d22, d22
|
vpaddl.u16 d22, d22
|
||||||
vpaddl.u32 d22, d22
|
vpaddl.u32 d22, d22
|
||||||
vmov.u32 r1, d22[0]
|
vmov.u32 r1, d22[0]
|
||||||
add r1, r6, lsl #1
|
add r1, r1, r6, lsl #1
|
||||||
|
|
||||||
vadd.u16 d20, d21
|
vadd.u16 d20, d21
|
||||||
vpaddl.u16 d20, d20
|
vpaddl.u16 d20, d20
|
||||||
vpaddl.u32 d20, d20
|
vpaddl.u32 d20, d20
|
||||||
vmov.u32 r2, d20[0]
|
vmov.u32 r2, d20[0]
|
||||||
add r2, r6, lsl #1
|
add r2, r2, r6, lsl #1
|
||||||
|
|
||||||
mov r4, #0
|
mov r4, #0
|
||||||
cmp r1, r0
|
cmp r1, r0
|
||||||
@@ -506,13 +506,13 @@ sad_intra_8x8_x3_opt_loop1:
|
|||||||
vpaddl.u16 d22, d22
|
vpaddl.u16 d22, d22
|
||||||
vpaddl.u32 d22, d22
|
vpaddl.u32 d22, d22
|
||||||
vmov.u32 r0, d22[0]
|
vmov.u32 r0, d22[0]
|
||||||
add r0, r6, lsl #1
|
add r0, r0, r6, lsl #1
|
||||||
|
|
||||||
vadd.u16 d20, d21
|
vadd.u16 d20, d21
|
||||||
vpaddl.u16 d20, d20
|
vpaddl.u16 d20, d20
|
||||||
vpaddl.u32 d20, d20
|
vpaddl.u32 d20, d20
|
||||||
vmov.u32 r1, d20[0]
|
vmov.u32 r1, d20[0]
|
||||||
add r1, r6, lsl #1
|
add r1, r1, r6, lsl #1
|
||||||
|
|
||||||
vadd.u16 d18, d19
|
vadd.u16 d18, d19
|
||||||
vpaddl.u16 d18, d18
|
vpaddl.u16 d18, d18
|
||||||
@@ -644,13 +644,13 @@ WELS_ASM_FUNC_BEGIN WelsIntra8x8Combined3Satd_neon
|
|||||||
vpaddl.u16 d11, d11
|
vpaddl.u16 d11, d11
|
||||||
vpaddl.u32 d11, d11
|
vpaddl.u32 d11, d11
|
||||||
vmov.u32 lr, d11[0]
|
vmov.u32 lr, d11[0]
|
||||||
add lr, r6, lsl #1
|
add lr, lr, r6, lsl #1
|
||||||
|
|
||||||
vrshr.u16 d10, #1
|
vrshr.u16 d10, #1
|
||||||
vpaddl.u16 d10, d10
|
vpaddl.u16 d10, d10
|
||||||
vpaddl.u32 d10, d10
|
vpaddl.u32 d10, d10
|
||||||
vmov.u32 r3, d10[0]
|
vmov.u32 r3, d10[0]
|
||||||
add r3, r6, lsl #1
|
add r3, r3, r6, lsl #1
|
||||||
|
|
||||||
vrshr.u16 d28, #1
|
vrshr.u16 d28, #1
|
||||||
vpaddl.u16 d28, d28
|
vpaddl.u16 d28, d28
|
||||||
|
|||||||
@@ -612,7 +612,7 @@ WELS_ASM_FUNC_BEGIN enc_mc_luma_w16_xy_01_neon
|
|||||||
push {r4}
|
push {r4}
|
||||||
ldr r4, [sp, #4]
|
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]
|
||||||
pld [r0, r1]
|
pld [r0, r1]
|
||||||
vmov.u16 q14, #0x0014 // 20
|
vmov.u16 q14, #0x0014 // 20
|
||||||
@@ -694,7 +694,7 @@ WELS_ASM_FUNC_BEGIN enc_mc_luma_w8_xy_01_neon
|
|||||||
push {r4}
|
push {r4}
|
||||||
ldr r4, [sp, #4]
|
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]
|
||||||
pld [r0, r1]
|
pld [r0, r1]
|
||||||
vmov.u16 q14, #0x0014 // 20
|
vmov.u16 q14, #0x0014 // 20
|
||||||
@@ -746,7 +746,7 @@ WELS_ASM_FUNC_END
|
|||||||
|
|
||||||
WELS_ASM_FUNC_BEGIN enc_mc_luma_w4_xy_01_neon
|
WELS_ASM_FUNC_BEGIN enc_mc_luma_w4_xy_01_neon
|
||||||
push {r4, r5, r6, r7}
|
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]
|
||||||
pld [r0, r1]
|
pld [r0, r1]
|
||||||
vmov.u16 q14, #0x0014 // 20
|
vmov.u16 q14, #0x0014 // 20
|
||||||
@@ -806,7 +806,7 @@ WELS_ASM_FUNC_BEGIN enc_mc_luma_w16_xy_03_neon
|
|||||||
push {r4}
|
push {r4}
|
||||||
ldr r4, [sp, #4]
|
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]
|
||||||
pld [r0, r1]
|
pld [r0, r1]
|
||||||
vmov.u16 q14, #0x0014 // 20
|
vmov.u16 q14, #0x0014 // 20
|
||||||
@@ -888,7 +888,7 @@ WELS_ASM_FUNC_BEGIN enc_mc_luma_w8_xy_03_neon
|
|||||||
push {r4}
|
push {r4}
|
||||||
ldr r4, [sp, #4]
|
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]
|
||||||
pld [r0, r1]
|
pld [r0, r1]
|
||||||
vmov.u16 q14, #0x0014 // 20
|
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
|
WELS_ASM_FUNC_BEGIN enc_mc_luma_w4_xy_03_neon
|
||||||
push {r4, r5, r6, r7}
|
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]
|
||||||
pld [r0, r1]
|
pld [r0, r1]
|
||||||
vmov.u16 q14, #0x0014 // 20
|
vmov.u16 q14, #0x0014 // 20
|
||||||
@@ -999,7 +999,7 @@ WELS_ASM_FUNC_BEGIN enc_mc_luma_w16_v_neon
|
|||||||
push {r4}
|
push {r4}
|
||||||
ldr r4, [sp, #4]
|
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]
|
||||||
pld [r0, r1]
|
pld [r0, r1]
|
||||||
vmov.u16 q14, #0x0014 // 20
|
vmov.u16 q14, #0x0014 // 20
|
||||||
@@ -1080,7 +1080,7 @@ w16_v_mc_luma_loop:
|
|||||||
push {r4}
|
push {r4}
|
||||||
ldr r4, [sp, #4]
|
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]
|
||||||
pld [r0, r1]
|
pld [r0, r1]
|
||||||
vmov.u16 q14, #0x0014 // 20
|
vmov.u16 q14, #0x0014 // 20
|
||||||
@@ -1168,7 +1168,7 @@ WELS_ASM_FUNC_BEGIN enc_mc_luma_w9_v_neon
|
|||||||
push {r4}
|
push {r4}
|
||||||
ldr r4, [sp, #4]
|
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]
|
||||||
pld [r0, r1]
|
pld [r0, r1]
|
||||||
vmov.u16 q14, #0x0014 // 20
|
vmov.u16 q14, #0x0014 // 20
|
||||||
@@ -1223,7 +1223,7 @@ WELS_ASM_FUNC_END
|
|||||||
|
|
||||||
WELS_ASM_FUNC_BEGIN enc_mc_luma_w4_v_neon
|
WELS_ASM_FUNC_BEGIN enc_mc_luma_w4_v_neon
|
||||||
push {r4, r5, r6, r7}
|
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]
|
||||||
pld [r0, r1]
|
pld [r0, r1]
|
||||||
vmov.u16 q14, #0x0014 // 20
|
vmov.u16 q14, #0x0014 // 20
|
||||||
@@ -1285,7 +1285,7 @@ WELS_ASM_FUNC_BEGIN enc_mc_luma_w16_hv_neon
|
|||||||
ldr r4, [sp, #4]
|
ldr r4, [sp, #4]
|
||||||
|
|
||||||
sub r0, #2 //src[-2]
|
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]
|
||||||
pld [r0, r1]
|
pld [r0, r1]
|
||||||
|
|
||||||
@@ -1393,7 +1393,7 @@ WELS_ASM_FUNC_BEGIN enc_mc_luma_w17_hv_neon
|
|||||||
ldr r4, [sp, #4]
|
ldr r4, [sp, #4]
|
||||||
|
|
||||||
sub r0, #2 //src[-2]
|
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]
|
||||||
pld [r0, r1]
|
pld [r0, r1]
|
||||||
|
|
||||||
@@ -1526,7 +1526,7 @@ WELS_ASM_FUNC_BEGIN enc_mc_luma_w9_hv_neon
|
|||||||
ldr r4, [sp, #4]
|
ldr r4, [sp, #4]
|
||||||
|
|
||||||
sub r0, #2 //src[-2]
|
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]
|
||||||
pld [r0, r1]
|
pld [r0, r1]
|
||||||
|
|
||||||
@@ -1628,7 +1628,7 @@ WELS_ASM_FUNC_BEGIN enc_mc_luma_w4_hv_neon
|
|||||||
ldr r6, [sp, #12]
|
ldr r6, [sp, #12]
|
||||||
|
|
||||||
sub r0, #2 //src[-2]
|
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]
|
||||||
pld [r0, r1]
|
pld [r0, r1]
|
||||||
|
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ comp_ds_bilinear_loop0:
|
|||||||
|
|
||||||
cmp lr, r4
|
cmp lr, r4
|
||||||
movcs lr, #0
|
movcs lr, #0
|
||||||
addcs r6, r3, lsl #1
|
addcs r6, r6, r3, lsl #1
|
||||||
movcs r2, r6
|
movcs r2, r6
|
||||||
addcs r7, r2, r3
|
addcs r7, r2, r3
|
||||||
addcs r8, r1
|
addcs r8, r1
|
||||||
|
|||||||
Reference in New Issue
Block a user