blez
pseudolyszt.net couvre blez et d'autres instructions RISC-V plus en détail.
Description
blez effectue un branchement lorsque la valeur dans un registre est zéro ou négative. Le nom signifie « brancher si inférieur ou égal à zéro ». La forme ci-dessous saute vers la position étiquetée lorsque rs est au plus zéro, et passe sinon à l'instruction suivante.
blez rs, label
L'assembleur la traite comme une pseudo-instruction et la réécrit en l'instruction ci-dessous, qui demande si zero est supérieur ou égal au registre.
bge zero, rs, label
Les opérandes sont échangés car RISC-V n'a pas de branchement « inférieur ou égal », donc bge fait le travail, de la même manière que ble est construit. La comparaison est signée. Zéro branche, ce qui distingue blez de bltz, et c'est l'opposé de bgtz, donc pour toute valeur exactement l'un des deux prend le branchement. Voir bge pour le branchement sous-jacent.
blez convient à une vérification qu'il ne reste rien à faire. Une boucle qui traite un nombre d'éléments restants peut sortir dès que le compte est zéro ou est passé en dessous.
blez t0, done
La ligne ci-dessus saute vers done lorsque t0 vaut 0 ou est négatif.
Se développe en
bge zero, rs, label
L'assembleur remplace cette pseudo-instruction par la ou les instructions réelles listées ci-dessus.
Exemple
li t0, 0 blez t0, done # t0 <= 0, so jump to 'done'
