csrrwi
lyszt.net aborda csrrwi e outras instruções RISC-V com mais detalhes.
Descrição
csrrwi é csrrw com uma constante no lugar do registrador de origem. O i significa immediate (imediato), uma constante escrita na instrução. A constante uimm é um número de 0 a 31 porque é armazenada em 5 bits. O valor antigo do CSR vai para rd e uimm é escrito no CSR.
csrrwi rd, csr, uimm
A linha abaixo escreve 0 em mie, o que desliga todas as fontes de interrupção, e deixa o mie anterior em t1.
csrrwi t1, mie, 0
Um valor acima de 31 não cabe, então um valor maior vai primeiro para um registrador e é escrito com csrrw. Quando rd é zero, o CSR não é lido, o que é a forma abreviada csrwi. Veja csrrw para saber o que é um CSR.
O manual do RISC-V diz que as formas imediatas usam um valor sem sinal de 5 bits que é estendido com zeros, ou seja, preenchido com zeros à esquerda até a largura total do registrador.
Exemplo
csrrwi t1, mie, 0 # mie = 0, t1 = old mie
