Changeset 342 in dev for trunk/abdev/BasicCompiler32/Compile_Func.cpp
- Timestamp:
- Oct 9, 2007, 1:10:33 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler32/Compile_Func.cpp
r339 r342 274 274 // ->func3 275 275 276 // vtblマスターリストのポインタを取得 276 277 //mov edx,dword ptr[ecx] 277 278 compiler.codeGenerator.op_mov_RM( sizeof(long), REG_EDX, REG_ECX, 0, MOD_BASE ); 278 279 int i2 = pobj_c->GetFuncNumInVtbl( &userProc ); 279 280 // vtblのポインタを取得 281 //mov edx,dword ptr[edx+vtblMasterListIndex] 282 int vtblMasterListIndex = pobj_c->GetVtblMasterListIndex( &userProc ); 283 compiler.codeGenerator.op_mov_RM( sizeof(long), REG_EDX, REG_EDX, vtblMasterListIndex, MOD_BASE_DISP32 ); 284 285 int vtblIndex = pobj_c->GetFuncNumInVtbl( &userProc ); 280 286 281 287 //mov eax,dword ptr[edx+func_index] 282 if(i2*PTR_SIZE<=0x7F){ 283 compiler.codeGenerator.op_mov_RM(sizeof(long),REG_EAX,REG_EDX,i2*PTR_SIZE,MOD_BASE_DISP8); 288 if( vtblIndex * PTR_SIZE <= 0x7F ) 289 { 290 compiler.codeGenerator.op_mov_RM(sizeof(long),REG_EAX,REG_EDX,vtblIndex*PTR_SIZE,MOD_BASE_DISP8); 284 291 } 285 292 else{ 286 compiler.codeGenerator.op_mov_RM(sizeof(long),REG_EAX,REG_EDX, i2*PTR_SIZE,MOD_BASE_DISP32);293 compiler.codeGenerator.op_mov_RM(sizeof(long),REG_EAX,REG_EDX,vtblIndex*PTR_SIZE,MOD_BASE_DISP32); 287 294 } 288 295 }
Note:
See TracChangeset
for help on using the changeset viewer.