Changeset 66 in dev for BasicCompiler32/op32_main.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/op32_main.cpp

    r64 r66  
    838838        //ベースレジスタ
    839839        OpBuffer[obp++]=(char)(REGISTER_OPERAND(base_reg1)<<3 | REGISTER_OPERAND(base_reg2));
     840    }
     841}
     842void op_fistp_ptr_esp( int typeSize ){
     843    if( typeSize == sizeof(_int64) ){
     844        //64bit
     845
     846        //fistp qword ptr[esp]
     847        fpu_cast();
     848        OpBuffer[obp++]=(char)0xDF;
     849        OpBuffer[obp++]=(char)0x3C;
     850        OpBuffer[obp++]=(char)0x24;
     851        fpu_cast_end();
     852    }
     853    else if( typeSize == sizeof(long) ){
     854        //32bit
     855
     856        //fistp dword ptr[esp]
     857        fpu_cast();
     858        OpBuffer[obp++]=(char)0xDB;
     859        OpBuffer[obp++]=(char)0x1C;
     860        OpBuffer[obp++]=(char)0x24;
     861        fpu_cast_end();
     862    }
     863    else{
     864        SetError();
    840865    }
    841866}
Note: See TracChangeset for help on using the changeset viewer.