Everything

 

-tfu 【V3.01.00以降】


コンパイル・オプション / 最適化オプション

[指定形式]

-tfu=intrinsic[,mathlib]

[詳細説明]

-

-tfu=intrinsicを指定した場合は、次の三角関数演算器を利用する組み込み関数を使用できるようになります。

 

-

__sincosf

-

__atan2hypotf

-

__init_tfu(初期化用)

 

これらの組み込み関数の詳細は4.2.6 組み込み関数を参照してください。

 

-

-tfu=intrinsic,mathlibを指定した場合は組み込み関数に加えてさらに、数学ライブラリ関数の呼び出しも、三角関数演算器を利用するコードに置き換えます。置き換えの対象となる数学ライブラリ関数は次のとおりです。

 

-

sinf / sin*1 / sinl*1

-

cosf / cos*1 / cosl*1

-

atan2f / atan2*1 / atan2l*1

-

hypotf / hypot*1 / hypotl*1

-

asinf *2 / asin *1*2 / asinl *1*2 【V3.02.00 以降】

-

acosf *2 / acos *1*2 / acosl *1*2 【V3.02.00 以降】

-

atanf / atan *1 / atanl *1 【V3.02.00 以降】

-

tanf / tan *1 / tanl *1 【V3.02.00 以降】

 

*1) -dbl_size=4を指定した場合。

*2) -isa=rxv2|rxv3 かつ -fpuの場合。

[備考]

-

三角関数演算器を利用した演算処理は、リエントラント性がありません。

-

-tfu=intrinsic,mathlib指定による数学ライブラリ関数の置き換えは関数呼び出しコード自体を置き換えるものであり、ライブラリ内のコードは変わりません。ポインタを使った間接呼び出しがされた場合はライブラリ関数が呼び出されるため、三角関数演算器を利用することができません。

-

数学ライブラリ関数の呼び出しが三角関数演算器を利用したコードに置き換わった場合、変数errnoの内容は変更されません。

-

三角関数演算器を利用した場合と利用しない場合では、演算精度が異なります。

-

三角関数演算器を利用する前にスタートアッププログラム等で組み込み関数__init_tfu()を用いて演算器を初期化してください。初期化を行わなかった場合の動作は保証しません。

-

三角関数演算器を搭載していないデバイスでは本オプションは指定しないでください。