[FFmpeg-cvslog] lavu/riscv: align functions to 4 bytes

Rémi Denis-Courmont git at videolan.org
Thu Jul 25 23:11:20 EEST 2024


ffmpeg | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Mon Jul 22 23:09:11 2024 +0300| [982376660c58f59a384486894a3f1092d6888e4b] | committer: Rémi Denis-Courmont

lavu/riscv: align functions to 4 bytes

Currently the start of the byte range for each function is aligned to
4 bytes. But this can lead to situations whence the function is preceded
by a 2-byte C.NOP at the aligned 4-byte boundary. Then the first actual
instruction and the function symbol are only aligned on 2 bytes.

This forcefully disables compression for the alignment and the symbol,
thus ensuring that there is no padding before the function.

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

 libavutil/riscv/asm.S | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/libavutil/riscv/asm.S b/libavutil/riscv/asm.S
index 8b96e07b75..c5ac99b859 100644
--- a/libavutil/riscv/asm.S
+++ b/libavutil/riscv/asm.S
@@ -50,14 +50,17 @@
 
         .macro func sym, exts:vararg
             .text
-            .align 2
             .option push
             archadd \exts
 
             .global \sym
             .hidden \sym
             .type   \sym, %function
+            .option push
+            .option norvc
+            .align  2
             \sym:
+            .option pop
 
             .macro endfunc
                 .size   \sym, . - \sym



More information about the ffmpeg-cvslog mailing list