[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