mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
arm/aarch64: vp9itxfm: Skip loading the min_eob pointer when it won't be used
In the half/quarter cases where we don't use the min_eob array, defer
loading the pointer until we know it will be needed.
This is cherrypicked from libav commit
3a0d5e206d
.
Signed-off-by: Martin Storsjö <martin@martin.st>
This commit is contained in:
parent
b7a565fe71
commit
70317b25aa
@ -1483,7 +1483,6 @@ function ff_vp9_idct_idct_32x32_add_neon, export=1
|
|||||||
b.eq idct32x32_dc_add_neon
|
b.eq idct32x32_dc_add_neon
|
||||||
|
|
||||||
movrel x10, idct_coeffs
|
movrel x10, idct_coeffs
|
||||||
movrel x12, min_eob_idct_idct_32, 2
|
|
||||||
|
|
||||||
mov x15, x30
|
mov x15, x30
|
||||||
|
|
||||||
@ -1508,6 +1507,8 @@ function ff_vp9_idct_idct_32x32_add_neon, export=1
|
|||||||
cmp w3, #135
|
cmp w3, #135
|
||||||
b.le idct32x32_half_add_neon
|
b.le idct32x32_half_add_neon
|
||||||
|
|
||||||
|
movrel x12, min_eob_idct_idct_32, 2
|
||||||
|
|
||||||
.irp i, 0, 8, 16, 24
|
.irp i, 0, 8, 16, 24
|
||||||
add x0, sp, #(\i*64)
|
add x0, sp, #(\i*64)
|
||||||
.if \i > 0
|
.if \i > 0
|
||||||
|
@ -889,8 +889,6 @@ function ff_vp9_\txfm1\()_\txfm2\()_16x16_add_neon, export=1
|
|||||||
push {r4-r8,lr}
|
push {r4-r8,lr}
|
||||||
.ifnc \txfm1\()_\txfm2,idct_idct
|
.ifnc \txfm1\()_\txfm2,idct_idct
|
||||||
vpush {q4-q7}
|
vpush {q4-q7}
|
||||||
.else
|
|
||||||
movrel r8, min_eob_idct_idct_16 + 2
|
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
@ Align the stack, allocate a temp buffer
|
@ Align the stack, allocate a temp buffer
|
||||||
@ -914,6 +912,8 @@ A and r7, sp, #15
|
|||||||
ble idct16x16_quarter_add_neon
|
ble idct16x16_quarter_add_neon
|
||||||
cmp r3, #38
|
cmp r3, #38
|
||||||
ble idct16x16_half_add_neon
|
ble idct16x16_half_add_neon
|
||||||
|
|
||||||
|
movrel r8, min_eob_idct_idct_16 + 2
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
.irp i, 0, 4, 8, 12
|
.irp i, 0, 4, 8, 12
|
||||||
|
Loading…
Reference in New Issue
Block a user