On 4/25/25 12:23 PM, Richard Henderson wrote:
As discussed, the use of GETPC() within write_misa is wrong. I've done just enough plumbing to get the helper return address piped down to write_misa, so that we can make use of unwind data. AFAIK, nothing in check-tcg or check-functional would test this. It shouldn't be too hard to write a test akin to issue1060.S, but I'm going to leave that to someone else.
All patches: Reviewed-by: Daniel Henrique Barboza <dbarb...@ventanamicro.com>
r~ Richard Henderson (7): target/riscv: Pass ra to riscv_csr_write_fn target/riscv: Pass ra to riscv_csrrw_do64 target/riscv: Pass ra to riscv_csrrw_do128 target/riscv: Pass ra to riscv_csrrw target/riscv: Pass ra to riscv_csrrw_i128 target/riscv: Move insn_len to internals.h target/riscv: Fix write_misa vs aligned next_pc target/riscv/cpu.h | 15 ++- target/riscv/internals.h | 5 + hw/riscv/riscv_hart.c | 2 +- target/riscv/csr.c | 278 +++++++++++++++++++++------------------ target/riscv/op_helper.c | 13 +- target/riscv/translate.c | 5 - 6 files changed, 169 insertions(+), 149 deletions(-)