diff --git a/env/entry.S b/env/entry.S index b74004f..17e5321 100644 --- a/env/entry.S +++ b/env/entry.S @@ -10,7 +10,11 @@ .align 2 .global trap_entry trap_entry: - addi sp, sp, -32*REGBYTES +#ifdef __riscv_abi_rve + addi sp, sp, -12*REGBYTES +#else + addi sp, sp, -28*REGBYTES +#endif sw x1, 1*REGBYTES(sp) sw x5, 5*REGBYTES(sp) @@ -78,6 +82,9 @@ trap_entry: lw x29, 29*REGBYTES(sp) lw x30, 30*REGBYTES(sp) lw x31, 31*REGBYTES(sp) + addi sp, sp, 28*REGBYTES +#else + addi sp, sp, 12*REGBYTES #endif mret