eeric_core/rv_core/instruction/executor/zicsr/csrrci.rs
1use crate::rv_core::instruction::executor::prelude::*;
2
3pub fn csrrci(
4 Csri { rd, uimm, csr }: Csri,
5 x: &mut IntegerRegisters,
6 c: &mut CsrRegisters,
7) -> Result<(), String> {
8 let csr_value = c[csr].read();
9 x[rd] = csr_value;
10
11 let clear_mask = uimm as u64;
12 c[csr].write(csr_value & !clear_mask)?;
13
14 Ok(())
15}