ARM: h264dsp_neon cosmetics

- Replace 'ip' with 'r12'.
- Use correct size designators for vld1/vst1.
- Whitespace fixes.

Signed-off-by: Mans Rullgard <mans@mansr.com>
This commit is contained in:
Mans Rullgard
2011-12-02 16:45:00 +00:00
parent a760f530bb
commit 59807fee6d

View File

@ -36,7 +36,7 @@ A muls r7, r4, r5
T mul r7, r4, r5 T mul r7, r4, r5
T cmp r7, #0 T cmp r7, #0
rsb r6, r7, r5, lsl #3 rsb r6, r7, r5, lsl #3
rsb ip, r7, r4, lsl #3 rsb r12, r7, r4, lsl #3
sub r4, r7, r4, lsl #3 sub r4, r7, r4, lsl #3
sub r4, r4, r5, lsl #3 sub r4, r4, r5, lsl #3
add r4, r4, #64 add r4, r4, #64
@ -47,10 +47,10 @@ T cmp r7, #0
vdup.8 d0, r4 vdup.8 d0, r4
lsl r4, r2, #1 lsl r4, r2, #1
vdup.8 d1, ip vdup.8 d1, r12
vld1.64 {d4, d5}, [r1], r4 vld1.8 {d4, d5}, [r1], r4
vdup.8 d2, r6 vdup.8 d2, r6
vld1.64 {d6, d7}, [r5], r4 vld1.8 {d6, d7}, [r5], r4
vdup.8 d3, r7 vdup.8 d3, r7
vext.8 d5, d4, d5, #1 vext.8 d5, d4, d5, #1
@ -59,7 +59,7 @@ T cmp r7, #0
1: pld [r5] 1: pld [r5]
vmull.u8 q8, d4, d0 vmull.u8 q8, d4, d0
vmlal.u8 q8, d5, d1 vmlal.u8 q8, d5, d1
vld1.64 {d4, d5}, [r1], r4 vld1.8 {d4, d5}, [r1], r4
vmlal.u8 q8, d6, d2 vmlal.u8 q8, d6, d2
vext.8 d5, d4, d5, #1 vext.8 d5, d4, d5, #1
vmlal.u8 q8, d7, d3 vmlal.u8 q8, d7, d3
@ -69,57 +69,57 @@ T cmp r7, #0
vmlal.u8 q9, d4, d2 vmlal.u8 q9, d4, d2
vmlal.u8 q9, d5, d3 vmlal.u8 q9, d5, d3
vrshrn.u16 d16, q8, #6 vrshrn.u16 d16, q8, #6
vld1.64 {d6, d7}, [r5], r4 vld1.8 {d6, d7}, [r5], r4
pld [r1] pld [r1]
vrshrn.u16 d17, q9, #6 vrshrn.u16 d17, q9, #6
.ifc \type,avg .ifc \type,avg
vld1.64 {d20}, [lr,:64], r2 vld1.8 {d20}, [lr,:64], r2
vld1.64 {d21}, [lr,:64], r2 vld1.8 {d21}, [lr,:64], r2
vrhadd.u8 q8, q8, q10 vrhadd.u8 q8, q8, q10
.endif .endif
vext.8 d7, d6, d7, #1 vext.8 d7, d6, d7, #1
vst1.64 {d16}, [r0,:64], r2 vst1.8 {d16}, [r0,:64], r2
vst1.64 {d17}, [r0,:64], r2 vst1.8 {d17}, [r0,:64], r2
bgt 1b bgt 1b
pop {r4-r7, pc} pop {r4-r7, pc}
2: tst r6, r6 2: tst r6, r6
add ip, ip, r6 add r12, r12, r6
vdup.8 d0, r4 vdup.8 d0, r4
vdup.8 d1, ip vdup.8 d1, r12
beq 4f beq 4f
add r5, r1, r2 add r5, r1, r2
lsl r4, r2, #1 lsl r4, r2, #1
vld1.64 {d4}, [r1], r4 vld1.8 {d4}, [r1], r4
vld1.64 {d6}, [r5], r4 vld1.8 {d6}, [r5], r4
3: pld [r5] 3: pld [r5]
vmull.u8 q8, d4, d0 vmull.u8 q8, d4, d0
vmlal.u8 q8, d6, d1 vmlal.u8 q8, d6, d1
vld1.64 {d4}, [r1], r4 vld1.8 {d4}, [r1], r4
vmull.u8 q9, d6, d0 vmull.u8 q9, d6, d0
vmlal.u8 q9, d4, d1 vmlal.u8 q9, d4, d1
vld1.64 {d6}, [r5], r4 vld1.8 {d6}, [r5], r4
vrshrn.u16 d16, q8, #6 vrshrn.u16 d16, q8, #6
vrshrn.u16 d17, q9, #6 vrshrn.u16 d17, q9, #6
.ifc \type,avg .ifc \type,avg
vld1.64 {d20}, [lr,:64], r2 vld1.8 {d20}, [lr,:64], r2
vld1.64 {d21}, [lr,:64], r2 vld1.8 {d21}, [lr,:64], r2
vrhadd.u8 q8, q8, q10 vrhadd.u8 q8, q8, q10
.endif .endif
subs r3, r3, #2 subs r3, r3, #2
pld [r1] pld [r1]
vst1.64 {d16}, [r0,:64], r2 vst1.8 {d16}, [r0,:64], r2
vst1.64 {d17}, [r0,:64], r2 vst1.8 {d17}, [r0,:64], r2
bgt 3b bgt 3b
pop {r4-r7, pc} pop {r4-r7, pc}
4: vld1.64 {d4, d5}, [r1], r2 4: vld1.8 {d4, d5}, [r1], r2
vld1.64 {d6, d7}, [r1], r2 vld1.8 {d6, d7}, [r1], r2
vext.8 d5, d4, d5, #1 vext.8 d5, d4, d5, #1
vext.8 d7, d6, d7, #1 vext.8 d7, d6, d7, #1
@ -127,7 +127,7 @@ T cmp r7, #0
subs r3, r3, #2 subs r3, r3, #2
vmull.u8 q8, d4, d0 vmull.u8 q8, d4, d0
vmlal.u8 q8, d5, d1 vmlal.u8 q8, d5, d1
vld1.64 {d4, d5}, [r1], r2 vld1.8 {d4, d5}, [r1], r2
vmull.u8 q9, d6, d0 vmull.u8 q9, d6, d0
vmlal.u8 q9, d7, d1 vmlal.u8 q9, d7, d1
pld [r1] pld [r1]
@ -135,14 +135,14 @@ T cmp r7, #0
vrshrn.u16 d16, q8, #6 vrshrn.u16 d16, q8, #6
vrshrn.u16 d17, q9, #6 vrshrn.u16 d17, q9, #6
.ifc \type,avg .ifc \type,avg
vld1.64 {d20}, [lr,:64], r2 vld1.8 {d20}, [lr,:64], r2
vld1.64 {d21}, [lr,:64], r2 vld1.8 {d21}, [lr,:64], r2
vrhadd.u8 q8, q8, q10 vrhadd.u8 q8, q8, q10
.endif .endif
vld1.64 {d6, d7}, [r1], r2 vld1.8 {d6, d7}, [r1], r2
vext.8 d7, d6, d7, #1 vext.8 d7, d6, d7, #1
vst1.64 {d16}, [r0,:64], r2 vst1.8 {d16}, [r0,:64], r2
vst1.64 {d17}, [r0,:64], r2 vst1.8 {d17}, [r0,:64], r2
bgt 5b bgt 5b
pop {r4-r7, pc} pop {r4-r7, pc}
@ -164,7 +164,7 @@ A muls r7, r4, r5
T mul r7, r4, r5 T mul r7, r4, r5
T cmp r7, #0 T cmp r7, #0
rsb r6, r7, r5, lsl #3 rsb r6, r7, r5, lsl #3
rsb ip, r7, r4, lsl #3 rsb r12, r7, r4, lsl #3
sub r4, r7, r4, lsl #3 sub r4, r7, r4, lsl #3
sub r4, r4, r5, lsl #3 sub r4, r4, r5, lsl #3
add r4, r4, #64 add r4, r4, #64
@ -175,10 +175,10 @@ T cmp r7, #0
vdup.8 d0, r4 vdup.8 d0, r4
lsl r4, r2, #1 lsl r4, r2, #1
vdup.8 d1, ip vdup.8 d1, r12
vld1.64 {d4}, [r1], r4 vld1.8 {d4}, [r1], r4
vdup.8 d2, r6 vdup.8 d2, r6
vld1.64 {d6}, [r5], r4 vld1.8 {d6}, [r5], r4
vdup.8 d3, r7 vdup.8 d3, r7
vext.8 d5, d4, d5, #1 vext.8 d5, d4, d5, #1
@ -192,12 +192,12 @@ T cmp r7, #0
1: pld [r5] 1: pld [r5]
vmull.u8 q8, d4, d0 vmull.u8 q8, d4, d0
vmlal.u8 q8, d6, d2 vmlal.u8 q8, d6, d2
vld1.64 {d4}, [r1], r4 vld1.8 {d4}, [r1], r4
vext.8 d5, d4, d5, #1 vext.8 d5, d4, d5, #1
vtrn.32 d4, d5 vtrn.32 d4, d5
vmull.u8 q9, d6, d0 vmull.u8 q9, d6, d0
vmlal.u8 q9, d4, d2 vmlal.u8 q9, d4, d2
vld1.64 {d6}, [r5], r4 vld1.8 {d6}, [r5], r4
vadd.i16 d16, d16, d17 vadd.i16 d16, d16, d17
vadd.i16 d17, d18, d19 vadd.i16 d17, d18, d19
vrshrn.u16 d16, q8, #6 vrshrn.u16 d16, q8, #6
@ -217,9 +217,9 @@ T cmp r7, #0
pop {r4-r7, pc} pop {r4-r7, pc}
2: tst r6, r6 2: tst r6, r6
add ip, ip, r6 add r12, r12, r6
vdup.8 d0, r4 vdup.8 d0, r4
vdup.8 d1, ip vdup.8 d1, r12
vtrn.32 d0, d1 vtrn.32 d0, d1
beq 4f beq 4f
@ -251,8 +251,8 @@ T cmp r7, #0
pop {r4-r7, pc} pop {r4-r7, pc}
4: vld1.64 {d4}, [r1], r2 4: vld1.8 {d4}, [r1], r2
vld1.64 {d6}, [r1], r2 vld1.8 {d6}, [r1], r2
vext.8 d5, d4, d5, #1 vext.8 d5, d4, d5, #1
vext.8 d7, d6, d7, #1 vext.8 d7, d6, d7, #1
vtrn.32 d4, d5 vtrn.32 d4, d5
@ -261,7 +261,7 @@ T cmp r7, #0
5: vmull.u8 q8, d4, d0 5: vmull.u8 q8, d4, d0
vmull.u8 q9, d6, d0 vmull.u8 q9, d6, d0
subs r3, r3, #2 subs r3, r3, #2
vld1.64 {d4}, [r1], r2 vld1.8 {d4}, [r1], r2
vext.8 d5, d4, d5, #1 vext.8 d5, d4, d5, #1
vtrn.32 d4, d5 vtrn.32 d4, d5
vadd.i16 d16, d16, d17 vadd.i16 d16, d16, d17
@ -273,7 +273,7 @@ T cmp r7, #0
vld1.32 {d20[1]}, [lr,:32], r2 vld1.32 {d20[1]}, [lr,:32], r2
vrhadd.u8 d16, d16, d20 vrhadd.u8 d16, d16, d20
.endif .endif
vld1.64 {d6}, [r1], r2 vld1.8 {d6}, [r1], r2
vext.8 d7, d6, d7, #1 vext.8 d7, d6, d7, #1
vtrn.32 d6, d7 vtrn.32 d6, d7
pld [r1] pld [r1]
@ -363,16 +363,16 @@ endfunc
/* H.264 loop filter */ /* H.264 loop filter */
.macro h264_loop_filter_start .macro h264_loop_filter_start
ldr ip, [sp] ldr r12, [sp]
tst r2, r2 tst r2, r2
ldr ip, [ip] ldr r12, [r12]
it ne it ne
tstne r3, r3 tstne r3, r3
vmov.32 d24[0], ip vmov.32 d24[0], r12
and ip, ip, ip, lsl #16 and r12, r12, r12, lsl #16
it eq it eq
bxeq lr bxeq lr
ands ip, ip, ip, lsl #8 ands r12, r12, r12, lsl #8
it lt it lt
bxlt lr bxlt lr
.endm .endm
@ -448,24 +448,24 @@ endfunc
function ff_h264_v_loop_filter_luma_neon, export=1 function ff_h264_v_loop_filter_luma_neon, export=1
h264_loop_filter_start h264_loop_filter_start
vld1.64 {d0, d1}, [r0,:128], r1 vld1.8 {d0, d1}, [r0,:128], r1
vld1.64 {d2, d3}, [r0,:128], r1 vld1.8 {d2, d3}, [r0,:128], r1
vld1.64 {d4, d5}, [r0,:128], r1 vld1.8 {d4, d5}, [r0,:128], r1
sub r0, r0, r1, lsl #2 sub r0, r0, r1, lsl #2
sub r0, r0, r1, lsl #1 sub r0, r0, r1, lsl #1
vld1.64 {d20,d21}, [r0,:128], r1 vld1.8 {d20,d21}, [r0,:128], r1
vld1.64 {d18,d19}, [r0,:128], r1 vld1.8 {d18,d19}, [r0,:128], r1
vld1.64 {d16,d17}, [r0,:128], r1 vld1.8 {d16,d17}, [r0,:128], r1
vpush {d8-d15} vpush {d8-d15}
h264_loop_filter_luma h264_loop_filter_luma
sub r0, r0, r1, lsl #1 sub r0, r0, r1, lsl #1
vst1.64 {d8, d9}, [r0,:128], r1 vst1.8 {d8, d9}, [r0,:128], r1
vst1.64 {d16,d17}, [r0,:128], r1 vst1.8 {d16,d17}, [r0,:128], r1
vst1.64 {d0, d1}, [r0,:128], r1 vst1.8 {d0, d1}, [r0,:128], r1
vst1.64 {d10,d11}, [r0,:128] vst1.8 {d10,d11}, [r0,:128]
vpop {d8-d15} vpop {d8-d15}
bx lr bx lr
@ -475,22 +475,22 @@ function ff_h264_h_loop_filter_luma_neon, export=1
h264_loop_filter_start h264_loop_filter_start
sub r0, r0, #4 sub r0, r0, #4
vld1.64 {d6}, [r0], r1 vld1.8 {d6}, [r0], r1
vld1.64 {d20}, [r0], r1 vld1.8 {d20}, [r0], r1
vld1.64 {d18}, [r0], r1 vld1.8 {d18}, [r0], r1
vld1.64 {d16}, [r0], r1 vld1.8 {d16}, [r0], r1
vld1.64 {d0}, [r0], r1 vld1.8 {d0}, [r0], r1
vld1.64 {d2}, [r0], r1 vld1.8 {d2}, [r0], r1
vld1.64 {d4}, [r0], r1 vld1.8 {d4}, [r0], r1
vld1.64 {d26}, [r0], r1 vld1.8 {d26}, [r0], r1
vld1.64 {d7}, [r0], r1 vld1.8 {d7}, [r0], r1
vld1.64 {d21}, [r0], r1 vld1.8 {d21}, [r0], r1
vld1.64 {d19}, [r0], r1 vld1.8 {d19}, [r0], r1
vld1.64 {d17}, [r0], r1 vld1.8 {d17}, [r0], r1
vld1.64 {d1}, [r0], r1 vld1.8 {d1}, [r0], r1
vld1.64 {d3}, [r0], r1 vld1.8 {d3}, [r0], r1
vld1.64 {d5}, [r0], r1 vld1.8 {d5}, [r0], r1
vld1.64 {d27}, [r0], r1 vld1.8 {d27}, [r0], r1
transpose_8x8 q3, q10, q9, q8, q0, q1, q2, q13 transpose_8x8 q3, q10, q9, q8, q0, q1, q2, q13
@ -558,16 +558,16 @@ function ff_h264_v_loop_filter_chroma_neon, export=1
h264_loop_filter_start h264_loop_filter_start
sub r0, r0, r1, lsl #1 sub r0, r0, r1, lsl #1
vld1.64 {d18}, [r0,:64], r1 vld1.8 {d18}, [r0,:64], r1
vld1.64 {d16}, [r0,:64], r1 vld1.8 {d16}, [r0,:64], r1
vld1.64 {d0}, [r0,:64], r1 vld1.8 {d0}, [r0,:64], r1
vld1.64 {d2}, [r0,:64] vld1.8 {d2}, [r0,:64]
h264_loop_filter_chroma h264_loop_filter_chroma
sub r0, r0, r1, lsl #1 sub r0, r0, r1, lsl #1
vst1.64 {d16}, [r0,:64], r1 vst1.8 {d16}, [r0,:64], r1
vst1.64 {d0}, [r0,:64], r1 vst1.8 {d0}, [r0,:64], r1
bx lr bx lr
endfunc endfunc
@ -715,12 +715,12 @@ endfunc
function put_h264_qpel16_h_lowpass_neon_packed function put_h264_qpel16_h_lowpass_neon_packed
mov r4, lr mov r4, lr
mov ip, #16 mov r12, #16
mov r3, #8 mov r3, #8
bl put_h264_qpel8_h_lowpass_neon bl put_h264_qpel8_h_lowpass_neon
sub r1, r1, r2, lsl #4 sub r1, r1, r2, lsl #4
add r1, r1, #8 add r1, r1, #8
mov ip, #16 mov r12, #16
mov lr, r4 mov lr, r4
b put_h264_qpel8_h_lowpass_neon b put_h264_qpel8_h_lowpass_neon
endfunc endfunc
@ -728,20 +728,20 @@ endfunc
.macro h264_qpel_h_lowpass type .macro h264_qpel_h_lowpass type
function \type\()_h264_qpel16_h_lowpass_neon function \type\()_h264_qpel16_h_lowpass_neon
push {lr} push {lr}
mov ip, #16 mov r12, #16
bl \type\()_h264_qpel8_h_lowpass_neon bl \type\()_h264_qpel8_h_lowpass_neon
sub r0, r0, r3, lsl #4 sub r0, r0, r3, lsl #4
sub r1, r1, r2, lsl #4 sub r1, r1, r2, lsl #4
add r0, r0, #8 add r0, r0, #8
add r1, r1, #8 add r1, r1, #8
mov ip, #16 mov r12, #16
pop {lr} pop {lr}
endfunc endfunc
function \type\()_h264_qpel8_h_lowpass_neon function \type\()_h264_qpel8_h_lowpass_neon
1: vld1.64 {d0, d1}, [r1], r2 1: vld1.8 {d0, d1}, [r1], r2
vld1.64 {d16,d17}, [r1], r2 vld1.8 {d16,d17}, [r1], r2
subs ip, ip, #2 subs r12, r12, #2
lowpass_8 d0, d1, d16, d17, d0, d16 lowpass_8 d0, d1, d16, d17, d0, d16
.ifc \type,avg .ifc \type,avg
vld1.8 {d2}, [r0,:64], r3 vld1.8 {d2}, [r0,:64], r3
@ -750,8 +750,8 @@ function \type\()_h264_qpel8_h_lowpass_neon
vrhadd.u8 d16, d16, d3 vrhadd.u8 d16, d16, d3
sub r0, r0, r3 sub r0, r0, r3
.endif .endif
vst1.64 {d0}, [r0,:64], r3 vst1.8 {d0}, [r0,:64], r3
vst1.64 {d16}, [r0,:64], r3 vst1.8 {d16}, [r0,:64], r3
bne 1b bne 1b
bx lr bx lr
endfunc endfunc
@ -763,7 +763,7 @@ endfunc
.macro h264_qpel_h_lowpass_l2 type .macro h264_qpel_h_lowpass_l2 type
function \type\()_h264_qpel16_h_lowpass_l2_neon function \type\()_h264_qpel16_h_lowpass_l2_neon
push {lr} push {lr}
mov ip, #16 mov r12, #16
bl \type\()_h264_qpel8_h_lowpass_l2_neon bl \type\()_h264_qpel8_h_lowpass_l2_neon
sub r0, r0, r2, lsl #4 sub r0, r0, r2, lsl #4
sub r1, r1, r2, lsl #4 sub r1, r1, r2, lsl #4
@ -771,16 +771,16 @@ function \type\()_h264_qpel16_h_lowpass_l2_neon
add r0, r0, #8 add r0, r0, #8
add r1, r1, #8 add r1, r1, #8
add r3, r3, #8 add r3, r3, #8
mov ip, #16 mov r12, #16
pop {lr} pop {lr}
endfunc endfunc
function \type\()_h264_qpel8_h_lowpass_l2_neon function \type\()_h264_qpel8_h_lowpass_l2_neon
1: vld1.64 {d0, d1}, [r1], r2 1: vld1.8 {d0, d1}, [r1], r2
vld1.64 {d16,d17}, [r1], r2 vld1.8 {d16,d17}, [r1], r2
vld1.64 {d28}, [r3], r2 vld1.8 {d28}, [r3], r2
vld1.64 {d29}, [r3], r2 vld1.8 {d29}, [r3], r2
subs ip, ip, #2 subs r12, r12, #2
lowpass_8 d0, d1, d16, d17, d0, d1 lowpass_8 d0, d1, d16, d17, d0, d1
vrhadd.u8 q0, q0, q14 vrhadd.u8 q0, q0, q14
.ifc \type,avg .ifc \type,avg
@ -790,8 +790,8 @@ function \type\()_h264_qpel8_h_lowpass_l2_neon
vrhadd.u8 d1, d1, d3 vrhadd.u8 d1, d1, d3
sub r0, r0, r2 sub r0, r0, r2
.endif .endif
vst1.64 {d0}, [r0,:64], r2 vst1.8 {d0}, [r0,:64], r2
vst1.64 {d1}, [r0,:64], r2 vst1.8 {d1}, [r0,:64], r2
bne 1b bne 1b
bx lr bx lr
endfunc endfunc
@ -832,19 +832,19 @@ function \type\()_h264_qpel16_v_lowpass_neon
endfunc endfunc
function \type\()_h264_qpel8_v_lowpass_neon function \type\()_h264_qpel8_v_lowpass_neon
vld1.64 {d8}, [r1], r3 vld1.8 {d8}, [r1], r3
vld1.64 {d10}, [r1], r3 vld1.8 {d10}, [r1], r3
vld1.64 {d12}, [r1], r3 vld1.8 {d12}, [r1], r3
vld1.64 {d14}, [r1], r3 vld1.8 {d14}, [r1], r3
vld1.64 {d22}, [r1], r3 vld1.8 {d22}, [r1], r3
vld1.64 {d24}, [r1], r3 vld1.8 {d24}, [r1], r3
vld1.64 {d26}, [r1], r3 vld1.8 {d26}, [r1], r3
vld1.64 {d28}, [r1], r3 vld1.8 {d28}, [r1], r3
vld1.64 {d9}, [r1], r3 vld1.8 {d9}, [r1], r3
vld1.64 {d11}, [r1], r3 vld1.8 {d11}, [r1], r3
vld1.64 {d13}, [r1], r3 vld1.8 {d13}, [r1], r3
vld1.64 {d15}, [r1], r3 vld1.8 {d15}, [r1], r3
vld1.64 {d23}, [r1] vld1.8 {d23}, [r1]
transpose_8x8 q4, q5, q6, q7, q11, q12, q13, q14 transpose_8x8 q4, q5, q6, q7, q11, q12, q13, q14
lowpass_8 d8, d9, d10, d11, d8, d10 lowpass_8 d8, d9, d10, d11, d8, d10
@ -873,14 +873,14 @@ function \type\()_h264_qpel8_v_lowpass_neon
sub r0, r0, r2, lsl #3 sub r0, r0, r2, lsl #3
.endif .endif
vst1.64 {d8}, [r0,:64], r2 vst1.8 {d8}, [r0,:64], r2
vst1.64 {d10}, [r0,:64], r2 vst1.8 {d10}, [r0,:64], r2
vst1.64 {d12}, [r0,:64], r2 vst1.8 {d12}, [r0,:64], r2
vst1.64 {d14}, [r0,:64], r2 vst1.8 {d14}, [r0,:64], r2
vst1.64 {d22}, [r0,:64], r2 vst1.8 {d22}, [r0,:64], r2
vst1.64 {d24}, [r0,:64], r2 vst1.8 {d24}, [r0,:64], r2
vst1.64 {d26}, [r0,:64], r2 vst1.8 {d26}, [r0,:64], r2
vst1.64 {d28}, [r0,:64], r2 vst1.8 {d28}, [r0,:64], r2
bx lr bx lr
endfunc endfunc
@ -896,9 +896,9 @@ function \type\()_h264_qpel16_v_lowpass_l2_neon
sub r1, r1, r3, lsl #2 sub r1, r1, r3, lsl #2
bl \type\()_h264_qpel8_v_lowpass_l2_neon bl \type\()_h264_qpel8_v_lowpass_l2_neon
sub r0, r0, r3, lsl #4 sub r0, r0, r3, lsl #4
sub ip, ip, r2, lsl #4 sub r12, r12, r2, lsl #4
add r0, r0, #8 add r0, r0, #8
add ip, ip, #8 add r12, r12, #8
sub r1, r1, r3, lsl #4 sub r1, r1, r3, lsl #4
sub r1, r1, r3, lsl #2 sub r1, r1, r3, lsl #2
add r1, r1, #8 add r1, r1, #8
@ -908,19 +908,19 @@ function \type\()_h264_qpel16_v_lowpass_l2_neon
endfunc endfunc
function \type\()_h264_qpel8_v_lowpass_l2_neon function \type\()_h264_qpel8_v_lowpass_l2_neon
vld1.64 {d8}, [r1], r3 vld1.8 {d8}, [r1], r3
vld1.64 {d10}, [r1], r3 vld1.8 {d10}, [r1], r3
vld1.64 {d12}, [r1], r3 vld1.8 {d12}, [r1], r3
vld1.64 {d14}, [r1], r3 vld1.8 {d14}, [r1], r3
vld1.64 {d22}, [r1], r3 vld1.8 {d22}, [r1], r3
vld1.64 {d24}, [r1], r3 vld1.8 {d24}, [r1], r3
vld1.64 {d26}, [r1], r3 vld1.8 {d26}, [r1], r3
vld1.64 {d28}, [r1], r3 vld1.8 {d28}, [r1], r3
vld1.64 {d9}, [r1], r3 vld1.8 {d9}, [r1], r3
vld1.64 {d11}, [r1], r3 vld1.8 {d11}, [r1], r3
vld1.64 {d13}, [r1], r3 vld1.8 {d13}, [r1], r3
vld1.64 {d15}, [r1], r3 vld1.8 {d15}, [r1], r3
vld1.64 {d23}, [r1] vld1.8 {d23}, [r1]
transpose_8x8 q4, q5, q6, q7, q11, q12, q13, q14 transpose_8x8 q4, q5, q6, q7, q11, q12, q13, q14
lowpass_8 d8, d9, d10, d11, d8, d9 lowpass_8 d8, d9, d10, d11, d8, d9
@ -929,17 +929,17 @@ function \type\()_h264_qpel8_v_lowpass_l2_neon
lowpass_8 d26, d27, d28, d29, d26, d27 lowpass_8 d26, d27, d28, d29, d26, d27
transpose_8x8 d8, d9, d12, d13, d22, d23, d26, d27 transpose_8x8 d8, d9, d12, d13, d22, d23, d26, d27
vld1.64 {d0}, [ip], r2 vld1.8 {d0}, [r12], r2
vld1.64 {d1}, [ip], r2 vld1.8 {d1}, [r12], r2
vld1.64 {d2}, [ip], r2 vld1.8 {d2}, [r12], r2
vld1.64 {d3}, [ip], r2 vld1.8 {d3}, [r12], r2
vld1.64 {d4}, [ip], r2 vld1.8 {d4}, [r12], r2
vrhadd.u8 q0, q0, q4 vrhadd.u8 q0, q0, q4
vld1.64 {d5}, [ip], r2 vld1.8 {d5}, [r12], r2
vrhadd.u8 q1, q1, q6 vrhadd.u8 q1, q1, q6
vld1.64 {d10}, [ip], r2 vld1.8 {d10}, [r12], r2
vrhadd.u8 q2, q2, q11 vrhadd.u8 q2, q2, q11
vld1.64 {d11}, [ip], r2 vld1.8 {d11}, [r12], r2
vrhadd.u8 q5, q5, q13 vrhadd.u8 q5, q5, q13
.ifc \type,avg .ifc \type,avg
@ -962,14 +962,14 @@ function \type\()_h264_qpel8_v_lowpass_l2_neon
sub r0, r0, r3, lsl #3 sub r0, r0, r3, lsl #3
.endif .endif
vst1.64 {d0}, [r0,:64], r3 vst1.8 {d0}, [r0,:64], r3
vst1.64 {d1}, [r0,:64], r3 vst1.8 {d1}, [r0,:64], r3
vst1.64 {d2}, [r0,:64], r3 vst1.8 {d2}, [r0,:64], r3
vst1.64 {d3}, [r0,:64], r3 vst1.8 {d3}, [r0,:64], r3
vst1.64 {d4}, [r0,:64], r3 vst1.8 {d4}, [r0,:64], r3
vst1.64 {d5}, [r0,:64], r3 vst1.8 {d5}, [r0,:64], r3
vst1.64 {d10}, [r0,:64], r3 vst1.8 {d10}, [r0,:64], r3
vst1.64 {d11}, [r0,:64], r3 vst1.8 {d11}, [r0,:64], r3
bx lr bx lr
endfunc endfunc
@ -979,32 +979,32 @@ endfunc
h264_qpel_v_lowpass_l2 avg h264_qpel_v_lowpass_l2 avg
function put_h264_qpel8_hv_lowpass_neon_top function put_h264_qpel8_hv_lowpass_neon_top
lowpass_const ip lowpass_const r12
mov ip, #12 mov r12, #12
1: vld1.64 {d0, d1}, [r1], r3 1: vld1.8 {d0, d1}, [r1], r3
vld1.64 {d16,d17}, [r1], r3 vld1.8 {d16,d17}, [r1], r3
subs ip, ip, #2 subs r12, r12, #2
lowpass_8 d0, d1, d16, d17, q11, q12, narrow=0 lowpass_8 d0, d1, d16, d17, q11, q12, narrow=0
vst1.64 {d22-d25}, [r4,:128]! vst1.8 {d22-d25}, [r4,:128]!
bne 1b bne 1b
vld1.64 {d0, d1}, [r1] vld1.8 {d0, d1}, [r1]
lowpass_8_1 d0, d1, q12, narrow=0 lowpass_8_1 d0, d1, q12, narrow=0
mov ip, #-16 mov r12, #-16
add r4, r4, ip add r4, r4, r12
vld1.64 {d30,d31}, [r4,:128], ip vld1.8 {d30,d31}, [r4,:128], r12
vld1.64 {d20,d21}, [r4,:128], ip vld1.8 {d20,d21}, [r4,:128], r12
vld1.64 {d18,d19}, [r4,:128], ip vld1.8 {d18,d19}, [r4,:128], r12
vld1.64 {d16,d17}, [r4,:128], ip vld1.8 {d16,d17}, [r4,:128], r12
vld1.64 {d14,d15}, [r4,:128], ip vld1.8 {d14,d15}, [r4,:128], r12
vld1.64 {d12,d13}, [r4,:128], ip vld1.8 {d12,d13}, [r4,:128], r12
vld1.64 {d10,d11}, [r4,:128], ip vld1.8 {d10,d11}, [r4,:128], r12
vld1.64 {d8, d9}, [r4,:128], ip vld1.8 {d8, d9}, [r4,:128], r12
vld1.64 {d6, d7}, [r4,:128], ip vld1.8 {d6, d7}, [r4,:128], r12
vld1.64 {d4, d5}, [r4,:128], ip vld1.8 {d4, d5}, [r4,:128], r12
vld1.64 {d2, d3}, [r4,:128], ip vld1.8 {d2, d3}, [r4,:128], r12
vld1.64 {d0, d1}, [r4,:128] vld1.8 {d0, d1}, [r4,:128]
swap4 d1, d3, d5, d7, d8, d10, d12, d14 swap4 d1, d3, d5, d7, d8, d10, d12, d14
transpose16_4x4 q0, q1, q2, q3, q4, q5, q6, q7 transpose16_4x4 q0, q1, q2, q3, q4, q5, q6, q7
@ -1012,31 +1012,31 @@ function put_h264_qpel8_hv_lowpass_neon_top
swap4 d17, d19, d21, d31, d24, d26, d28, d22 swap4 d17, d19, d21, d31, d24, d26, d28, d22
transpose16_4x4 q8, q9, q10, q15, q12, q13, q14, q11 transpose16_4x4 q8, q9, q10, q15, q12, q13, q14, q11
vst1.64 {d30,d31}, [r4,:128]! vst1.8 {d30,d31}, [r4,:128]!
vst1.64 {d6, d7}, [r4,:128]! vst1.8 {d6, d7}, [r4,:128]!
vst1.64 {d20,d21}, [r4,:128]! vst1.8 {d20,d21}, [r4,:128]!
vst1.64 {d4, d5}, [r4,:128]! vst1.8 {d4, d5}, [r4,:128]!
vst1.64 {d18,d19}, [r4,:128]! vst1.8 {d18,d19}, [r4,:128]!
vst1.64 {d2, d3}, [r4,:128]! vst1.8 {d2, d3}, [r4,:128]!
vst1.64 {d16,d17}, [r4,:128]! vst1.8 {d16,d17}, [r4,:128]!
vst1.64 {d0, d1}, [r4,:128] vst1.8 {d0, d1}, [r4,:128]
lowpass_8.16 q4, q12, d8, d9, d24, d25, d8 lowpass_8.16 q4, q12, d8, d9, d24, d25, d8
lowpass_8.16 q5, q13, d10, d11, d26, d27, d9 lowpass_8.16 q5, q13, d10, d11, d26, d27, d9
lowpass_8.16 q6, q14, d12, d13, d28, d29, d10 lowpass_8.16 q6, q14, d12, d13, d28, d29, d10
lowpass_8.16 q7, q11, d14, d15, d22, d23, d11 lowpass_8.16 q7, q11, d14, d15, d22, d23, d11
vld1.64 {d16,d17}, [r4,:128], ip vld1.8 {d16,d17}, [r4,:128], r12
vld1.64 {d30,d31}, [r4,:128], ip vld1.8 {d30,d31}, [r4,:128], r12
lowpass_8.16 q8, q15, d16, d17, d30, d31, d12 lowpass_8.16 q8, q15, d16, d17, d30, d31, d12
vld1.64 {d16,d17}, [r4,:128], ip vld1.8 {d16,d17}, [r4,:128], r12
vld1.64 {d30,d31}, [r4,:128], ip vld1.8 {d30,d31}, [r4,:128], r12
lowpass_8.16 q8, q15, d16, d17, d30, d31, d13 lowpass_8.16 q8, q15, d16, d17, d30, d31, d13
vld1.64 {d16,d17}, [r4,:128], ip vld1.8 {d16,d17}, [r4,:128], r12
vld1.64 {d30,d31}, [r4,:128], ip vld1.8 {d30,d31}, [r4,:128], r12
lowpass_8.16 q8, q15, d16, d17, d30, d31, d14 lowpass_8.16 q8, q15, d16, d17, d30, d31, d14
vld1.64 {d16,d17}, [r4,:128], ip vld1.8 {d16,d17}, [r4,:128], r12
vld1.64 {d30,d31}, [r4,:128] vld1.8 {d30,d31}, [r4,:128]
lowpass_8.16 q8, q15, d16, d17, d30, d31, d15 lowpass_8.16 q8, q15, d16, d17, d30, d31, d15
transpose_8x8 d12, d13, d14, d15, d8, d9, d10, d11 transpose_8x8 d12, d13, d14, d15, d8, d9, d10, d11
@ -1068,14 +1068,14 @@ function \type\()_h264_qpel8_hv_lowpass_neon
sub r0, r0, r2, lsl #3 sub r0, r0, r2, lsl #3
.endif .endif
vst1.64 {d12}, [r0,:64], r2 vst1.8 {d12}, [r0,:64], r2
vst1.64 {d13}, [r0,:64], r2 vst1.8 {d13}, [r0,:64], r2
vst1.64 {d14}, [r0,:64], r2 vst1.8 {d14}, [r0,:64], r2
vst1.64 {d15}, [r0,:64], r2 vst1.8 {d15}, [r0,:64], r2
vst1.64 {d8}, [r0,:64], r2 vst1.8 {d8}, [r0,:64], r2
vst1.64 {d9}, [r0,:64], r2 vst1.8 {d9}, [r0,:64], r2
vst1.64 {d10}, [r0,:64], r2 vst1.8 {d10}, [r0,:64], r2
vst1.64 {d11}, [r0,:64], r2 vst1.8 {d11}, [r0,:64], r2
mov lr, r10 mov lr, r10
bx lr bx lr
@ -1090,12 +1090,12 @@ function \type\()_h264_qpel8_hv_lowpass_l2_neon
mov r10, lr mov r10, lr
bl put_h264_qpel8_hv_lowpass_neon_top bl put_h264_qpel8_hv_lowpass_neon_top
vld1.64 {d0, d1}, [r2,:128]! vld1.8 {d0, d1}, [r2,:128]!
vld1.64 {d2, d3}, [r2,:128]! vld1.8 {d2, d3}, [r2,:128]!
vrhadd.u8 q0, q0, q6 vrhadd.u8 q0, q0, q6
vld1.64 {d4, d5}, [r2,:128]! vld1.8 {d4, d5}, [r2,:128]!
vrhadd.u8 q1, q1, q7 vrhadd.u8 q1, q1, q7
vld1.64 {d6, d7}, [r2,:128]! vld1.8 {d6, d7}, [r2,:128]!
vrhadd.u8 q2, q2, q4 vrhadd.u8 q2, q2, q4
vrhadd.u8 q3, q3, q5 vrhadd.u8 q3, q3, q5
.ifc \type,avg .ifc \type,avg
@ -1117,14 +1117,14 @@ function \type\()_h264_qpel8_hv_lowpass_l2_neon
vrhadd.u8 d7, d7, d23 vrhadd.u8 d7, d7, d23
sub r0, r0, r3, lsl #3 sub r0, r0, r3, lsl #3
.endif .endif
vst1.64 {d0}, [r0,:64], r3 vst1.8 {d0}, [r0,:64], r3
vst1.64 {d1}, [r0,:64], r3 vst1.8 {d1}, [r0,:64], r3
vst1.64 {d2}, [r0,:64], r3 vst1.8 {d2}, [r0,:64], r3
vst1.64 {d3}, [r0,:64], r3 vst1.8 {d3}, [r0,:64], r3
vst1.64 {d4}, [r0,:64], r3 vst1.8 {d4}, [r0,:64], r3
vst1.64 {d5}, [r0,:64], r3 vst1.8 {d5}, [r0,:64], r3
vst1.64 {d6}, [r0,:64], r3 vst1.8 {d6}, [r0,:64], r3
vst1.64 {d7}, [r0,:64], r3 vst1.8 {d7}, [r0,:64], r3
mov lr, r10 mov lr, r10
bx lr bx lr
@ -1177,7 +1177,7 @@ function ff_\type\()_h264_qpel8_mc10_neon, export=1
lowpass_const r3 lowpass_const r3
mov r3, r1 mov r3, r1
sub r1, r1, #2 sub r1, r1, #2
mov ip, #8 mov r12, #8
b \type\()_h264_qpel8_h_lowpass_l2_neon b \type\()_h264_qpel8_h_lowpass_l2_neon
endfunc endfunc
@ -1185,7 +1185,7 @@ function ff_\type\()_h264_qpel8_mc20_neon, export=1
lowpass_const r3 lowpass_const r3
sub r1, r1, #2 sub r1, r1, #2
mov r3, r2 mov r3, r2
mov ip, #8 mov r12, #8
b \type\()_h264_qpel8_h_lowpass_neon b \type\()_h264_qpel8_h_lowpass_neon
endfunc endfunc
@ -1193,13 +1193,13 @@ function ff_\type\()_h264_qpel8_mc30_neon, export=1
lowpass_const r3 lowpass_const r3
add r3, r1, #1 add r3, r1, #1
sub r1, r1, #2 sub r1, r1, #2
mov ip, #8 mov r12, #8
b \type\()_h264_qpel8_h_lowpass_l2_neon b \type\()_h264_qpel8_h_lowpass_l2_neon
endfunc endfunc
function ff_\type\()_h264_qpel8_mc01_neon, export=1 function ff_\type\()_h264_qpel8_mc01_neon, export=1
push {lr} push {lr}
mov ip, r1 mov r12, r1
\type\()_h264_qpel8_mc01: \type\()_h264_qpel8_mc01:
lowpass_const r3 lowpass_const r3
mov r3, r2 mov r3, r2
@ -1222,12 +1222,12 @@ T mov sp, r0
mov r0, sp mov r0, sp
sub r1, r1, #2 sub r1, r1, #2
mov r3, #8 mov r3, #8
mov ip, #8 mov r12, #8
vpush {d8-d15} vpush {d8-d15}
bl put_h264_qpel8_h_lowpass_neon bl put_h264_qpel8_h_lowpass_neon
ldrd r0, [r11], #8 ldrd r0, [r11], #8
mov r3, r2 mov r3, r2
add ip, sp, #64 add r12, sp, #64
sub r1, r1, r2, lsl #1 sub r1, r1, r2, lsl #1
mov r2, #8 mov r2, #8
bl \type\()_h264_qpel8_v_lowpass_l2_neon bl \type\()_h264_qpel8_v_lowpass_l2_neon
@ -1248,7 +1248,7 @@ T mov sp, r0
sub r1, r1, #2 sub r1, r1, #2
mov r3, #8 mov r3, #8
mov r0, sp mov r0, sp
mov ip, #8 mov r12, #8
vpush {d8-d15} vpush {d8-d15}
bl put_h264_qpel8_h_lowpass_neon bl put_h264_qpel8_h_lowpass_neon
mov r4, r0 mov r4, r0
@ -1333,7 +1333,7 @@ endfunc
function ff_\type\()_h264_qpel8_mc03_neon, export=1 function ff_\type\()_h264_qpel8_mc03_neon, export=1
push {lr} push {lr}
add ip, r1, r2 add r12, r1, r2
b \type\()_h264_qpel8_mc01 b \type\()_h264_qpel8_mc01
endfunc endfunc
@ -1385,7 +1385,7 @@ endfunc
function ff_\type\()_h264_qpel16_mc01_neon, export=1 function ff_\type\()_h264_qpel16_mc01_neon, export=1
push {r4, lr} push {r4, lr}
mov ip, r1 mov r12, r1
\type\()_h264_qpel16_mc01: \type\()_h264_qpel16_mc01:
lowpass_const r3 lowpass_const r3
mov r3, r2 mov r3, r2
@ -1412,7 +1412,7 @@ T mov sp, r0
bl put_h264_qpel16_h_lowpass_neon bl put_h264_qpel16_h_lowpass_neon
ldrd r0, [r11], #8 ldrd r0, [r11], #8
mov r3, r2 mov r3, r2
add ip, sp, #64 add r12, sp, #64
sub r1, r1, r2, lsl #1 sub r1, r1, r2, lsl #1
mov r2, #16 mov r2, #16
bl \type\()_h264_qpel16_v_lowpass_l2_neon bl \type\()_h264_qpel16_v_lowpass_l2_neon
@ -1515,7 +1515,7 @@ endfunc
function ff_\type\()_h264_qpel16_mc03_neon, export=1 function ff_\type\()_h264_qpel16_mc03_neon, export=1
push {r4, lr} push {r4, lr}
add ip, r1, r2 add r12, r1, r2
b \type\()_h264_qpel16_mc01 b \type\()_h264_qpel16_mc01
endfunc endfunc