diff options
Diffstat (limited to 'lib/sbi/sbi_illegal_insn.c')
-rw-r--r-- | lib/sbi/sbi_illegal_insn.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/lib/sbi/sbi_illegal_insn.c b/lib/sbi/sbi_illegal_insn.c index e75c13c..d15986a 100644 --- a/lib/sbi/sbi_illegal_insn.c +++ b/lib/sbi/sbi_illegal_insn.c @@ -49,8 +49,7 @@ static int system_opcode_insn(ulong insn, u32 hartid, ulong mcause, return sbi_trap_redirect(regs, scratch, regs->mepc, mcause, insn); - if (sbi_emulate_csr_read(csr_num, hartid, regs->mstatus, - scratch, &csr_val)) + if (sbi_emulate_csr_read(csr_num, hartid, regs, scratch, &csr_val)) return truly_illegal_insn(insn, hartid, mcause, regs, scratch); @@ -80,7 +79,7 @@ static int system_opcode_insn(ulong insn, u32 hartid, ulong mcause, return truly_illegal_insn(insn, hartid, mcause, regs, scratch); }; - if (do_write && sbi_emulate_csr_write(csr_num, hartid, regs->mstatus, + if (do_write && sbi_emulate_csr_write(csr_num, hartid, regs, scratch, new_csr_val)) return truly_illegal_insn(insn, hartid, mcause, regs, scratch); |