Merge pull request #177 from riscv/debug_auth
[riscv-isa-sim.git] / riscv / insns / csrrc.h
index 74a687260cadd7a110810318996f2853ddb1aa7a..0472d80efd5164b885d99d94f7a58d8359a26037 100644 (file)
@@ -1,4 +1,8 @@
-int csr = validate_csr(insn.csr(), true);
+bool write = insn.rs1() != 0;
+int csr = validate_csr(insn.csr(), write);
 reg_t old = p->get_csr(csr);
-p->set_csr(csr, old & ~RS1);
+if (write) {
+  p->set_csr(csr, old & ~RS1);
+}
 WRITE_RD(sext_xlen(old));
+serialize();