Skip to main content

30 Pseudoinstructions for accessing control and status registers

Table 6. Pseudoinstructions for acccessing control and status registers

| Pseudoinstruction | Base Instruction(s) | Meaning | | rdinstret[h] rd | csrrs rd, instret[h], x0 | Read instructions-retired counter | | rdcycle[h] rd | csrrs rd, cycle[h], x0 | Read cycle counter | | rdtime[h] rd | csrrs rd, time[h], x0 | Read real-time clock | | csrr rd, csr | csrrs rd, csr, x0 | Read CSR | | csrw csr, rs | csrrw x0, csr, rs | Write CSR | | csrs csr, rs | csrrs x0, csr, rs | Set bits in CSR | | csrc csr, rs | csrrc x0, csr, rs | Clear bits in CSR | | csrwi csr, imm | csrrwi x0, csr, imm | Write CSR, immediate | | csrsi csr, imm | csrrsi x0, csr, imm | Set bits in CSR, immediate | | csrci csr, imm | csrrci x0, csr, imm | Clear bits in CSR, immediate | | frcsr rd | csrrs rd, fcsr, x0 | Read FP control/status register | | fscsr rd, rs | csrrw rd, fcsr, rs | Swap FP control/status register | | fscsr rs | csrrw x0, fcsr, rs | Write FP control/status register | | frrm rd | csrrs rd, frm, x0 | Read FP rounding mode | | fsrm rd, rs | csrrw rd, frm, rs | Swap FP rounding mode | | fsrm rs | csrrw x0, frm, rs | Write FP rounding mode | | fsrmi rd, imm | csrrwi rd, frm, imm | Swap FP rounding mode, immediate | | fsrmi imm | csrrwi x0, frm, imm | Write FP rounding mode, immediate | | frflags rd | csrrs rd, fflags, x0 | Read FP exception flags | | fsflags rd, rs | csrrw rd, fflags, rs | Swap FP exception flags | | fsflags rs | csrrw x0, fflags, rs | Write FP exception flags | | fsflagsi rd, imm | csrrwi rd, fflags, imm | Swap FP exception flags, immediate | | fsflagsi imm | csrrwi x0, fflags, imm | Write FP exception flags, immediate |