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}