Changeset 28 in dev for BasicCompiler32/Compile_ProcOp.cpp
- Timestamp:
- Jan 8, 2007, 6:34:44 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
BasicCompiler32/Compile_ProcOp.cpp
r27 r28 554 554 //仮想関数テーブルを初期化 555 555 if(pobj_CompilingClass->vtbl_num&& 556 pobj_CompilingClass->Is HoldAbstractFunction()==0){557 //関数テーブルに値をセット558 offset=pobj_CompilingClass->GetVtblGlobalOffset();559 560 //mov eax,offset561 OpBuffer[obp++]=(char)0xB8;562 *((long *)(OpBuffer+obp))=offset;563 pobj_DataTableSchedule->add();564 obp+=sizeof(long);565 566 //Thisポインタをecxにコピー567 SetThisPtrToReg(REG_ECX);568 569 //mov dword ptr[ecx],eax570 OpBuffer[obp++]=(char)0x89;571 OpBuffer[obp++]=(char)0x01;556 pobj_CompilingClass->IsAbstract()==false){ 557 //関数テーブルに値をセット 558 offset=pobj_CompilingClass->GetVtblGlobalOffset(); 559 560 //mov eax,offset 561 OpBuffer[obp++]=(char)0xB8; 562 *((long *)(OpBuffer+obp))=offset; 563 pobj_DataTableSchedule->add(); 564 obp+=sizeof(long); 565 566 //Thisポインタをecxにコピー 567 SetThisPtrToReg(REG_ECX); 568 569 //mov dword ptr[ecx],eax 570 OpBuffer[obp++]=(char)0x89; 571 OpBuffer[obp++]=(char)0x01; 572 572 } 573 573 }
Note:
See TracChangeset
for help on using the changeset viewer.