Changeset 66 in dev for BasicCompiler32/Compile_Calc.cpp


Ignore:
Timestamp:
Mar 9, 2007, 4:59:13 AM (17 years ago)
Author:
dai_9181
Message:

参照型の整数型パラメータに実数を代入すると「内部エラー」になってしまうバグを修正。
参照型の整数型にリテラル値を直接指定すると「内部エラー」になってしまうバグを修正。
バージョンをβ15にした。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • BasicCompiler32/Compile_Calc.cpp

    r64 r66  
    223223
    224224        //fistp qword ptr[esp]
    225         fpu_cast();
    226         OpBuffer[obp++]=(char)0xDF;
    227         OpBuffer[obp++]=(char)0x3C;
    228         OpBuffer[obp++]=(char)0x24;
    229         fpu_cast_end();
     225        op_fistp_ptr_esp( sizeof(_int64) );
    230226    }
    231227    else if(OldType==DEF_SINGLE){
     
    237233
    238234        //fistp qword ptr[esp]
    239         fpu_cast();
    240         OpBuffer[obp++]=(char)0xDF;
    241         OpBuffer[obp++]=(char)0x3C;
    242         OpBuffer[obp++]=(char)0x24;
    243         fpu_cast_end();
     235        op_fistp_ptr_esp( sizeof(_int64) );
    244236    }
    245237    else if(IsWholeNumberType(OldType)){
     
    288280
    289281        //fistp dword ptr[esp]
    290         fpu_cast();
    291         OpBuffer[obp++]=(char)0xDB;
    292         OpBuffer[obp++]=(char)0x1C;
    293         OpBuffer[obp++]=(char)0x24;
    294         fpu_cast_end();
     282        op_fistp_ptr_esp( sizeof(long) );
    295283    }
    296284    else if(OldType==DEF_SINGLE){
     
    299287
    300288        //fistp dword ptr[esp]
    301         fpu_cast();
    302         OpBuffer[obp++]=(char)0xDB;
    303         OpBuffer[obp++]=(char)0x1C;
    304         OpBuffer[obp++]=(char)0x24;
    305         fpu_cast_end();
     289        op_fistp_ptr_esp( sizeof(long) );
    306290    }
    307291    else if(OldType==DEF_INT64||OldType==DEF_QWORD){
Note: See TracChangeset for help on using the changeset viewer.