checkasm/riscv: add forward-edge CFI landing pads

This commit is contained in:
Rémi Denis-Courmont 2024-07-22 22:17:40 +03:00
parent 4f2472909e
commit 7dde8be29f

View File

@ -49,6 +49,7 @@ saved_regs:
.endr
func checkasm_set_function
lpad 0
la.tls.ie t0, checked_func
add t0, tp, t0
sd a0, (t0)
@ -56,6 +57,7 @@ func checkasm_set_function
endfunc
func checkasm_get_wrapper, v
lpad 0
addi sp, sp, -16
sd fp, (sp)
sd ra, 8(sp)
@ -74,6 +76,7 @@ func checkasm_get_wrapper, v
ret
2: /* <-- Entry point with the Vector extension --> */
lpad 0
/* Clobber the vectors */
vsetvli t0, zero, e32, m8, ta, ma
li t0, 0xdeadbeef
@ -90,6 +93,7 @@ func checkasm_get_wrapper, v
csrwi vxsat, 1 /* Saturation: encountered */
3: /* <-- Entry point without the Vector extension --> */
lpad 0
/* Save RA, unallocatable and callee-saved registers */
la.tls.ie t0, saved_regs
add t0, tp, t0