<コンパイル・オプション / 最適化オプション>
[指定形式]
[詳細説明]
-  | 本オプション選択時は、次の浮動小数点の型変換を行う生成コードが変化します。  | 
 
a) 32bit浮動小数点型から符号無し整数型への変換
b) 符号無し整数型から32bit浮動小数点型への変換
c) 32bit浮動小数点型を経由した、整数型から64bit浮動小数点型への変換
[例]
< a) 32bit浮動小数点型から符号無し整数型への変換>
-fpuの指定が有効でない場合は該当しません。
unsigned long func1(float f) 
{
    return ((unsigned long)f); 
} 
  
オプション非指定時: 
 _func1: 
         FCMP   #4F000000H,R1 
         BLT    L12 
         FADD   #0CF800000H,R1 
 L12: 
         FTOI   R1,R1 
         RTS 
  
オプション指定時: 
 _func1: 
         FTOI   R1,R1 
         RTS 
 | 
 
< b) 符号無し整数型から32bit浮動小数点型への変換>
-fpuの指定が有効でない場合は該当しません。
float func2(unsigned long u) 
{
       return ((float)u); 
} 
  
オプション非指定時: 
 _func2: 
         BTST   #31,R1 
         BEQ    L15 
         SHLR   #1,R1,R14 
         AND    #1,R1 
         OR     R14,R1 
         ITOF   R1,R1 
         FADD   R1,R1 
         BRA    L16 
 L15: 
         ITOF   R1,R1 
 L16: 
         RTS 
  
オプション指定時: 
 _func2: 
         ITOF   R1,R1 
         RTS 
 | 
 
< c) 32bit浮動小数点型を経由した、整数型から64bit浮動小数点型への変換>
-dbl_size=8の指定が有効でない場合は該当しません。
 double func3(long l) 
 {
       return (double)(float)l; 
 } 
オプション非指定時: 
_func3: 
        ITOF    R1,R1 
        BRA    __COM_CONVfd 
  
オプション指定時: 
        BRA    __COM_CONV32sd 
  
 | 
 
[備考]
-  | 本オプション指定時、該当する型変換の処理に対するコード性能は向上しますが、変換結果がC,C++言語規格と異なる場合がありますので、ご注意ください。  | 
 
-  |  -optimize=0のとき c)は無効になります。   |