Changeset 259 in dev for trunk/abdev/BasicCompiler32
- Timestamp:
- Aug 3, 2007, 3:24:22 AM (17 years ago)
- Location:
- trunk/abdev/BasicCompiler32
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler32/Compile_Object.cpp
r253 r259 16 16 //をセットしておかなければならない 17 17 18 //jnzのジャンプ先番地18 /* //jnzのジャンプ先番地 19 19 extern int obp; 20 int jnz_back = obp; 20 int jnz_back = obp;*/ 21 21 22 22 if(bSomeObjects){ … … 24 24 25 25 //push ebx 26 compiler.codeGenerator.op_push(REG_EBX);26 //compiler.codeGenerator.op_push(REG_EBX); 27 27 } 28 28 … … 78 78 79 79 if(bSomeObjects){ 80 /* 80 81 //pop ebx 81 82 compiler.codeGenerator.op_pop(REG_EBX); … … 89 90 //jne ↑ 90 91 compiler.codeGenerator.op_jne( jnz_back-obp, sizeof(long), false, true ); 92 */ 91 93 } 92 94 } … … 261 263 262 264 //jnzの番地 263 extern int obp;264 int jnz_back = obp; 265 /*extern int obp; 266 int jnz_back = obp;*/ 265 267 266 268 //push ecx … … 289 291 290 292 //jne ↑ 291 compiler.codeGenerator.op_jne( jnz_back-obp, sizeof(long), false, true );293 //compiler.codeGenerator.op_jne( jnz_back-obp, sizeof(long), false, true ); 292 294 293 295 -
trunk/abdev/BasicCompiler32/Compile_ProcOp.cpp
r256 r259 264 264 265 265 extern int obp; 266 pUserProc-> SetBeginOpAddress( obp );266 pUserProc->_beginOpAddressOld = obp; 267 267 268 268 //コンパイル中の関数が属するクラス … … 294 294 SystemProc(*pUserProc); 295 295 296 pUserProc-> SetEndOpAddress( obp );296 pUserProc->_endOpAddressOld = obp; 297 297 return; 298 298 } … … 737 737 738 738 739 pUserProc-> SetEndOpAddress( obp );739 pUserProc->_endOpAddressOld = obp; 740 740 741 741 -
trunk/abdev/BasicCompiler32/MakePeHdr.cpp
r258 r259 554 554 vector<ObjectModule *> masterObjectModules; 555 555 masterObjectModules.push_back( &compiler.objectModule ); 556 //compiler.linker.Link( masterObjectModules );556 compiler.linker.Link( masterObjectModules ); 557 557 558 558 … … 704 704 705 705 if( pUserProc->GetName() == "DllMain" ){ 706 DllMain_EntryPoint=pUserProc-> GetBeginOpAddress();706 DllMain_EntryPoint=pUserProc->_beginOpAddressOld; 707 707 } 708 708 709 709 lpdwExportAddressTable=(DWORD *)HeapReAlloc(hHeap,0,lpdwExportAddressTable,(ExportNum+1)*sizeof(DWORD)); 710 lpdwExportAddressTable[ExportNum]=pUserProc-> GetBeginOpAddress();710 lpdwExportAddressTable[ExportNum]=pUserProc->_beginOpAddressOld; 711 711 712 712 lpdwExportNamePointerTable=(DWORD *)HeapReAlloc(hHeap,0,lpdwExportNamePointerTable,(ExportNum+1)*sizeof(DWORD)); … … 1177 1177 // プロシージャポインタスケジュール 1178 1178 for(i=0;i<pobj_SubAddrSchedule->num;i++){ 1179 if(pobj_SubAddrSchedule->ppsi[i]-> GetBeginOpAddress()==01180 &&pobj_SubAddrSchedule->ppsi[i]-> GetEndOpAddress()==0){1179 if(pobj_SubAddrSchedule->ppsi[i]->_beginOpAddressOld==0 1180 &&pobj_SubAddrSchedule->ppsi[i]->_endOpAddressOld==0){ 1181 1181 SetError(300,NULL,-1); 1182 1182 } … … 1184 1184 if(pobj_SubAddrSchedule->pbCall[i]){ 1185 1185 *((long *)(OpBuffer+pobj_SubAddrSchedule->pObpValues[i]))= 1186 pobj_SubAddrSchedule->ppsi[i]-> GetBeginOpAddress()-(pobj_SubAddrSchedule->pObpValues[i]+sizeof(long));1186 pobj_SubAddrSchedule->ppsi[i]->_beginOpAddressOld-(pobj_SubAddrSchedule->pObpValues[i]+sizeof(long)); 1187 1187 } 1188 1188 else{ 1189 1189 *((long *)(OpBuffer+pobj_SubAddrSchedule->pObpValues[i]))= 1190 pobj_SubAddrSchedule->ppsi[i]-> GetBeginOpAddress()+ImageBase+MemPos_CodeSection;1190 pobj_SubAddrSchedule->ppsi[i]->_beginOpAddressOld+ImageBase+MemPos_CodeSection; 1191 1191 } 1192 1192 } -
trunk/abdev/BasicCompiler32/NumOpe.cpp
r256 r259 677 677 //リテラル値のみの計算かどうかを判別するためのフラグ 678 678 BOOL bLiteralCalculation=1; 679 680 //リテラル演算の場合を考慮した演算前のバッファ位置681 extern int obp;682 int BeforeObp = obp;683 679 684 680 //リテラル演算の場合を考慮した演算前のプロシージャスケジュール位置
Note:
See TracChangeset
for help on using the changeset viewer.