csrrci
lyszt.net couvre csrrci et d'autres instructions RISC-V plus en détail.
Description
csrrci est csrrc avec un masque constant à la place d'un registre. Le i signifie immédiat, une constante écrite dans l'instruction. La constante uimm est un nombre de 0 à 31 car elle est stockée sur 5 bits. L'ancienne valeur du CSR va dans rd, puis chaque bit qui vaut 1 dans uimm est mis à 0 dans le CSR.
csrrci rd, csr, uimm
La ligne ci-dessous efface le bit 3 de mstatus, ce qui désactive l'activation globale des interruptions, et laisse la valeur précédente dans t1. Le 8 est le binaire 1000.
csrrci t1, mstatus, 8
Seuls les bits 0 à 4 peuvent être effacés de cette manière. Lorsque uimm vaut 0, le CSR est lu et non écrit. Lorsque rd est zero, l'ancienne valeur est ignorée, ce qui correspond à la notation abrégée csrci. Voir csrrc pour la forme avec registre.
Exemple
csrrci t1, mstatus, 8 # clears bit 3 of mstatus, t1 = old mstatus
