Ignore:
Timestamp:
Jul 24, 2007, 7:11:26 PM (17 years ago)
Author:
dai_9181
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/abdev/BasicCompiler32/Compile_Set_Var.cpp

    r225 r230  
    9595        if(pRelativeVar->bOffsetOffset){
    9696            //fstp ptr[ecx+offset]
    97             compiler.codeGenerator.op_fstp_base_offset(VarType,REG_ECX,(int)pRelativeVar->offset);
    98             obp-=sizeof(long);
    99             pobj_GlobalVarSchedule->add();
    100             obp+=sizeof(long);
     97            compiler.codeGenerator.op_fstp_base_offset(VarType,REG_ECX,(int)pRelativeVar->offset, Schedule::GlobalVar );
    10198        }
    10299        else{
    103100            //mov ecx,offset
    104             compiler.codeGenerator.op_mov_RV(REG_ECX,(int)pRelativeVar->offset);
    105             obp-=sizeof(long);
    106             pobj_GlobalVarSchedule->add();
    107             obp+=sizeof(long);
     101            compiler.codeGenerator.op_mov_RV(REG_ECX,(int)pRelativeVar->offset, Schedule::GlobalVar );
    108102
    109103            //fstp ptr[ecx]
     
    114108        if(pRelativeVar->bOffsetOffset){
    115109            //add ecx,qword ptr[offset]
    116             compiler.codeGenerator.op_add_RM(sizeof(long),REG_ECX,REG_NON,(int)pRelativeVar->offset,MOD_DISP32);
     110            compiler.codeGenerator.op_add_RM(sizeof(long),REG_ECX,REG_NON,(int)pRelativeVar->offset,MOD_DISP32, Schedule::GlobalVar );
    117111        }
    118112        else{
    119113            //mov ecx,qword ptr[offset]
    120             compiler.codeGenerator.op_mov_RM(sizeof(long),REG_ECX,REG_NON,(int)pRelativeVar->offset,MOD_DISP32);
    121         }
    122         obp-=sizeof(long);
    123         pobj_GlobalVarSchedule->add();
    124         obp+=sizeof(long);
     114            compiler.codeGenerator.op_mov_RM(sizeof(long),REG_ECX,REG_NON,(int)pRelativeVar->offset,MOD_DISP32, Schedule::GlobalVar );
     115        }
    125116
    126117        goto directmem;
     
    129120        if(pRelativeVar->bOffsetOffset){
    130121            //fstp ptr[ebp+ecx+offset]
    131             compiler.codeGenerator.op_fstp_base_offset_ex(VarType,REG_EBP,REG_ECX,(int)pRelativeVar->offset,USE_OFFSET);
     122            compiler.codeGenerator.op_fstp_base_offset_ex(VarType,REG_EBP,REG_ECX,(int)pRelativeVar->offset,USE_OFFSET, Schedule::LocalVar );
    132123        }
    133124        else{
    134125            //fstp ptr[ebp+offset]
    135             compiler.codeGenerator.op_fstp_base_offset(VarType,REG_EBP,(int)pRelativeVar->offset);
    136         }
    137         obp-=sizeof(long);
    138         AddLocalVarAddrSchedule();
    139         obp+=sizeof(long);
     126            compiler.codeGenerator.op_fstp_base_offset(VarType,REG_EBP,(int)pRelativeVar->offset, Schedule::LocalVar );
     127        }
    140128    }
    141129    else if(pRelativeVar->dwKind==VAR_REFLOCAL){
    142130        if(pRelativeVar->bOffsetOffset){
    143131            //add ecx,qword ptr[ebp+offset]
    144             compiler.codeGenerator.op_add_RM(sizeof(long),REG_ECX,REG_EBP,(int)pRelativeVar->offset,MOD_BASE_DISP32);
     132            compiler.codeGenerator.op_add_RM(sizeof(long),REG_ECX,REG_EBP,(int)pRelativeVar->offset,MOD_BASE_DISP32, Schedule::LocalVar );
    145133        }
    146134        else{
    147135            //mov ecx,qword ptr[ebp+offset]
    148             compiler.codeGenerator.op_mov_RM(sizeof(long),REG_ECX,REG_EBP,(int)pRelativeVar->offset,MOD_BASE_DISP32);
    149         }
    150         obp-=sizeof(long);
    151         AddLocalVarAddrSchedule();
    152         obp+=sizeof(long);
     136            compiler.codeGenerator.op_mov_RM(sizeof(long),REG_ECX,REG_EBP,(int)pRelativeVar->offset,MOD_BASE_DISP32, Schedule::LocalVar );
     137        }
    153138
    154139        goto directmem;
     
    328313        if(pRelative->bOffsetOffset){
    329314            //mov ptr[ecx+offset],eax/ax/al
    330             compiler.codeGenerator.op_mov_MR(varSize,REG_EAX,REG_ECX,(int)pRelative->offset,MOD_BASE_DISP32);
     315            compiler.codeGenerator.op_mov_MR(varSize,REG_EAX,REG_ECX,(int)pRelative->offset,MOD_BASE_DISP32, Schedule::GlobalVar );
    331316        }
    332317        else{
    333318            //mov ptr[offset],eax/ax/al
    334             compiler.codeGenerator.op_mov_MR(varSize,REG_EAX,0,(int)pRelative->offset,MOD_DISP32);
    335         }
    336         obp-=sizeof(long);
    337         pobj_GlobalVarSchedule->add();
    338         obp+=sizeof(long);
     319            compiler.codeGenerator.op_mov_MR(varSize,REG_EAX,0,(int)pRelative->offset,MOD_DISP32, Schedule::GlobalVar );
     320        }
    339321    }
    340322    else if(pRelative->dwKind==VAR_REFGLOBAL){
     
    344326        if(pRelative->bOffsetOffset){
    345327            //add ecx,qword ptr[offset]
    346             compiler.codeGenerator.op_add_RM(varSize,REG_ECX,REG_NON,(int)pRelative->offset,MOD_DISP32);
     328            compiler.codeGenerator.op_add_RM(varSize,REG_ECX,REG_NON,(int)pRelative->offset,MOD_DISP32, Schedule::GlobalVar );
    347329        }
    348330        else{
    349331            //mov ecx,qword ptr[offset]
    350             compiler.codeGenerator.op_mov_RM(varSize,REG_ECX,REG_NON,(int)pRelative->offset,MOD_DISP32);
    351         }
    352         obp-=sizeof(long);
    353         pobj_GlobalVarSchedule->add();
    354         obp+=sizeof(long);
     332            compiler.codeGenerator.op_mov_RM(varSize,REG_ECX,REG_NON,(int)pRelative->offset,MOD_DISP32, Schedule::GlobalVar );
     333        }
    355334
    356335        goto directmem;
     
    359338        if(pRelative->bOffsetOffset){
    360339            //mov ptr[ebp+ecx+offset],eax/ax/al
    361             compiler.codeGenerator.op_mov_MR_ex(varSize,REG_EAX,REG_EBP,REG_ECX,(int)pRelative->offset,USE_OFFSET);
     340            compiler.codeGenerator.op_mov_MR_ex(varSize,REG_EAX,REG_EBP,REG_ECX,(int)pRelative->offset,USE_OFFSET, Schedule::LocalVar );
    362341        }
    363342        else{
    364343            //mov ptr[ebp+offset],eax/ax/al
    365             compiler.codeGenerator.op_mov_MR(varSize,REG_EAX,REG_EBP,(int)pRelative->offset,MOD_BASE_DISP32);
    366         }
    367         obp-=sizeof(long);
    368         AddLocalVarAddrSchedule();
    369         obp+=sizeof(long);
     344            compiler.codeGenerator.op_mov_MR(varSize,REG_EAX,REG_EBP,(int)pRelative->offset,MOD_BASE_DISP32, Schedule::LocalVar );
     345        }
    370346    }
    371347    else if(pRelative->dwKind==VAR_REFLOCAL){
    372348        if(pRelative->bOffsetOffset){
    373349            //add ecx,ptr[ebp+offset]
    374             compiler.codeGenerator.op_add_RM(PTR_SIZE,REG_ECX,REG_EBP,(int)pRelative->offset,MOD_BASE_DISP32);
     350            compiler.codeGenerator.op_add_RM(PTR_SIZE,REG_ECX,REG_EBP,(int)pRelative->offset,MOD_BASE_DISP32, Schedule::LocalVar );
    375351        }
    376352        else{
    377353            //mov ecx,ptr[ebp+offset]
    378             compiler.codeGenerator.op_mov_RM(PTR_SIZE,REG_ECX,REG_EBP,(int)pRelative->offset,MOD_BASE_DISP32);
    379         }
    380         obp-=sizeof(long);
    381         AddLocalVarAddrSchedule();
    382         obp+=sizeof(long);
     354            compiler.codeGenerator.op_mov_RM(PTR_SIZE,REG_ECX,REG_EBP,(int)pRelative->offset,MOD_BASE_DISP32, Schedule::LocalVar );
     355        }
    383356
    384357        goto directmem;
Note: See TracChangeset for help on using the changeset viewer.