fmsub 或 fms (浮动乘法-减法) 指令

用途

从没有中间舍入运算的两个浮点操作数相乘的结果中减去一个浮点操作数。

语法

位数 VALUE
0-5 63
6-10 FRT
11-15 法国
16-20 联邦储备银行
21-25 FRC
26-30 28
31 Rc
PowerPC® 
fmsub FRT FRA FRC FRB
fmsub。 FRT FRA FRC FRB
POWER ® 系列 
fms FRT FRA FRC FRB
fms。 FRT FRA FRC FRB
位数
0-5 59
6-10 FRT
11-15 法国
16-20 联邦储备银行
21-25 FRC
26-30 28
31 Rc
PowerPC® 
fmsubs FRT FRA FRC FRB
fmsubs。 FRT FRA FRC FRB

描述

fmsubfms 指令将浮点寄存器 (FPR) FRA 中的 64 位双精度浮点操作数乘以 FPR FRC 中的 64 位双精度浮点操作数,并从乘法结果中减去 FPR FRB 中的 64 位双精度浮点操作数。

fmsubs 指令将 FPR FRA 中的 32 位单精度浮点操作数乘以 FPR FRC 中的 32 位单精度浮点操作数,并从乘法结果中减去 FPR FRB 中的 32 位单精度浮点操作数。

结果在浮点状态和控制寄存器的浮点舍入控制字段 RN 的控制下进行舍入,并放置在目标 FPR FRT中。

注: 如果操作数是反规范化数字,那么将在开始操作之前对其进行预规范化。

当浮点无效操作异常启用位为 1 时,浮点状态和控制寄存器的浮点结果标志字段将设置为结果的类和符号 (无效操作异常除外)。

fmsubfmsubsfms 指令各有两种语法形式。 每种语法形式对条件寄存器字段 1 都有不同的影响。

描述
语法 表单 浮点状态和 控制寄存器 记录 位 (RC) 条件 注册字段 1
fmsub C , FL , FG , FE , FU , FR , FI , OX , UX , XX , VXSNAN , VXSI , VXIMZ 0
fmsub。 C , FL , FG , FE , FU , FR , FI , OX , UX , XX , VXSNAN , VXSI , VXIMZ 1 FX , FEX , VX 和 OX
fmsubs C , FL , FG , FE , FU , FR , FI , OX , UX , XX , VXSNAN , VXSI , VXIMZ 0
fmsubs。 C , FL , FG , FE , FU , FR , FI , OX , UX , XX , VXSNAN , VXSI , VXIMZ 1 FX , FEX , VX 和 OX
fms C , FL , FG , FE , FU , FR , FI , OX , UX , XX , VXSNAN , VXSI , VXIMZ 0
fms。 C , FL , FG , FE , FU , FR , FI , OX , UX , XX , VXSNAN , VXSI , VXIMZ 1 FX , FEX , VX 和 OX

fmsubfmsubsfms 指令的所有语法形式始终会影响浮点状态和控制寄存器。 如果语法格式将 "记录 (Rc)" 位设置为 1 ,那么指令会影响 "条件寄存器" 字段 1 中的 "浮点异常" (FX) , "已启用浮点异常" (FEX) , "浮点无效操作异常" (VX) 和 "浮点溢出异常" (OX) 位。

参数

描述
FRT 指定操作的目标浮点寄存器。
法国 指定包含乘数的源浮点寄存器。
联邦储备银行 指定包含要减去的数量的源浮点寄存器。
FRC 指定包含乘数的源浮点寄存器。

示例

  1. 以下代码将 FPR 4 和 FPR 5 的内容相乘,从乘积中减去 FPR 7 的内容,将结果放入 FPR 6 中,并设置浮点状态和控制寄存器以反映操作结果:
    
    # 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.
    fmsub 6,4,5,7
    # FPR 6 now contains 0xC070 D800 0000 0935.
    # FPSCR now contains 0x8202 8000.
    
  2. 以下代码将 FPR 4 和 FPR 5 的内容相乘,从乘积中减去 FPR 7 的内容,将结果放入 FPR 6 ,并设置浮点状态和控制寄存器以及条件寄存器字段 1 以反映操作结果:
    
    # 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.
    fmsub. 6,4,5,7
    # FPR 6 now contains 0xC070 D800 0000 0935.
    # FPSCR now contains 0x8202 8000.
    # CR now contains 0x0800 0000.