boucle - vs
Démarrer une boucle... bloc endloop .
Syntaxe
boucle aL, i # |
---|
Où :
- aL est le registre du compteur de boucles contenant le nombre de boucles actuel.
- i# est un registre d’entiers constants. Consultez la section Remarques.
Notes
Versions du nuanceur de vertex | 1_1 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|
loop | x | x | x | x | x |
- Le registre du compteur de boucles (aL) contient le nombre de boucles actuel et peut être utilisé pour l’adressage relatif dans le registre entier constant (c#) ou les registres de sortie (o#) à l’intérieur du bloc de boucles.
- i#.x spécifie le nombre d’itérations. La plage juridique est [0, 255]. Notez que cette instruction n’incrémente ni ne décrémente la valeur de i#.x.
- i#.y spécifie la valeur initiale du registre de compteurs de boucles (aL). La plage juridique est [0, 255]. Notez que cette instruction n’incrémente ni ne décrémente la valeur de i#.y.
- i#.z spécifie la taille de l’étape/de la foulée. La plage juridique est [-128, 127].
- i#.w n’est pas utilisé et doit être défini sur 0.
- Les blocs de boucle peuvent être imbriqués. Consultez Limites d’imbrication du contrôle de flux.
- En cas d’imbrication, la valeur du registre du compteur de boucles (aL) fait référence au bloc de boucle englobant immédiat.
- Les blocs de boucles sont autorisés à se trouver complètement à l’intérieur d’un bloc if* ou à l’entourer complètement. Aucun stradling n’est autorisé.
Exemple
loop aL, i3
add r1, r0, c2[aL]
endloop
Rubriques connexes