Ignore:
Timestamp:
Jul 30, 2007, 4:12:54 PM (17 years ago)
Author:
dai_9181
Message:
 
File:
1 edited

Legend:

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

    r250 r253  
    963963
    964964        //mov dword ptr[ebp+offset+sizeof(long)],eax
    965         compiler.codeGenerator.op_mov_MR( sizeof(long), REG_EAX, REG_EBP, offset+sizeof(long), MOD_BASE_DISP32, Schedule::LocalVar );
     965        compiler.codeGenerator.localVarPertialSchedules.push_back(
     966            compiler.codeGenerator.op_mov_MR( sizeof(long), REG_EAX, REG_EBP, offset+sizeof(long), MOD_BASE_DISP32, Schedule::None, true )
     967        );
    966968
    967969        //mov eax,LOLONG(dbl)
     
    969971
    970972        //mov dword ptr[ebp+offset],eax
    971         compiler.codeGenerator.op_mov_MR( sizeof(long), REG_EAX, REG_EBP, offset, MOD_BASE_DISP32, Schedule::LocalVar );
     973        compiler.codeGenerator.localVarPertialSchedules.push_back(
     974            compiler.codeGenerator.op_mov_MR( sizeof(long), REG_EAX, REG_EBP, offset, MOD_BASE_DISP32, Schedule::None, true )
     975        );
    972976    }
    973977    else if( type.IsSingle() ){
     
    979983
    980984        //mov dword ptr[ebp+offset],eax
    981         compiler.codeGenerator.op_mov_MR( sizeof(long), REG_EAX, REG_EBP, offset, MOD_BASE_DISP32, Schedule::LocalVar );
     985        compiler.codeGenerator.localVarPertialSchedules.push_back(
     986            compiler.codeGenerator.op_mov_MR( sizeof(long), REG_EAX, REG_EBP, offset, MOD_BASE_DISP32, Schedule::None, true )
     987        );
    982988    }
    983989    else if( type.Is64() ){
     
    986992
    987993        //mov dword ptr[ebp+offset+sizeof(long)],eax
    988         compiler.codeGenerator.op_mov_MR( sizeof(long), REG_EAX, REG_EBP, offset+sizeof(long), MOD_BASE_DISP32, Schedule::LocalVar );
     994        compiler.codeGenerator.localVarPertialSchedules.push_back(
     995            compiler.codeGenerator.op_mov_MR( sizeof(long), REG_EAX, REG_EBP, offset+sizeof(long), MOD_BASE_DISP32, Schedule::None, true )
     996        );
    989997
    990998        //mov eax,LOLONG(i64data)
     
    9921000
    9931001        //mov dword ptr[ebp+offset],eax
    994         compiler.codeGenerator.op_mov_MR( sizeof(long), REG_EAX, REG_EBP, offset, MOD_BASE_DISP32, Schedule::LocalVar );
     1002        compiler.codeGenerator.localVarPertialSchedules.push_back(
     1003            compiler.codeGenerator.op_mov_MR( sizeof(long), REG_EAX, REG_EBP, offset, MOD_BASE_DISP32, Schedule::None, true )
     1004        );
    9951005    }
    9961006    else if( type.IsDWord() || type.IsLong() || type.IsPointer() ){
     
    10121022
    10131023        //mov dword ptr[ebp+offset],eax
    1014         compiler.codeGenerator.op_mov_MR( sizeof(long), REG_EAX, REG_EBP, offset, MOD_BASE_DISP32, Schedule::LocalVar );
     1024        compiler.codeGenerator.localVarPertialSchedules.push_back(
     1025            compiler.codeGenerator.op_mov_MR( sizeof(long), REG_EAX, REG_EBP, offset, MOD_BASE_DISP32, Schedule::None, true )
     1026        );
    10151027    }
    10161028    else if( type.IsWord() || type.IsInteger() ){
    10171029        //mov word ptr[ebp+offset],InitValue
    1018         compiler.codeGenerator.op_mov_MV( sizeof(short), REG_EBP, offset, Schedule::LocalVar, (long)i64data );
     1030        compiler.codeGenerator.localVarPertialSchedules.push_back(
     1031            compiler.codeGenerator.op_mov_MV( sizeof(short), REG_EBP, offset, Schedule::None, true, (long)i64data )
     1032        );
    10191033    }
    10201034    else if( type.IsSByte() || type.IsByte() || type.IsBoolean() ){
    10211035        //mov byte ptr[ebp+offset],InitValue
    1022         compiler.codeGenerator.op_mov_MV( sizeof(char), REG_EBP, offset, Schedule::LocalVar, (long)i64data );
     1036        compiler.codeGenerator.localVarPertialSchedules.push_back(
     1037            compiler.codeGenerator.op_mov_MV( sizeof(char), REG_EBP, offset, Schedule::None, true, (long)i64data )
     1038        );
    10231039    }
    10241040
     
    11301146
    11311147            //add eax,offset
    1132             compiler.codeGenerator.op_add_RV( REG_EAX, -pVar->GetOffsetAddress(), Schedule::LocalVar );
     1148            compiler.codeGenerator.localVarPertialSchedules.push_back(
     1149                compiler.codeGenerator.op_add_RV( REG_EAX, -pVar->GetOffsetAddress(), Schedule::None, true )
     1150            );
    11331151
    11341152            //push eax
     
    11931211        if(pRelativeVar->bOffsetOffset){
    11941212            //add ecx,offset
    1195             compiler.codeGenerator.op_add_RV( REG_ECX, pRelativeVar->offset, Schedule::LocalVar );
     1213            compiler.codeGenerator.localVarPertialSchedules.push_back(
     1214                compiler.codeGenerator.op_add_RV( REG_ECX, pRelativeVar->offset, Schedule::None, true )
     1215            );
    11961216
    11971217            //lea eax,dword ptr[ebp+ecx]
     
    12051225        else{
    12061226            //lea eax,dword ptr[ecx+offset]
    1207             compiler.codeGenerator.op_lea_RM( REG_EAX, REG_EBP, pRelativeVar->offset, MOD_BASE_DISP32, Schedule::LocalVar );
     1227            compiler.codeGenerator.localVarPertialSchedules.push_back(
     1228                compiler.codeGenerator.op_lea_RM( REG_EAX, REG_EBP, pRelativeVar->offset, MOD_BASE_DISP32, Schedule::None, true )
     1229            );
    12081230        }
    12091231    }
     
    12141236
    12151237            //add eax,dword ptr[ebp+offset]
    1216             compiler.codeGenerator.op_add_RM( sizeof(long), REG_EAX, REG_EBP, pRelativeVar->offset, MOD_BASE_DISP32, Schedule::LocalVar );
     1238            compiler.codeGenerator.localVarPertialSchedules.push_back(
     1239                compiler.codeGenerator.op_add_RM( sizeof(long), REG_EAX, REG_EBP, pRelativeVar->offset, MOD_BASE_DISP32, Schedule::None, true )
     1240            );
    12171241        }
    12181242        else{
    12191243            //mov eax,dword ptr[ebp+offset]
    1220             compiler.codeGenerator.op_mov_RM( sizeof(long), REG_EAX, REG_EBP, pRelativeVar->offset, MOD_BASE_DISP32, Schedule::LocalVar );
     1244            compiler.codeGenerator.localVarPertialSchedules.push_back(
     1245                compiler.codeGenerator.op_mov_RM( sizeof(long), REG_EAX, REG_EBP, pRelativeVar->offset, MOD_BASE_DISP32, Schedule::None, true )
     1246            );
    12211247        }
    12221248    }
Note: See TracChangeset for help on using the changeset viewer.