4.1.2. 特定形式の数値に対する演算

Table 4.1 に示すルーチンは、特定の形式の数値に対する演算を実行します。 引数と結果には、常に同じ形式が使用されます。

Table 4.1. 算術演算ルーチン

関数引数の型結果の型演算
__aeabi_fadd2 floatfloatx + y の結果を返します。
__aeabi_fsub2 floatfloatx − y の結果を返します。
__aeabi_frsub2 floatfloaty − x の結果を返します。
__aeabi_fmul2 floatfloatx × y の結果を返します。
__aeabi_fdiv2 floatfloatx ÷ y の結果を返します。
_frdiv2 floatfloaty ÷ x の結果を返します。
_frem2 floatfloatx ÷ y の剰余を返します(算術演算ルーチンの備考の a を参照)。
_frndfloatfloatx を整数に丸めた結果を返します(算術演算ルーチンの備考の b を参照)。
_fsqrtfloatfloatx の平方根の結果を返します。
__aeabi_dadd2 doubledoublex + y の結果を返します。
__aeabi_dsub2 doubledoublex − y の結果を返します。
__aeabi_drsub2 doubledoubley − x の結果を返します。
__aeabi_dmul2 doubledoublex × y の結果を返します。
__aeabi_ddiv2 doubledoublex ÷ y の結果を返します。
_drdiv2 doubledoubley ÷ x の結果を返します。
_drem2 doubledoublex ÷ y の剰余を返します(算術演算ルーチンの備考の a を参照)。
_drnddoubledoublex を整数に丸めた結果を返します(算術演算ルーチンの備考の b を参照)。
_dsqrtdoubledoublex の平方根の結果を返します。

算術演算ルーチンの備考

a

IEEE 754 剰余演算を実行する関数。 この関数は、2 つの数値 xy をとり、z = x - n * y を計算して z の値を返します。n は整数です。 正確な結果を返すためには、zx の半分を超えないように n の値を指定します(xy の両方が正の値でも、z が負になる場合があります)。 IEEE 754 の剰余関数は、C ライブラリ関数 fmod によって実行される演算とは異なります。C ライブラリ関数では、z の符号が常に x と同じです。 IEEE 754 仕様において 2 つの n を使用できる場合には、偶数値が選択されます。 この動作は、その時点の丸めモードとは関係なく実行されます。

b

IEEE 754 で定義されている整数への丸め演算を実行する関数。 この関数は、ある値を(現在の丸めモードに基づいて)整数に丸めますが、その整数は C 言語での int 変数としてではなく、浮動小数点数値形式で返されます。 この数値を int 変数に変換するには、Table 4.2 にある _ffix ルーチンを使用する必要があります。

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