csrsipseudo

csrsi

pseudo
Assembly RISC-V Referência

lyszt.net aborda csrsi e outras instruções RISC-V com mais detalhes.

Descrição

csrsi define bits em um registrador de controle a partir de uma constante. Um registrador de controle e status, ou CSR, mantém o estado do processador, como o endereço do manipulador de trap e os interruptores de interrupção (veja csrrw). A constante uimm é um número de 0 a 31 porque é armazenada em 5 bits. A forma abaixo define todos os bits do CSR que são 1 em uimm e deixa os outros bits inalterados.

csrsi csr, uimm

É uma pseudoinstrução, um nome legível que o montador reescreve em uma instrução real. Ela se torna a instrução abaixo, onde rd é zero para que o valor antigo seja descartado.

csrrsi zero, csr, uimm

A linha abaixo ativa a habilitação global de interrupções. O 8 é 1000 em binário, então define o bit 3 de mstatus.

csrsi mstatus, 8

Apenas os bits 0 a 4 podem ser definidos dessa forma, então o bit 11 de mie precisa de csrs com um registrador. Veja csrci para limpar bits.

Expande para

csrrsi zero, csr, uimm

O montador substitui esta pseudoinstrução pela instrução ou instruções reais listadas acima.

Exemplo

csrsi mstatus, 8   # sets bit 3 of mstatus