aboutsummaryrefslogtreecommitdiff
path: root/riscv/insns/csrrw.h
diff options
context:
space:
mode:
Diffstat (limited to 'riscv/insns/csrrw.h')
-rw-r--r--riscv/insns/csrrw.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/riscv/insns/csrrw.h b/riscv/insns/csrrw.h
index 94793e2..3d1ea32 100644
--- a/riscv/insns/csrrw.h
+++ b/riscv/insns/csrrw.h
@@ -1,2 +1,4 @@
int csr = validate_csr(insn.csr(), true);
-WRITE_RD(sext_xprlen(p->set_pcr(csr, RS1)));
+reg_t old = p->get_pcr(csr);
+p->set_pcr(csr, RS1);
+WRITE_RD(sext_xprlen(old));