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

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • BasicCompiler64/Compile_Set_Var.cpp

    r64 r66  
    333333    SetWholeVariable( sizeof(char), DEF_BYTE, pRelative);
    334334}
    335 void SetWholeVariable(int var_size,int type,RELATIVE_VAR *pRelative){
     335void SetWholeVariable(int varSize,int type,RELATIVE_VAR *pRelative){
    336336    if(type==DEF_DOUBLE){
    337337        //Double型
     
    349349        //その他の整数
    350350
    351         if(var_size==sizeof(_int64)){
     351        if(varSize==sizeof(_int64)){
    352352            //レジスタの値を64ビット(rax)に拡張する
    353353            ExtendTypeTo64(type,REG_RAX);
    354354        }
    355         else if(var_size==sizeof(long)){
     355        else if(varSize==sizeof(long)){
    356356            //レジスタの値を32ビット(eax)に拡張する
    357357            ExtendTypeTo32(type,REG_RAX);
    358358        }
    359         else if(var_size==sizeof(short)){
     359        else if(varSize==sizeof(short)){
    360360            //レジスタの値を16ビット(ax)に拡張する
    361361            ExtendTypeTo16(type,REG_RAX);
     
    367367        if(pRelative->bOffsetOffset){
    368368            //mov ptr[r11+offset],rax/eax/ax/al
    369             op_mov_MR(var_size,REG_RAX,REG_R11,(int)pRelative->offset,MOD_BASE_DISP32);
     369            op_mov_MR(varSize,REG_RAX,REG_R11,(int)pRelative->offset,MOD_BASE_DISP32);
    370370            obp-=sizeof(long);
    371371            pobj_GlobalVarSchedule->add();
     
    374374        else{
    375375            //mov ptr[offset],rax/eax/ax/al
    376             op_mov_MR(var_size,REG_RAX,0,(int)pRelative->offset,MOD_DISP32);
     376            op_mov_MR(varSize,REG_RAX,0,(int)pRelative->offset,MOD_DISP32);
    377377            obp-=sizeof(long);
    378378            pobj_GlobalVarSchedule->add();
     
    401401        if(pRelative->bOffsetOffset){
    402402            //mov ptr[rsp+r11+offset],rax/eax/ax/al
    403             op_mov_MR_ex(var_size,REG_RAX,REG_RSP,REG_R11,(int)pRelative->offset,USE_OFFSET);
     403            op_mov_MR_ex(varSize,REG_RAX,REG_RSP,REG_R11,(int)pRelative->offset,USE_OFFSET);
    404404            obp-=sizeof(long);
    405405            AddLocalVarAddrSchedule();
     
    408408        else{
    409409            //mov ptr[rsp+offset],rax/eax/ax/al
    410             op_mov_MR(var_size,REG_RAX,REG_RSP,(int)pRelative->offset,MOD_BASE_DISP32);
     410            op_mov_MR(varSize,REG_RAX,REG_RSP,(int)pRelative->offset,MOD_BASE_DISP32);
    411411            obp-=sizeof(long);
    412412            AddLocalVarAddrSchedule();
     
    436436
    437437        //mov ptr[r11],rax/eax/ax/al
    438         op_mov_MR(var_size,REG_RAX,REG_R11,0,MOD_BASE);
    439     }
    440 }
     438        op_mov_MR(varSize,REG_RAX,REG_R11,0,MOD_BASE);
     439    }
     440}
Note: See TracChangeset for help on using the changeset viewer.