diff --git a/sys/arch/riscv/include/frame.h b/sys/arch/riscv/include/frame.h index c847fc61fee6..1fae5ca1491d 100644 --- a/sys/arch/riscv/include/frame.h +++ b/sys/arch/riscv/include/frame.h @@ -39,6 +39,10 @@ struct trapframe { register_t tf_tval; // supervisor trap value register_t tf_cause; // supervisor cause register register_t tf_sr; // supervisor status register + register_t tf_pad; // required by ABI: + // stack should be aligned to + // 16-byte boundaries both for + // 64- and 32-bit ABIs #define tf_reg tf_regs.r_reg #define tf_pc tf_regs.r_pc #define tf_ra tf_reg[_X_RA] @@ -81,6 +85,7 @@ struct trapframe32 { register32_t tf_tval; register32_t tf_cause; register32_t tf_sr; + register32_t tf_pad; // see above }; #endif