csrrwi

Atomic read/write CSR immediate

Reads the CSR into t0 and writes a 5-bit constant into it, as one atomic step.

RISC-V manual: csrrwi

Forms

  • csrrwi , ,

Operands

t0
Any integer register, x0 to x31, or its named alias, such as zero, t0 or t6.
csr
A control and status register, written by name or number, such as fcsr, fflags, frm, cycle, time, instret, ustatus, uepc, ucause or utval. See the supported registers.
imm5
An unsigned 5-bit immediate, 0 to 31, used for values such as a shift count or a CSR immediate.
# Initialize fcsr=0; csrrwi returns old fcsr in t0 and leaves fcsr=1.
.text
li t3, 0
csrw t3, fcsr
csrrwi t0, fcsr, 1