Ignore:
Timestamp:
Jun 16, 2008, 12:12:06 AM (16 years ago)
Author:
dai_9181
Message:

[636][637][640][641][642]を64bit版にマージ。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/abdev/compiler_x64/Compile_ProcOp.cpp

    r633 r643  
    2222        }
    2323
    24         const UserProc *pBackUserProc;
    25         pBackUserProc = &compiler.GetCompilingUserProc();
    26         compiler.StartGlobalAreaCompile();
    27 
    2824        int BackCp;
    2925        BackCp=cp;
     
    5955        compiler.codeGenerator.opfix( pStackFramePertialSchedule, pobj_sf->GetFrameSize(0) );
    6056
    61         compiler.SetCompilingUserProc( pBackUserProc );
    6257        cp=BackCp;
    6358
     
    9792        compiler.codeGenerator.op_ret();
    9893    }
    99     else if( userProc.GetName() == "_System_Call_Destructor_of_GlobalObject" ){
     94    else if( userProc.GetName() == "_System_Call_Destructor_of_GlobalObject" )
     95    {
    10096        //sub rsp,8(※RSPを16バイト境界にあわせるため)
    10197        compiler.codeGenerator.op_sub_rsp(0x8);
    102 
    103         const UserProc *pBackUserProc;
    104         pBackUserProc = &compiler.GetCompilingUserProc();
    105         compiler.StartGlobalAreaCompile();
    106 
    10798        compiler.codeGenerator.lexicalScopes.CallDestructorsOfScopeEnd();
    108 
    109         compiler.SetCompilingUserProc( pBackUserProc );
    110 
    11199
    112100        //add rsp,8
     
    143131        Compile_AddGlobalRootsForGc();
    144132    }
    145     else if( userProc.GetName() == compiler.globalAreaProcName ){
     133    else if( userProc.GetName() == compiler.globalAreaProcName )
     134    {
    146135        ////////////////////////////////////////
    147136        // グローバル領域をコンパイル
     
    149138
    150139        UserProc::pGlobalProc = &userProc;
    151 
    152         const UserProc *pBackUserProc = &compiler.GetCompilingUserProc();
    153         compiler.StartGlobalAreaCompile();
    154140
    155141        int BackCp = cp;
     
    177163        }
    178164
    179         compiler.SetCompilingUserProc( pBackUserProc );
    180165        cp=BackCp;
    181166    }
     
    217202    pUserProc->CompleteCompile();
    218203
    219     extern BOOL bSystemProc;
    220     if(memcmp(pUserProc->GetName().c_str(),"_System_",8)==0) bSystemProc=1;
    221     else bSystemProc=0;
    222 
    223204    extern BOOL bDebugSupportProc;
    224205    if(memcmp(pUserProc->GetName().c_str(),"_DebugSys_",10)==0){
     
    233214    compiler.StartProcedureCompile( pUserProc );
    234215
    235     if(pUserProc->IsSystem()){
     216    if(pUserProc->IsAutoGenerationSystem()){
    236217        ////////////////////
    237218        // 特殊関数
     
    256237    if( !pUserProc->IsAutoGeneration() )
    257238    {
     239        // 対象のソースコードを含むオブジェクトモジュールのインデックスを指定する
     240        // ※テンプレート展開がされている場合、対象のソースコードが現在のオブジェクトモジュールではない場合がある
     241        compiler.SetCurrentRelationalObjectModuleIndexForSource( pUserProc->GetSourceCodePosition().GetRelationalObjectModuleIndex() );
     242        basbuf = const_cast<char *>(compiler.GetCurrentSource().GetBuffer());
     243
    258244        cp=pUserProc->GetSourceCodePosition().GetPos();
    259245        for(;;cp++){
Note: See TracChangeset for help on using the changeset viewer.