instruction bclr ou bcr (Branch Conditionnel Link Register)

Objectif

Branches conditionnelles à une adresse contenue dans le registre des liens.

Syntaxe

Bits Valeur
0 - 5 19
6 - 10 objet métier
11 - 15 solutions d"aide à la décision
16 - 18 ///
19 à 20 BH
21 - 30 16
31 LK
PowerPC®
Famille POWER ® 

Description

Les instructions bclr et bcr sont associées à une instruction spécifiée par l'adresse cible de la branche. L'adresse cible de la branche est la concaténation des bits 0-29 du registre de liaison et b'00'.

Les instructions bclr et bcr ont deux formes de syntaxe. Chaque forme de syntaxe a un effet différent sur le bit de lien et sur le registre de lien.

Formulaire de syntaxe Bit d'adresse absolue (AA) Registre des exceptions de point fixe Bit de liaison (LK) Zone de registre de condition 0
bclr Néant Néant 0 Néant
bclrl Néant Néant 1 Néant
bcr Néant Néant 0 Néant
bcrl Néant Néant 1 Néant

Les deux formes de syntaxe de l'instruction bclr et bcr n'affectent jamais la zone 0 du registre des exceptions fixes ou du registre des conditions. Si le bit de liaison (LK) est 1, alors l'adresse effective de l'instruction qui suit l'instruction de branche est placée dans le registre de liaison.

Le champ Option de succursale (BO) permet de combiner différents types de succursales en une seule instruction. Des mnémoniques étendues sont fournies pour définir automatiquement la zone Option de branche.

Le codage de la zone BO est défini dans l'architecture PowerPC® . La liste suivante fournit de brèves descriptions des valeurs possibles pour cette zone:

objet métier Descriptif
0000y Décrémenter le CTR ; puis le branchement si le CTR décrémenté n'est pas 0 et que la condition est False.
0001y Décrémenter le CTR ; puis créer une branche si le CTR décrémenté est 0 et que la condition est False.
001zy Branche si la condition est False.
0100y Décrémenter le CTR ; puis ramifier si bits le CTR décrémenté n'est pas 0 et la condition est True.
0101y Décrémenter le CTR ; puis se ramifier si le CTR décrémenté est 0 et que la condition est True.
011zy Branche si la condition est True.
1z00y Décrémente le CTR ; puis branche si le CTR décrémenté n'est pas 0.
1z01y Décrémenter le CTR, puis le séparer si le CTR décrémenté est 0.
1z1zz Branche toujours.
Dans l'architecture PowerPC® , les bits sont les suivants:
  • Le bit z indique un bit qui doit être 0. Si le bit n'est pas 0, le format d'instruction n'est pas valide.
  • Le bit y indique si une branche conditionnelle est susceptible d'être utilisée. La valeur de ce bit peut être 0 ou 1. La valeur par défaut est 0.

Dans l'architecture de la famille POWER ®, les bits z et y peuvent être 0 ou 1.

Le codage de la zone BO utilisant le codage V2.00 est brièvement décrit ci-dessous:

Tableau 1. Valeurs de zone d'objet métier utilisant le codage V2.00
objet métier Descriptif
0000z Décrémenter le CTR ; puis le branchement si le CTR décrémenté n'est pas 0 et que la condition est False.
0001z Décrémenter le CTR ; puis créer une branche si le CTR décrémenté est 0 et que la condition est False.
001at Branche si la condition est False.
0100z Décrémenter le CTR ; puis ramifier si bits le CTR décrémenté n'est pas 0 et la condition est True.
0101z Décrémenter le CTR ; puis se ramifier si le CTR décrémenté est 0 et que la condition est True.
011at Branche si la condition est True.
1a00t Décrémente le CTR ; puis branche si le CTR décrémenté n'est pas 0.
1a01t Décrémenter le CTR, puis le séparer si le CTR décrémenté est 0.
1z1zz Branche toujours.

Les bits a et t de la zone BO peuvent être utilisés par le logiciel pour indiquer si une branche est susceptible d'être utilisée, comme illustré ci-dessous:

at Conseil
00 Aucun indice n'est donné.
01 Réservé
01 La branche est très probablement à ne pas être prise.
11 La branche est très probablement prise.

Le champ BH (Branch Hint) est utilisé pour fournir une indication sur l'utilisation de l'instruction, comme illustré ci-dessous:

BH Conseil
00 L'instruction n'est pas un retour de sous-programme ; l'adresse cible est probablement la même que l'adresse cible utilisée lors de la prise de la branche précédente.
01 Réservé
10 Réservé
11 L'adresse cible n'est pas prévisible.

Paramètres

Article Descriptif

Exemples

Le code suivant se raccorde à l'adresse cible de la branche calculée en fonction du bit 0 du registre de condition, et aucun indice de branche n'est donné:

bclr 0x0,0,0
# The Count Register is decremented.
# A branch occurs if the LT bit is set to zero in the
# Condition Register and if the Count Register 
# does not equal zero.
# If the conditions are met, the instruction branches to
# the concatenation of bits 0-29 of the Link Register and b'00'.