Changeset 121 in dev


Ignore:
Timestamp:
May 13, 2007, 9:06:02 AM (18 years ago)
Author:
dai_9181
Message:

[32bitコンパイラ]ByRef指定のInteger/Byte型のローカル変数に値を代入すると強制終了してしまうバグを修正。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • BasicCompiler32/Compile_Set_Var.cpp

    r96 r121  
    333333    }
    334334    else if(pRelative->dwKind==VAR_REFGLOBAL){
     335        // 今は使われていない
     336        SetError();
     337
    335338        if(pRelative->bOffsetOffset){
    336339            //add ecx,qword ptr[offset]
     
    362365    else if(pRelative->dwKind==VAR_REFLOCAL){
    363366        if(pRelative->bOffsetOffset){
    364             //add ecx,qword ptr[ebp+offset]
    365             op_add_RM(varSize,REG_ECX,REG_EBP,(int)pRelative->offset,MOD_BASE_DISP32);
    366         }
    367         else{
    368             //mov ecx,qword ptr[ebp+offset]
    369             op_mov_RM(varSize,REG_ECX,REG_EBP,(int)pRelative->offset,MOD_BASE_DISP32);
     367            //add ecx,ptr[ebp+offset]
     368            op_add_RM(PTR_SIZE,REG_ECX,REG_EBP,(int)pRelative->offset,MOD_BASE_DISP32);
     369        }
     370        else{
     371            //mov ecx,ptr[ebp+offset]
     372            op_mov_RM(PTR_SIZE,REG_ECX,REG_EBP,(int)pRelative->offset,MOD_BASE_DISP32);
    370373        }
    371374        obp-=sizeof(long);
Note: See TracChangeset for help on using the changeset viewer.