mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-12-13 10:30:05 +01:00
lavc/vp8dsp: save one R-V GPR
This saves one instruction and frees up A5, which will be repurposed in later changes. Unfortunately, we need to add quite a lot of alternative code for this.
This commit is contained in:
@@ -201,24 +201,33 @@ endconst
|
|||||||
|
|
||||||
.macro epel_load dst len size type from_mem regtype
|
.macro epel_load dst len size type from_mem regtype
|
||||||
.ifc \type,v
|
.ifc \type,v
|
||||||
mv a5, a3
|
sub t6, a2, a3
|
||||||
|
add a7, a2, a3
|
||||||
.else
|
.else
|
||||||
li a5, 1
|
addi t6, a2, -1
|
||||||
|
addi a7, a2, 1
|
||||||
.endif
|
.endif
|
||||||
sub t6, a2, a5
|
|
||||||
add a7, a2, a5
|
|
||||||
|
|
||||||
.if \from_mem
|
.if \from_mem
|
||||||
vle8.v v24, (a2)
|
vle8.v v24, (a2)
|
||||||
vle8.v v22, (t6)
|
vle8.v v22, (t6)
|
||||||
vle8.v v26, (a7)
|
vle8.v v26, (a7)
|
||||||
add a7, a7, a5
|
.ifc \type,v
|
||||||
|
add a7, a7, a3
|
||||||
|
.else
|
||||||
|
addi a7, a7, 1
|
||||||
|
.endif
|
||||||
vle8.v v28, (a7)
|
vle8.v v28, (a7)
|
||||||
vwmulu.vx v16, v24, \regtype\()2
|
vwmulu.vx v16, v24, \regtype\()2
|
||||||
vwmulu.vx v20, v26, \regtype\()3
|
vwmulu.vx v20, v26, \regtype\()3
|
||||||
.ifc \size,6
|
.ifc \size,6
|
||||||
sub t6, t6, a5
|
.ifc \type,v
|
||||||
add a7, a7, a5
|
sub t6, t6, a3
|
||||||
|
add a7, a7, a3
|
||||||
|
.else
|
||||||
|
addi t6, t6, -1
|
||||||
|
addi a7, a7, 1
|
||||||
|
.endif
|
||||||
vle8.v v24, (t6)
|
vle8.v v24, (t6)
|
||||||
vle8.v v26, (a7)
|
vle8.v v26, (a7)
|
||||||
vwmaccu.vx v16, \regtype\()0, v24
|
vwmaccu.vx v16, \regtype\()0, v24
|
||||||
|
|||||||
Reference in New Issue
Block a user