fnmsub-oder fnms-Anweisung (Floating Negative Multiply-Subtract)

Zweck

Multipliziert zwei Gleitkommaoperanden, subtrahiert einen Gleitkommaoperanden vom Ergebnis und platziert das negative Ergebnis in einem Gleitkommaregister.

Syntax

Bit Wert
0-5 63
6 bis 10 FRT
11-15 FRA
16-20 FRB
21-25 FRC
26-30 30
31 RC
PowerPC® 
Fnmsub FRT, FRA, FRC, FRB
fnmsub FRT, FRA, FRC, FRB
Produktfamilie POWER ® 
Fnms FRT, FRA, FRC, FRB
fnms. FRT, FRA, FRC, FRB
Bit Wert
0-5 59
6 bis 10 FRT
11-15 FRA
16-20 FRB
21-25 FRC
26-30  
30 RC
PowerPC® 
fnmsubs FRT, FRA, FRC, FRB
fnmsubs FRT, FRA, FRC, FRB

Beschreibung

Die Anweisungen Fnms und Fnmsub multiplizieren den 64-Bit-Gleitkommaoperanden mit doppelter Genauigkeit im Gleitkommaregister (FPR) FRA mit dem 64-Bit-Gleitkommaoperanden mit doppelter Genauigkeit in FPR FRC, subtrahieren den 64-Bit-Gleitkommaoperanden mit doppelter Genauigkeit in FPR FRB vom Ergebnis der Multiplikation und platzieren das negierte Ergebnis im Ziel-FPR FRT.

Die Anweisung fnmsubs multipliziert den 32-Bit-Gleitkommaoperanden mit einfacher Genauigkeit in FPR FRA mit dem 32-Bit-Gleitkommaoperanden mit einfacher Genauigkeit in FPR FRC, subtrahiert den 32-Bit-Gleitkommaoperanden mit einfacher Genauigkeit in FPR FRB vom Ergebnis der Multiplikation und platziert das negierte Ergebnis im Ziel-FPR FRT.

Das Subtraktionsergebnis wird unter Steuerung des Gleitkomma-Rundungssteuerfelds RN des Gleitkomma-Status-und Steuerregisters gerundet.

Anmerkung: Wenn ein Operand eine denormalisierte Zahl ist, wird er vor Beginn der Operation prenormalisiert.

Die Anweisungen Fnms und Fnmsub sind identisch mit den Anweisungen Fmsub und FMS (Floating Multiply-Subtract Single) mit dem endgültigen Ergebnis negiert, aber mit den folgenden Ausnahmen:

  • Ruhende NaNs (QNaNs) werden ohne Auswirkung auf ihr Vorzeichenbit weitergegeben.
  • QNaNs , die als Ergebnis einer inaktivierten Ausnahmebedingung wegen ungültiger Operation generiert wurden, haben ein "Vorzeichen" von null.
  • Die Signalisierung von NaNs (SNaNs), die als Ergebnis einer inaktivierten Ausnahme des Typs 'Ungültige Operation' in QNaNs konvertiert werden, hat keine Auswirkung auf das Vorzeichenbit.

Das Gleitkomma-Ergebnis-Markierungsfeld des Gleitkomma-Status-und Steuerregisters wird auf die Klasse und das Vorzeichen des Ergebnisses gesetzt, mit Ausnahme von Ausnahmebedingungen für ungültige Operationen, wenn das Gleitkomma-Ausnahmebedingung für ungültige Operationen 1 ist.

Die Anweisungen Fnmsub, fnmsubsund Fnms haben jeweils zwei Syntaxformate. Jede Syntaxform hat unterschiedliche Auswirkungen auf Bedingungsregisterfeld 1.

Element Beschreibung
Syntax Formular Gleitkommastatus und Steuerregister Schriftstück Bit (Rc) Bedingung Feld 1 registrieren
Fnmsub C, FL, FG, FE, FU, FR, FI, OX, UX, XX, VXSNAN, VXISI, VXIMZ 0 Keine
fnmsub C, FL, FG, FE, FU, FR, FI, OX, UX, XX, VXSNAN, VXISI, VXIMZ 1 FX, FEX, VX, OX
fnmsubs C, FL, FG, FE, FU, FR, FI, OX, UX, XX, VXSNAN, VXISI, VXIMZ 0 Keine
fnmsubs C, FL, FG, FE, FU, FR, FI, OX, UX, XX, VXSNAN, VXISI, VXIMZ 1 FX, FEX, VX, OX
Fnms C, FL, FG, FE, FU, FR, FI, OX, UX, XX, VXSNAN, VXISI, VXIMZ 0 Keine
fnms. C, FL, FG, FE, FU, FR, FI, OX, UX, XX, VXSNAN, VXISI, VXIMZ 1 FX, FEX, VX, OX

Alle Syntaxformen der Anweisungen Fnmsub, fnmsubsund Fnms wirken sich immer auf den Gleitkommastatus und das Steuerregister aus. Wenn das Syntaxformat das Satzbit (Rc) auf 1 setzt, wirkt sich die Anweisung auf die Gleitkommaausnahmebedingung (FX), die FEX (Floating-Point Enabled Exception), die VX (Floating-Point Invalid Operation Exception) und die OX-Bit (Floating-Point Overflow Exception) im Bedingungsregisterfeld 1 aus.

Anmerkung: Gerundet wird, bevor das Ergebnis der Addition negiert wird. Je nach RNkann ein ungenauer Wert auftreten.

Parameter

Element Beschreibung
FRT Gibt das Zielgleitkommaregister für die Operation an
FRA Gibt das erste Quellengleitkommaregister für die Operation an
FRB Gibt das zweite Quellengleitkommaregister für die Operation an.
FRC Gibt das dritte Quellengleitkommaregister für die Operation an.

Beispiele

  1. Der folgende Code multipliziert den Inhalt von FPR 4 und FPR 5, subtrahiert den Inhalt von FPR 7 vom Ergebnis, speichert das negierte Ergebnis in FPR 6 und legt das Gleitkomma-Status-und Steuerregister sowie das Bedingungsregisterfeld 1 fest, um das Ergebnis der Operation widerzuspiegeln.
    
    # Assume FPR 4 contains 0xC053 4000 0000 0000.
    # Assume FPR 5 contains 0x400C 0000 0000 0000.
    # Assume FPR 7 contains 0x3DE2 6AB4 B33c 110A.
    # Assume FPSCR = 0.
    fnmsub 6,4,5,7
    # FPR 6 now contains 0x4070 D800 0000 0935.
    # FPSCR now contains 0x8202 4000.
    
  2. Der folgende Code multipliziert den Inhalt von FPR 4 und FPR 5, subtrahiert den Inhalt von FPR 7 vom Ergebnis, speichert das negierte Ergebnis in FPR 6 und legt das Gleitkomma-Status-und Steuerregister sowie das Bedingungsregisterfeld 1 fest, um das Ergebnis der Operation widerzuspiegeln.
    
    # Assume FPR 4 contains 0xC053 4000 0000 0000.
    # Assume FPR 5 contains 0x400C 0000 0000 0000.
    # Assume FPR 7 contains 0x3DE2 6AB4 B33c 110A.
    # Assume FPSCR = 0 and CR = 0.
    fnmsub. 6,4,5,7
    # FPR 6 now contains 0x4070 D800 0000 0935.
    # FPSCR now contains 0x8202 4000.
    # CR now contains 0x0800 0000.