[FFmpeg-cvslog] lavc/vp8dsp: save one R-V GPR
Rémi Denis-Courmont
git at videolan.org
Tue May 28 19:46:23 EEST 2024
ffmpeg | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Sat May 25 16:43:17 2024 +0300| [a11122f9c63bdb66e3f8bc7e2cd380cdc9c9a51c] | committer: Rémi Denis-Courmont
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.
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a11122f9c63bdb66e3f8bc7e2cd380cdc9c9a51c
---
libavcodec/riscv/vp8dsp_rvv.S | 23 ++++++++++++++++-------
1 file changed, 16 insertions(+), 7 deletions(-)
diff --git a/libavcodec/riscv/vp8dsp_rvv.S b/libavcodec/riscv/vp8dsp_rvv.S
index dc48197cf1..3b2d8600d6 100644
--- a/libavcodec/riscv/vp8dsp_rvv.S
+++ b/libavcodec/riscv/vp8dsp_rvv.S
@@ -201,24 +201,33 @@ endconst
.macro epel_load dst len size type from_mem regtype
.ifc \type,v
- mv a5, a3
+ sub t6, a2, a3
+ add a7, a2, a3
.else
- li a5, 1
+ addi t6, a2, -1
+ addi a7, a2, 1
.endif
- sub t6, a2, a5
- add a7, a2, a5
.if \from_mem
vle8.v v24, (a2)
vle8.v v22, (t6)
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)
vwmulu.vx v16, v24, \regtype\()2
vwmulu.vx v20, v26, \regtype\()3
.ifc \size,6
- sub t6, t6, a5
- add a7, a7, a5
+.ifc \type,v
+ sub t6, t6, a3
+ add a7, a7, a3
+.else
+ addi t6, t6, -1
+ addi a7, a7, 1
+.endif
vle8.v v24, (t6)
vle8.v v26, (a7)
vwmaccu.vx v16, \regtype\()0, v24
More information about the ffmpeg-cvslog
mailing list