instruction fcmpo (Floating Compare Ordered)
Objectif
Compare le contenu de deux registres à virgule flottante.
Syntaxe
| Bits | Valeur |
|---|---|
| 0-5 | 63 |
| 6-8 | fonction frontière |
| 9 à 10 | // |
| 11-15 | FRA |
| 16-20 | FRB |
| 21-30 | 32 |
| 31 | / |
Description
L'instruction fcmpo compare l'opérande à virgule flottante double précision sur 64 bits dans le registre à virgule flottante (FPR) FRA à l'opérande à virgule flottante double précision sur 64 bits dans FPR FRB. La zone de code de condition en virgule flottante (FPCC) du registre de statut et de contrôle en virgule flottante (FPSCR) est définie pour refléter la valeur de l'opérande FPR FRA par rapport à l'opérande FPR FRB. La valeur BF détermine quel champ du registre de condition reçoit les quatre bits FPCC.
Tenez compte des points suivants lorsque vous utilisez l'instruction fcmpo :
- Si l'un des opérandes est un NaN silencieux (QNaN) ou un NaN de signalisation (SNaN), le code de condition à virgule flottante est défini pour refléter les valeurs non ordonnées (FU).
- Si l'un des opérandes est un SNaN, le bit d'exception d'opération invalide en virgule flottante VXSNAN du registre d'état et de contrôle en virgule flottante est activé. En outre:
- Si l'opération non valide est désactivée (c'est-à-dire que le bit d'activation de l'exception d'opération non valide en virgule flottante du registre de statut et de contrôle en virgule flottante est 0), le bit d'exception d'opération non valide en virgule flottante VXVC est défini (signalant une comparaison non valide).
- Si l'un des opérandes est un QNaN, le bit d'exception d'opération invalide en virgule flottante VXVC est activé.
L'instruction fcmpo a une forme de syntaxe et affecte toujours les bits FT, FG, FE, FU, VXSNAN et VXVC dans le registre de contrôle et de statut en virgule flottante.
Paramètres
| Article | Descriptif |
|---|---|
| fonction frontière | Indique la zone du registre de condition qui reçoit les quatre bits FPCC. |
| FRA | Indique le registre à virgule flottante source. |
| FRB | Indique le registre à virgule flottante source. |
Exemples
Le code suivant compare le contenu de FPR 4 et FPR 6 et définit la zone 1 du registre de condition et le registre de statut et de contrôle en virgule flottante pour refléter le résultat de l'opération:
# Assume CR = 0 and FPSCR = 0.
# Assume FPR 5 contains 0xC053 4000 0000 0000.
# Assume FPR 4 contains 0x400C 0000 0000 0000.
fcmpo 6,4,5
# CR now contains 0x0000 0040.
# FPSCR now contains 0x0000 4000.