csrc
pseudolyszt.net couvre csrc et d'autres instructions RISC-V plus en détail.
Description
csrc efface des bits dans un registre de contrôle. Un registre de contrôle et d'état, ou CSR, contient l'état du processeur tel que l'adresse du gestionnaire de piège et les commutateurs d'interruption (voir csrrw). La forme ci-dessous efface chaque bit du CSR qui vaut 1 dans rs et laisse les autres bits inchangés.
csrc csr, rs
C'est une pseudo-instruction, un nom lisible que l'assembleur réécrit en une instruction réelle. Elle devient l'instruction ci-dessous, où rd est zero afin que l'ancienne valeur soit écartée.
csrrc zero, csr, rs
Les lignes ci-dessous effacent le bit 3 de mstatus, ce qui désactive l'activation globale des interruptions.
li t0, 8 csrc mstatus, t0
Le processeur efface lui-même ce bit lorsqu'un piège commence, et mret le restaure, de sorte qu'un gestionnaire en a rarement besoin. Un programme utilise csrc pour protéger une courte portion de code contre les interruptions, puis rétablit le bit avec csrs.
Se développe en
csrrc zero, csr, rs
L'assembleur remplace cette pseudo-instruction par la ou les instructions réelles listées ci-dessus.
Exemple
li t0, 8 csrc mstatus, t0 # clears bit 3 of mstatus
