On 8/22/21 9:54 PM, Bin Meng wrote:
On Sat, Aug 21, 2021 at 1:43 AM Richard Henderson
<richard.hender...@linaro.org> wrote:

Introduce csrr and csrw helpers, for read-only and write-only insns.

Note that we do not properly implement this in riscv_csrrw, in that
we cannot distinguish true read-only (rs1 == 0) from any other zero
write_mask another source register -- this should still raise an
exception for read-only registers.

Only issue gen_io_start for CF_USE_ICOUNT.
Use ctx->zero for csrrc.
Use get_gpr and dest_gpr.

Reviewed-by: Bin Meng <bmeng...@gmail.com>
Signed-off-by: Richard Henderson <richard.hender...@linaro.org>
---
  target/riscv/helper.h                   |   6 +-
  target/riscv/op_helper.c                |  18 +--
  target/riscv/insn_trans/trans_rvi.c.inc | 172 +++++++++++++++++-------
  3 files changed, 131 insertions(+), 65 deletions(-)


When testing Linux kernel boot, there was a segment fault in the
helper_csrw() path where ret_value pointer is now NULL, and some CSR
write op does not test ret_value.

Thanks.  It would be really nice to get an acceptance test in...


r~


Reply via email to