Changeset 585 in dev for trunk/ab5.0/abdev/compiler_x64


Ignore:
Timestamp:
May 10, 2008, 1:40:33 PM (16 years ago)
Author:
dai_9181
Message:

NativeSectionクラスを追加(64bit版だけ一旦コミット)。

Location:
trunk/ab5.0/abdev/compiler_x64
Files:
6 edited

Legend:

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

    r584 r585  
    132132    if(resultType.IsDouble()){
    133133        double dbl=0;
    134         offset=compiler.GetObjectModule().dataTable.Add( dbl );
     134        offset=compiler.GetObjectModule().nativeSection.dataTable.Add( dbl );
    135135
    136136        //comisd xmm0,qword ptr[data table offset]
     
    149149    else if(resultType.IsSingle()){
    150150        float flt=0;
    151         offset=compiler.GetObjectModule().dataTable.Add( flt );
     151        offset=compiler.GetObjectModule().nativeSection.dataTable.Add( flt );
    152152
    153153        //comiss xmm0,dword ptr[data table offset]
  • trunk/ab5.0/abdev/compiler_x64/Compile_Var.cpp

    r584 r585  
    884884            char *temp;
    885885            temp=(char *)i64data;
    886             i2=compiler.GetObjectModule().dataTable.AddString( temp );
     886            i2=compiler.GetObjectModule().nativeSection.dataTable.AddString( temp );
    887887            HeapDefaultFree(temp);
    888888
     
    10531053            char *temp;
    10541054            temp=(char *)i64data;
    1055             i2=compiler.GetObjectModule().dataTable.AddString( temp );
     1055            i2=compiler.GetObjectModule().nativeSection.dataTable.AddString( temp );
    10561056            HeapDefaultFree(temp);
    10571057
  • trunk/ab5.0/abdev/compiler_x64/MakePeHdr.cpp

    r584 r585  
    115115    if( compiler.IsDebug() )
    116116    {
    117         compiler.GetObjectModule().dataTable.Add( (long)0x00000002 );
     117        compiler.GetObjectModule().nativeSection.dataTable.Add( (long)0x00000002 );
    118118    }
    119119
     
    133133    {
    134134        ActiveBasic::Compiler::LexicalAnalyzer::CollectEnums(
    135             compiler.GetObjectModule().GetCurrentSource().GetBuffer(),
     135            compiler.GetObjectModule().nativeSection.GetCurrentSource().GetBuffer(),
    136136            compiler.enumInfoCollection
    137137        );
     
    146146    // 名前空間情報を取得
    147147    ActiveBasic::Compiler::LexicalAnalyzer::CollectNamespaces(
    148         compiler.GetObjectModule().GetCurrentSource().GetBuffer(),
     148        compiler.GetObjectModule().nativeSection.GetCurrentSource().GetBuffer(),
    149149        compiler.GetObjectModule().meta.GetNamespaces()
    150150    );
     
    153153    {
    154154        ActiveBasic::Compiler::LexicalAnalyzer::CollectDelegates(
    155             compiler.GetObjectModule().GetCurrentSource().GetBuffer(),
     155            compiler.GetObjectModule().nativeSection.GetCurrentSource().GetBuffer(),
    156156            compiler.GetObjectModule().meta.GetDelegates()
    157157        );
     
    169169    //     ※オブジェクトの内容までは取得しない
    170170    ActiveBasic::Compiler::LexicalAnalyzer::CollectClassesForNameOnly(
    171         compiler.GetObjectModule().GetCurrentSource().GetBuffer(),
     171        compiler.GetObjectModule().nativeSection.GetCurrentSource().GetBuffer(),
    172172        compiler.GetObjectModule().meta.GetClasses()
    173173    );
     
    175175    //TypeDef情報を収集
    176176    ActiveBasic::Compiler::LexicalAnalyzer::CollectTypeDefs(
    177         compiler.GetObjectModule().GetCurrentSource().GetBuffer(),
     177        compiler.GetObjectModule().nativeSection.GetCurrentSource().GetBuffer(),
    178178        compiler.GetObjectModule().meta.GetTypeDefs()
    179179    );
     
    190190    //定数情報を取得
    191191    ActiveBasic::Compiler::LexicalAnalyzer::CollectConsts(
    192         compiler.GetObjectModule().GetCurrentSource().GetBuffer(),
     192        compiler.GetObjectModule().nativeSection.GetCurrentSource().GetBuffer(),
    193193        compiler.GetObjectModule().meta.GetGlobalConsts(),
    194194        compiler.GetObjectModule().meta.GetGlobalConstMacros()
     
    198198    compiler.SetCompilingClass( NULL );
    199199    ActiveBasic::Compiler::LexicalAnalyzer::CollectProcedures(
    200         compiler.GetObjectModule().GetCurrentSource().GetBuffer(),
     200        compiler.GetObjectModule().nativeSection.GetCurrentSource().GetBuffer(),
    201201        compiler.GetObjectModule().meta.GetUserProcs(),
    202202        compiler.GetObjectModule().meta.GetDllProcs()
     
    205205    // クラス情報を取得(※注 - CollectProceduresの後に呼び出す)
    206206    ActiveBasic::Compiler::LexicalAnalyzer::CollectClasses(
    207         compiler.GetObjectModule().GetCurrentSource().GetBuffer(),
     207        compiler.GetObjectModule().nativeSection.GetCurrentSource().GetBuffer(),
    208208        compiler.GetObjectModule().meta.GetClasses()
    209209    );
     
    369369
    370370        // コード生成対象を選択
    371         compiler.codeGenerator.Select( compiler.GetObjectModule().globalNativeCode );
     371        compiler.codeGenerator.Select( compiler.GetObjectModule().nativeSection.globalNativeCode );
    372372
    373373        trace_for_sourcecodestep( "★★★ グローバル領域のコンパイルを開始" );
     
    903903
    904904    //データセクションのファイル上のサイズ
    905     if(compiler.GetObjectModule().dataTable.GetSize()%FILE_ALIGNMENT) FileSize_DataSection=compiler.GetObjectModule().dataTable.GetSize()+(FILE_ALIGNMENT-compiler.GetObjectModule().dataTable.GetSize()%FILE_ALIGNMENT);
    906     else FileSize_DataSection=compiler.GetObjectModule().dataTable.GetSize();
     905    if(compiler.GetObjectModule().nativeSection.dataTable.GetSize()%FILE_ALIGNMENT) FileSize_DataSection=compiler.GetObjectModule().nativeSection.dataTable.GetSize()+(FILE_ALIGNMENT-compiler.GetObjectModule().nativeSection.dataTable.GetSize()%FILE_ALIGNMENT);
     906    else FileSize_DataSection=compiler.GetObjectModule().nativeSection.dataTable.GetSize();
    907907    if(FileSize_DataSection) bUse_DataSection=1;
    908908    else bUse_DataSection=0;
     
    11051105    }
    11061106
    1107     compiler.linker.SetDataTable( compiler.GetObjectModule().dataTable );
     1107    compiler.linker.SetDataTable( compiler.GetObjectModule().nativeSection.dataTable );
    11081108
    11091109    compiler.linker.SetImageBase( ImageBase );
  • trunk/ab5.0/abdev/compiler_x64/NumOpe.cpp

    r584 r585  
    763763
    764764        int dataTableOffset;
    765         if( !compiler.GetObjectModule().dataTable.MakeLiteralArrayBuffer( expression, baseType, dataTableOffset ) )
     765        if( !compiler.GetObjectModule().nativeSection.dataTable.MakeLiteralArrayBuffer( expression, baseType, dataTableOffset ) )
    766766        {
    767767            return false;
     
    792792
    793793                if(resultType.IsDouble()){
    794                     i3 = compiler.GetObjectModule().dataTable.Add( i64data );
     794                    i3 = compiler.GetObjectModule().nativeSection.dataTable.Add( i64data );
    795795
    796796                    //movlpd xmm_reg,qword ptr[data table offset]
     
    806806                    memcpy(&i32data,&flt,sizeof(long));
    807807
    808                     i3 = compiler.GetObjectModule().dataTable.Add( i32data );
     808                    i3 = compiler.GetObjectModule().nativeSection.dataTable.Add( i32data );
    809809
    810810                    //movss xmm_reg,dword ptr[data table offset]
     
    866866            // 静的領域にオブジェクトを生成
    867867            int dataTableOffset;
    868             if( !compiler.GetObjectModule().dataTable.MakeConstObjectToProcessStaticBuffer( expression + 2, resultType, dataTableOffset ) )
     868            if( !compiler.GetObjectModule().nativeSection.dataTable.MakeConstObjectToProcessStaticBuffer( expression + 2, resultType, dataTableOffset ) )
    869869            {
    870870                return false;
     
    10201020
    10211021                        //String型オブジェクトを生成
    1022                         i2 = compiler.GetObjectModule().dataTable.MakeConstStringObjectToProcessStaticBuffer( term );
     1022                        i2 = compiler.GetObjectModule().nativeSection.dataTable.MakeConstStringObjectToProcessStaticBuffer( term );
    10231023
    10241024                        //mov reg,i2
     
    10411041                    bLiteralCalculation=0;
    10421042
    1043                     i2 = compiler.GetObjectModule().dataTable.AddString( term, i3 );
     1043                    i2 = compiler.GetObjectModule().nativeSection.dataTable.AddString( term, i3 );
    10441044
    10451045                    //mov reg,i2
     
    12281228                        }
    12291229                        else{
    1230                             i3 = compiler.GetObjectModule().dataTable.Add( i64data );
     1230                            i3 = compiler.GetObjectModule().nativeSection.dataTable.Add( i64data );
    12311231
    12321232                            //movlpd xmm_reg,qword ptr[data table offset]
     
    12501250                        }
    12511251                        else{
    1252                             i3=compiler.GetObjectModule().dataTable.Add( i32data );
     1252                            i3=compiler.GetObjectModule().nativeSection.dataTable.Add( i32data );
    12531253
    12541254                            //movss xmm_reg,dword ptr[data table offset]
  • trunk/ab5.0/abdev/compiler_x64/NumOpe_Arithmetic.cpp

    r468 r585  
    470470        double dbl;
    471471        dbl=-1;
    472         i32data = compiler.GetObjectModule().dataTable.Add( dbl );
     472        i32data = compiler.GetObjectModule().nativeSection.dataTable.Add( dbl );
    473473
    474474        //mulsd xmm_reg,qword ptr[data table offset]   ※data = -1
     
    495495        float flt;
    496496        flt=-1;
    497         i32data = compiler.GetObjectModule().dataTable.Add( flt );
     497        i32data = compiler.GetObjectModule().nativeSection.dataTable.Add( flt );
    498498
    499499        //mulss xmm_reg,dword ptr[data table offset]   ※data = -1
  • trunk/ab5.0/abdev/compiler_x64/NumOpe_TypeOperation.cpp

    r468 r585  
    9999            //addsd xmm_reg,qword ptr[offset]   ※offset value:43f0000000000000
    100100            _int64 i64data=0x43f0000000000000;
    101             long temp=compiler.GetObjectModule().dataTable.Add( i64data );
     101            long temp=compiler.GetObjectModule().nativeSection.dataTable.Add( i64data );
    102102            compiler.codeGenerator.PutOld(
    103103                (char)0xF2,
     
    159159            //addss xmm_reg,dword ptr[offset]   ※offset value:5f800000
    160160            long i32data=0x5f800000;
    161             long temp=compiler.GetObjectModule().dataTable.Add( i32data );
     161            long temp=compiler.GetObjectModule().nativeSection.dataTable.Add( i32data );
    162162            compiler.codeGenerator.PutOld(
    163163                (char)0xF3,
Note: See TracChangeset for help on using the changeset viewer.