Changeset 224 in dev


Ignore:
Timestamp:
Jul 21, 2007, 4:46:33 AM (17 years ago)
Author:
dai_9181
Message:
 
Location:
trunk/abdev
Files:
1 added
14 edited

Legend:

Unmodified
Added
Removed
  • trunk/abdev/BasicCompiler32/Compile_Var.cpp

    r206 r224  
    849849            char *temp;
    850850            temp=(char *)i64data;
    851             i2=compiler.GetNativeCode().GetDataTable().AddString(temp,lstrlen(temp));
     851            i2=compiler.GetDataTable().AddString(temp,lstrlen(temp));
    852852            HeapDefaultFree(temp);
    853853
     
    10471047            char *temp;
    10481048            temp=(char *)i64data;
    1049             i2=compiler.GetNativeCode().GetDataTable().AddString(temp,lstrlen(temp));
     1049            i2=compiler.GetDataTable().AddString(temp,lstrlen(temp));
    10501050            HeapDefaultFree(temp);
    10511051
  • trunk/abdev/BasicCompiler32/MakePeHdr.cpp

    r223 r224  
    146146    //////////////////
    147147    // データテーブル
    148     compiler.GetNativeCode().GetDataTable().Init();
     148    compiler.GetDataTable().Init();
    149149    if(bDebugCompile){
    150         compiler.GetNativeCode().GetDataTable().Add( (long)0x00000002 );
     150        compiler.GetDataTable().Add( (long)0x00000002 );
    151151    }
    152152
     
    919919
    920920    //データセクションのファイル上のサイズ
    921     if(compiler.GetNativeCode().GetDataTable().GetSize()%FILE_ALIGNMENT) FileSize_DataSection=compiler.GetNativeCode().GetDataTable().GetSize()+(FILE_ALIGNMENT-compiler.GetNativeCode().GetDataTable().GetSize()%FILE_ALIGNMENT);
    922     else FileSize_DataSection=compiler.GetNativeCode().GetDataTable().GetSize();
     921    if(compiler.GetDataTable().GetSize()%FILE_ALIGNMENT) FileSize_DataSection=compiler.GetDataTable().GetSize()+(FILE_ALIGNMENT-compiler.GetDataTable().GetSize()%FILE_ALIGNMENT);
     922    else FileSize_DataSection=compiler.GetDataTable().GetSize();
    923923    if(FileSize_DataSection) bUse_DataSection=1;
    924924    else bUse_DataSection=0;
     
    16381638    if(bUse_DataSection){
    16391639        //データ テーブル
    1640         WriteFile(hFile,compiler.GetNativeCode().GetDataTable().GetPtr(),compiler.GetNativeCode().GetDataTable().GetSize(),(DWORD *)&i2,NULL);
     1640        WriteFile(hFile,compiler.GetDataTable().GetPtr(),compiler.GetDataTable().GetSize(),(DWORD *)&i2,NULL);
    16411641        i+=i2;
    16421642    }
  • trunk/abdev/BasicCompiler32/NumOpe.cpp

    r208 r224  
    600600        }
    601601
    602         i2 = compiler.GetNativeCode().GetDataTable().AddBinary( binary, num * tempBaseType.GetSize() );
     602        i2 = compiler.GetDataTable().AddBinary( binary, num * tempBaseType.GetSize() );
    603603
    604604        //mov eax,i2
     
    758758                    bLiteralCalculation=0;
    759759
    760                     i2=compiler.GetNativeCode().GetDataTable().AddString(term,i3);
     760                    i2=compiler.GetDataTable().AddString(term,i3);
    761761
    762762                    //push DataSize
  • trunk/abdev/BasicCompiler64/BasicCompiler.vcproj

    r220 r224  
    337337                </File>
    338338                <File
     339                    RelativePath="..\BasicCompiler_Common\include\NativeCode.h"
     340                    >
     341                </File>
     342                <File
    339343                    RelativePath="..\BasicCompiler_Common\include\Parameter.h"
    340344                    >
  • trunk/abdev/BasicCompiler64/Compile_Statement.cpp

    r206 r224  
    137137    if(resultType.IsDouble()){
    138138        double dbl=0;
    139         offset=compiler.GetNativeCode().GetDataTable().Add( dbl );
     139        offset=compiler.GetDataTable().Add( dbl );
    140140
    141141        //comisd xmm0,qword ptr[data table offset]
     
    151151    else if(resultType.IsSingle()){
    152152        float flt=0;
    153         offset=compiler.GetNativeCode().GetDataTable().Add( flt );
     153        offset=compiler.GetDataTable().Add( flt );
    154154
    155155        //comiss xmm0,dword ptr[data table offset]
  • trunk/abdev/BasicCompiler64/Compile_Var.cpp

    r206 r224  
    868868            char *temp;
    869869            temp=(char *)i64data;
    870             i2=compiler.GetNativeCode().GetDataTable().AddString( temp );
     870            i2=compiler.GetDataTable().AddString( temp );
    871871            HeapDefaultFree(temp);
    872872
     
    10261026            char *temp;
    10271027            temp=(char *)i64data;
    1028             i2=compiler.GetNativeCode().GetDataTable().AddString( temp );
     1028            i2=compiler.GetDataTable().AddString( temp );
    10291029            HeapDefaultFree(temp);
    10301030
  • trunk/abdev/BasicCompiler64/MakePeHdr.cpp

    r223 r224  
    130130    //////////////////
    131131    // データテーブル
    132     compiler.GetNativeCode().GetDataTable().Init();
     132    compiler.GetDataTable().Init();
    133133    if(bDebugCompile){
    134         compiler.GetNativeCode().GetDataTable().Add( (long)0x00000002 );
     134        compiler.GetDataTable().Add( (long)0x00000002 );
    135135    }
    136136
     
    923923
    924924    //データセクションのファイル上のサイズ
    925     if(compiler.GetNativeCode().GetDataTable().GetSize()%FILE_ALIGNMENT) FileSize_DataSection=compiler.GetNativeCode().GetDataTable().GetSize()+(FILE_ALIGNMENT-compiler.GetNativeCode().GetDataTable().GetSize()%FILE_ALIGNMENT);
    926     else FileSize_DataSection=compiler.GetNativeCode().GetDataTable().GetSize();
     925    if(compiler.GetDataTable().GetSize()%FILE_ALIGNMENT) FileSize_DataSection=compiler.GetDataTable().GetSize()+(FILE_ALIGNMENT-compiler.GetDataTable().GetSize()%FILE_ALIGNMENT);
     926    else FileSize_DataSection=compiler.GetDataTable().GetSize();
    927927    if(FileSize_DataSection) bUse_DataSection=1;
    928928    else bUse_DataSection=0;
     
    16411641    if(bUse_DataSection){
    16421642        //データ テーブル
    1643         WriteFile(hFile,compiler.GetNativeCode().GetDataTable().GetPtr(),compiler.GetNativeCode().GetDataTable().GetSize(),(DWORD *)&i2,NULL);
     1643        WriteFile(hFile,compiler.GetDataTable().GetPtr(),compiler.GetDataTable().GetSize(),(DWORD *)&i2,NULL);
    16441644        i+=i2;
    16451645    }
  • trunk/abdev/BasicCompiler64/NumOpe.cpp

    r206 r224  
    600600        }
    601601
    602         i2 = compiler.GetNativeCode().GetDataTable().AddBinary( binary, num * tempBaseType.GetSize() );
     602        i2 = compiler.GetDataTable().AddBinary( binary, num * tempBaseType.GetSize() );
    603603
    604604        //mov reg,i2
     
    793793                    bLiteralCalculation=0;
    794794
    795                     i2 = compiler.GetNativeCode().GetDataTable().AddString( term, i3 );
     795                    i2 = compiler.GetDataTable().AddString( term, i3 );
    796796
    797797                    //mov reg,i2
     
    978978                        }
    979979                        else{
    980                             i3 = compiler.GetNativeCode().GetDataTable().Add( i64data );
     980                            i3 = compiler.GetDataTable().Add( i64data );
    981981
    982982                            //movlpd xmm_reg,qword ptr[data table offset]
     
    10071007                        }
    10081008                        else{
    1009                             i3=compiler.GetNativeCode().GetDataTable().Add( i32data );
     1009                            i3=compiler.GetDataTable().Add( i32data );
    10101010
    10111011                            //movss xmm_reg,dword ptr[data table offset]
     
    11461146
    11471147            if(resultType.IsDouble()){
    1148                 i3 = compiler.GetNativeCode().GetDataTable().Add( i64data );
     1148                i3 = compiler.GetDataTable().Add( i64data );
    11491149
    11501150                //movlpd xmm_reg,qword ptr[data table offset]
     
    11661166                memcpy(&i32data,&flt,sizeof(long));
    11671167
    1168                 i3 = compiler.GetNativeCode().GetDataTable().Add( i32data );
     1168                i3 = compiler.GetDataTable().Add( i32data );
    11691169
    11701170                //movss xmm_reg,dword ptr[data table offset]
  • trunk/abdev/BasicCompiler64/NumOpe_Arithmetic.cpp

    r206 r224  
    456456        double dbl;
    457457        dbl=-1;
    458         i32data = compiler.GetNativeCode().GetDataTable().Add( dbl );
     458        i32data = compiler.GetDataTable().Add( dbl );
    459459
    460460        //mulsd xmm_reg,qword ptr[data table offset]   ※data = -1
     
    478478        float flt;
    479479        flt=-1;
    480         i32data = compiler.GetNativeCode().GetDataTable().Add( flt );
     480        i32data = compiler.GetDataTable().Add( flt );
    481481
    482482        //mulss xmm_reg,dword ptr[data table offset]   ※data = -1
  • trunk/abdev/BasicCompiler64/NumOpe_TypeOperation.cpp

    r206 r224  
    9191            int temp;
    9292            _int64 i64data=0x43f0000000000000;
    93             temp=compiler.GetNativeCode().GetDataTable().Add( i64data );
     93            temp=compiler.GetDataTable().Add( i64data );
    9494            OpBuffer[obp++]=(char)0xF2;
    9595            OpBuffer[obp++]=(char)0x0F;
     
    150150            int temp;
    151151            long i32data=0x5f800000;
    152             temp=compiler.GetNativeCode().GetDataTable().Add( i32data );
     152            temp=compiler.GetDataTable().Add( i32data );
    153153            OpBuffer[obp++]=(char)0xF3;
    154154            OpBuffer[obp++]=(char)0x0F;
  • trunk/abdev/BasicCompiler_Common/include/CodeGenerator.h

    r184 r224  
    11#pragma once
    22
    3 #include <DataTable.h>
    4 
    53void ReallocNativeCodeBuffer();
    6 
    7 class NativeCode
    8 {
    9     DataTable dataTable;
    10 public:
    11     DataTable &GetDataTable()
    12     {
    13         return dataTable;
    14     }
    15 };
  • trunk/abdev/BasicCompiler_Common/include/Compiler.h

    r206 r224  
    44#include <NamespaceSupporter.h>
    55#include <MetaImpl.h>
     6#include <DataTable.h>
    67
    78class Compiler
    89{
    9     // ネイティブコード
    10     NativeCode nativeCode;
    11 
    1210    // 名前空間サポート
    1311    NamespaceSupporter namespaceSupporter;
     
    1614    MetaImpl metaImpl;
    1715
     16    // データテーブル
     17    DataTable dataTable;
     18
    1819public:
    19     NativeCode &GetNativeCode()
    20     {
    21         return nativeCode;
    22     }
    2320
    2421    NamespaceSupporter &GetNamespaceSupporter()
     
    3229    }
    3330
     31    DataTable &GetDataTable()
     32    {
     33        return dataTable;
     34    }
     35
    3436    static bool StringToType( const std::string &typeName, Type &type );
    3537    static const std::string TypeToString( const Type &type );
  • trunk/abdev/BasicCompiler_Common/include/Procedure.h

    r215 r224  
    1111#include <Parameter.h>
    1212#include <Variable.h>
     13#include <NativeCode.h>
    1314
    1415class CClass;
     
    146147    // 識別ID
    147148    int id;
     149
     150    // ネイティブコード
     151    NativeCode nativeCode;
    148152
    149153    // XMLシリアライズ用
     
    171175        ar & BOOST_SERIALIZATION_NVP( localVars );
    172176        ar & BOOST_SERIALIZATION_NVP( id );
     177        ar & BOOST_SERIALIZATION_NVP( nativeCode );
    173178    }
    174179
  • trunk/abdev/BasicCompiler_Common/src/Class.cpp

    r218 r224  
    714714    }
    715715
    716     vtbl_offset=compiler.GetNativeCode().GetDataTable().AddBinary((void *)ppsi,GetVtblNum()*sizeof(LONG_PTR));
     716    vtbl_offset=compiler.GetDataTable().AddBinary((void *)ppsi,GetVtblNum()*sizeof(LONG_PTR));
    717717
    718718    for( int i=0; i < GetVtblNum(); i++ ){
     
    728728
    729729    LONG_PTR *pVtbl;
    730     pVtbl=(LONG_PTR *)((char *)compiler.GetNativeCode().GetDataTable().GetPtr()+vtbl_offset);
     730    pVtbl=(LONG_PTR *)((char *)compiler.GetDataTable().GetPtr()+vtbl_offset);
    731731
    732732    int i;
Note: See TracChangeset for help on using the changeset viewer.