4.1.5. 浮点数比较

Table 4.4 介绍了在浮点数之间执行比较的例程。 有关详细信息,请参阅浮点数比较例程注释中的注释列。

Table 4.4. 浮点数比较例程

函数 自变量类型 结果类型 测试的条件 注释
_fcmpeq 2 float 标记,EQ/NE x 等于 y a
_fcmpge 2 float 标记,HS/LO x 大于或等于 y a、b
_fcmple 2 float 标记,HI/LS x 小于或等于 y a、b
_feq 2 float 布尔值 x 等于 y -
_fneq 2 float 布尔值 x 不等于 y -
_fgeq 2 float 布尔值 x 大于或等于 y b
_fgr 2 float 布尔值 x 大于 y b
_fleq 2 float 布尔值 x 小于或等于 y b
_fls 2 float 布尔值 x 小于 y b
_dcmpeq 2 double 标记,EQ/NE x 等于 y a
_dcmpge 2 double 标记,HS/LO x 大于或等于 y a、b
_dcmple 2 double 标记,HI/LS x 小于或等于 y a、b
_deq 2 double 布尔值 x 等于 y -
_dneq 2 double 布尔值 x 不等于 y -
_dgeq 2 double 布尔值 x 大于或等于 y b
_dgr 2 double 布尔值 x 大于 y b
_dleq 2 double 布尔值 x 小于或等于 y b
_dls 2 double 布尔值 x 小于 y b
_fcmp4 2 float 标记,VFP x 小于或等于 y c
_fcmp4e 2 float 标记,VFP x 小于或等于 y b、c
_fdcmp4 floatdouble 标记,VFP x 小于或等于 y c
_fdcmp4e floatdouble 标记,VFP x 小于或等于 y b、c
_dcmp4 2 double 标记,VFP x 小于或等于 y c
_dcmp4e 2 double 标记,VFP x 小于或等于 y b、c
_dfcmp4 doublefloat 标记,VFP x 小于或等于 y c
_dfcmp4e doublefloat 标记,VFP x 小于或等于 y b、c

浮点数比较例程注释

a

在 ARM 条件标记中返回结果。 这在汇编语言中是非常有效的,因为您可以直接在函数调用后面执行条件指令,但这表示无法从 C 中使用此函数。此函数未在 rt_fp.h 中声明。

b

如果任一自变量是 NaN(即使是无提示 NaN),则会导致“无效运算”异常。 仅当自变量是 SNaN 时,其他函数才会导致“无效运算”。 与任意数(包括其他 QNaN)进行比较时,QNaN 返回不等于(因此,将 QNaN 与相同的 QNaN 比较时,仍会返回不等于)。

c

CPSR 中返回 VFP 类型状态标记。 还在 r0 的最高四位中返回 VFP 类型状态标记,这表示可以从 C 中使用此函数。此函数是在 rt_fp.h 中声明的。

Copyright © 2007 ARM Limited. All rights reserved. ARM DUI 0349AC
Non-Confidential