Arm架构FPCR.FIZ=1时,哪些浮点指令输入不被刷新为零?
当FPCR.FIZ=1时,哪些浮点指令的输入不会被刷新为零?
根据Arm架构参考手册-A架构(版本I.a)的定义:
FIZ,第[0]位
当实现FEAT_AFP时:
0b1 大多数浮点指令的单精度和双精度非规格化输入将被刷新为零。
这里的“大多数”特指执行浮点算术运算的指令(如加法FADD、减法FSUB、乘法FMUL、除法FDIV、平方根FSQRT等),这类指令的非规格化输入会被刷新为零。而以下类型的浮点指令,其输入不会被刷新为零:
- 浮点比较与测试指令:例如
FCMP、FCMPE、FCMPZ、FTST等,这类指令仅完成数值比较逻辑,不执行算术运算,非规格化输入会被原样用于比较判断。 - 浮点数据传输/移动指令:包括寄存器间移动指令
FMOV、系统寄存器与浮点寄存器交互指令FMRS/FMXR、内存加载存储指令VLDR/VSTR等,这类指令仅负责数据的传输,不会修改输入的非规格化值。 - 浮点状态查询指令:例如
FMSTAT,仅用于读取浮点状态寄存器内容,不涉及对浮点输入数据的处理。
内容的提问来源于stack exchange,提问作者pmor
相关产品推荐
相关产品推荐

