Changeset 308 in dev for trunk/abdev/BasicCompiler32/MakePeHdr.cpp
- Timestamp:
- Aug 29, 2007, 9:05:22 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler32/MakePeHdr.cpp
r294 r308 7 7 #include <jenga/include/smoothie/Smoothie.h> 8 8 9 #include <LexicalScope.h>10 9 #include <Class.h> 11 10 #include <Compiler.h> 12 #include <NamespaceSupporter.h>13 11 14 12 #include <../Enum.h> … … 18 16 #include "Opcode.h" 19 17 20 extern int GlobalOpBufferSize;21 22 18 23 19 //////////////////////////// … … 28 24 const UserProc 29 25 *pSub_System_StartupProgram, 26 *pSub_System_GlobalArea, 30 27 *pSub_DebugSys_StartProc, 31 28 *pSub_DebugSys_EndProc, … … 106 103 107 104 108 void DebugVariable(void){109 char temporary[255];110 if( compiler.GetObjectModule().meta.GetGlobalVars().Find( Symbol( "_DebugSys_dwThreadID" ) ) == NULL )111 {112 // 未定義の場合は定義する113 sprintf(temporary,"_DebugSys_dwThreadID[255]%c%cDWord",1,ESC_AS);114 OpcodeDim(temporary,DIMFLAG_INITDEBUGVAR);115 sprintf(temporary,"_DebugSys_ProcNum[255]%c%cDWord",1,ESC_AS);116 OpcodeDim(temporary,DIMFLAG_INITDEBUGVAR);117 sprintf(temporary,"_DebugSys_lplpObp[255]%c%c*ULONG_PTR",1,ESC_AS);118 OpcodeDim(temporary,DIMFLAG_INITDEBUGVAR);119 sprintf(temporary,"_DebugSys_lplpSpBase[255]%c%c*ULONG_PTR",1,ESC_AS);120 OpcodeDim(temporary,DIMFLAG_INITDEBUGVAR);121 }122 }123 124 105 void Compile(void){ 125 106 extern HWND hMainDlg; … … 220 201 pSub_System_StartupProgram->Using(); 221 202 203 if(pSub_System_GlobalArea=GetSubHash(compiler.globalAreaProcName.c_str(),1)) 204 { 205 pSub_System_GlobalArea->Using(); 206 pSub_System_GlobalArea->ThisIsAutoGenerationProc(); 207 } 208 222 209 if(pSub_DebugSys_StartProc=GetSubHash("_DebugSys_StartProc",1)) 223 210 pSub_DebugSys_StartProc->Using(); … … 392 379 if(bDebugCompile) 393 380 { 394 // デバッグ用の変数を定義381 // デバッグ用の変数を定義 395 382 DebugVariable(); 396 383 } 397 384 398 // GC用の変数を定義385 // GC用の変数を定義 399 386 InitGCVariables(); 400 387 401 // _System_StartupProgramの呼び出し388 // _System_StartupProgram の呼び出し 402 389 compiler.codeGenerator.op_call(pSub_System_StartupProgram); 403 390 } 404 391 405 //クラスに属する静的メンバを定義 406 compiler.GetObjectModule().meta.GetClasses().InitStaticMember(); 407 408 //グローバル実行領域をコンパイル開始 409 CompileBuffer(0,0); 410 411 //Goto未知ラベルスケジュールが存在したらエラーにする 412 BOOST_FOREACH( const GotoLabelSchedule *pGotoLabelSchedule, compiler.codeGenerator.gotoLabelSchedules ) 413 { 414 if(pGotoLabelSchedule->GetName().size()>0){ 415 SetError(6,pGotoLabelSchedule->GetName(),pGotoLabelSchedule->GetSourceCodePos()); 416 } 417 else{ 418 sprintf(temporary,"%d",pGotoLabelSchedule->GetLineNum()); 419 SetError(6,temporary,pGotoLabelSchedule->GetSourceCodePos()); 420 } 421 } 422 392 // _System_GlobalArea の呼び出し 393 compiler.codeGenerator.op_call( pSub_System_GlobalArea ); 423 394 424 395 if( !compiler.IsStaticLibrary() ) … … 444 415 445 416 //グローバル実行領域のコードサイズ 417 extern int GlobalOpBufferSize; 446 418 GlobalOpBufferSize = compiler.linker.GetNativeCode().GetSize(); 447 419
Note:
See TracChangeset
for help on using the changeset viewer.