4.1.5. 浮動小数点の比較

Table 4.4 に示すルーチンは、浮動小数点数値の比較を実行します。 詳細については、備考の欄に示すとおり、浮動小数点比較ルーチンの備考を参照して下さい。

Table 4.4. 浮動小数点比較ルーチン

関数引数の型結果の型テストされる条件
_fcmpeq2 floatフラグ、EQ/NEx = ya
_fcmpge2 floatフラグ、HS/LOx ≧ ya、b
_fcmple2 floatフラグ、HI/LSx ≦ ya、b
_feq2 floatブールx = y-
_fneq2 floatブールx ≠ y-
_fgeq2 floatブールx ≧ yb
_fgr2 floatブールx > yb
_fleq2 floatブールx ≦ yb
_fls2 floatブールx < yb
_dcmpeq2 doubleフラグ、EQ/NEx = ya
_dcmpge2 doubleフラグ、HS/LOx ≧ ya、b
_dcmple2 doubleフラグ、HI/LSx ≦ ya、b
_deq2 doubleブールx = y-
_dneq2 doubleブールx ≠ y-
_dgeq2 doubleブールx ≧ yb
_dgr2 doubleブールx > yb
_dleq2 doubleブールx ≦ yb
_dls2 doubleブールx < yb
_fcmp42 floatフラグ、VFPx ≦ yc
_fcmp4e2 floatフラグ、VFPx ≦ yb、c
_fdcmp4floatdoubleフラグ、VFPx ≦ yc
_fdcmp4efloatdoubleフラグ、VFPx ≦ yb、c
_dcmp42 doubleフラグ、VFPx ≦ yc
_dcmp4e2 doubleフラグ、VFPx ≦ yb、c
_dfcmp4doublefloatフラグ、VFPx ≦ yc
_dfcmp4edoublefloatフラグ、VFPx ≦ yb、c

浮動小数点比較ルーチンの備考

a

ARM 条件フラグに結果を返します。 この方法では条件命令を使用する関数への呼び出しを直接追跡できるので、アセンブリ言語においては効率的ですが、C 言語でこの関数を使用する手段はありません。この関数は rt_fp.h 内では宣言されていません。

b

いずれかの引数が NaN であれば、それがクワイエット型の NaN であっても、無効演算例外が発生します。 他の関数では、引数が SNaN の場合にのみ無効演算例外が発生します。 QNaN の場合は、他の QNaN も含め、どの値と比較されても結果は不等(≠)となります(したがって QNaN と同一の QNaN を比較しても、結果は不等(≠)となります)。

c

VFP 型のステータスフラグを CPSR に返します。 また、VFP 型のステータスフラグを r0 の上位 4 ビットで返すため、この関数を C 言語から使用できます。この関数は rt_fp.h で宣言されます。

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