]> git.proxmox.com Git - mirror_qemu.git/commit
target/riscv: Implement the stval/mtval illegal instruction
authorAlistair Francis <alistair.francis@wdc.com>
Mon, 20 Dec 2021 06:49:16 +0000 (16:49 +1000)
committerAlistair Francis <alistair.francis@wdc.com>
Sat, 8 Jan 2022 05:46:10 +0000 (15:46 +1000)
commit48eaeb56debf91817dea00a2cd9c1f6c986eb531
tree59d55faafca9293f474bbfae6e42b1686bd16180
parent86d0c457396b1a789fe2740f7bd8d476ea426298
target/riscv: Implement the stval/mtval illegal instruction

The stval and mtval registers can optionally contain the faulting
instruction on an illegal instruction exception. This patch adds support
for setting the stval and mtval registers.

The RISC-V spec states that "The stval register can optionally also be
used to return the faulting instruction bits on an illegal instruction
exception...". In this case we are always writing the value on an
illegal instruction.

This doesn't match all CPUs (some CPUs won't write the data), but in
QEMU let's just populate the value on illegal instructions. This won't
break any guest software, but will provide more information to guests.

Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Message-id: 20211220064916.107241-4-alistair.francis@opensource.wdc.com
target/riscv/cpu.h
target/riscv/cpu_helper.c
target/riscv/translate.c