[FFmpeg-cvslog] lavc/vp8dsp: fix RV32 stack alignment

Rémi Denis-Courmont git at videolan.org
Wed Jul 24 22:09:41 EEST 2024


ffmpeg | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Tue Jul 23 18:47:08 2024 +0300| [896c22ef000b5d122f14c9f85b364e2d21e1f45c] | committer: Rémi Denis-Courmont

lavc/vp8dsp: fix RV32 stack alignment

SP must be a multiple of 16 bytes at all times on POSIX - even in leaf
functions - so that signal handlers have a properly aligned stack.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=896c22ef000b5d122f14c9f85b364e2d21e1f45c
---

 libavcodec/riscv/vp8dsp_rvv.S | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/libavcodec/riscv/vp8dsp_rvv.S b/libavcodec/riscv/vp8dsp_rvv.S
index d366748a0a..7e062d9f13 100644
--- a/libavcodec/riscv/vp8dsp_rvv.S
+++ b/libavcodec/riscv/vp8dsp_rvv.S
@@ -457,14 +457,14 @@ endfunc
 .macro epel_hv len hsize vsize
 func ff_put_vp8_epel\len\()_h\hsize\()v\vsize\()_rvv, zve32x
 #if __riscv_xlen == 64
-        addi            sp, sp, -48
+        addi    sp, sp, -48
         .irp n,0,1,2,3,4,5
-        sd              s\n, \n\()<<3(sp)
+        sd      s\n, (\n * 8)(sp)
         .endr
 #else
-        addi            sp, sp, -24
+        addi    sp, sp, -32
         .irp n,0,1,2,3,4,5
-        sw              s\n, \n\()<<2(sp)
+        sw      s\n, (\n * 4)(sp)
         .endr
 #endif
         sub             a2, a2, a3
@@ -506,14 +506,14 @@ func ff_put_vp8_epel\len\()_h\hsize\()v\vsize\()_rvv, zve32x
 
 #if __riscv_xlen == 64
         .irp n,0,1,2,3,4,5
-        ld              s\n, \n\()<<3(sp)
+        ld      s\n, (\n * 8)(sp)
         .endr
-        addi            sp, sp, 48
+        addi    sp, sp, 48
 #else
         .irp n,0,1,2,3,4,5
-        lw              s\n, \n\()<<2(sp)
+        lw      s\n, (\n * 4)(sp)
         .endr
-        addi            sp, sp, 24
+        addi    sp, sp, 32
 #endif
 
         ret



More information about the ffmpeg-cvslog mailing list