Changeset 224 in dev
- Timestamp:
- Jul 21, 2007, 4:46:33 AM (17 years ago)
- Location:
- trunk/abdev
- Files:
-
- 1 added
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler32/Compile_Var.cpp
r206 r224 849 849 char *temp; 850 850 temp=(char *)i64data; 851 i2=compiler.Get NativeCode().GetDataTable().AddString(temp,lstrlen(temp));851 i2=compiler.GetDataTable().AddString(temp,lstrlen(temp)); 852 852 HeapDefaultFree(temp); 853 853 … … 1047 1047 char *temp; 1048 1048 temp=(char *)i64data; 1049 i2=compiler.Get NativeCode().GetDataTable().AddString(temp,lstrlen(temp));1049 i2=compiler.GetDataTable().AddString(temp,lstrlen(temp)); 1050 1050 HeapDefaultFree(temp); 1051 1051 -
trunk/abdev/BasicCompiler32/MakePeHdr.cpp
r223 r224 146 146 ////////////////// 147 147 // データテーブル 148 compiler.Get NativeCode().GetDataTable().Init();148 compiler.GetDataTable().Init(); 149 149 if(bDebugCompile){ 150 compiler.Get NativeCode().GetDataTable().Add( (long)0x00000002 );150 compiler.GetDataTable().Add( (long)0x00000002 ); 151 151 } 152 152 … … 919 919 920 920 //データセクションのファイル上のサイズ 921 if(compiler.Get NativeCode().GetDataTable().GetSize()%FILE_ALIGNMENT) FileSize_DataSection=compiler.GetNativeCode().GetDataTable().GetSize()+(FILE_ALIGNMENT-compiler.GetNativeCode().GetDataTable().GetSize()%FILE_ALIGNMENT);922 else FileSize_DataSection=compiler.Get NativeCode().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(); 923 923 if(FileSize_DataSection) bUse_DataSection=1; 924 924 else bUse_DataSection=0; … … 1638 1638 if(bUse_DataSection){ 1639 1639 //データ テーブル 1640 WriteFile(hFile,compiler.Get NativeCode().GetDataTable().GetPtr(),compiler.GetNativeCode().GetDataTable().GetSize(),(DWORD *)&i2,NULL);1640 WriteFile(hFile,compiler.GetDataTable().GetPtr(),compiler.GetDataTable().GetSize(),(DWORD *)&i2,NULL); 1641 1641 i+=i2; 1642 1642 } -
trunk/abdev/BasicCompiler32/NumOpe.cpp
r208 r224 600 600 } 601 601 602 i2 = compiler.Get NativeCode().GetDataTable().AddBinary( binary, num * tempBaseType.GetSize() );602 i2 = compiler.GetDataTable().AddBinary( binary, num * tempBaseType.GetSize() ); 603 603 604 604 //mov eax,i2 … … 758 758 bLiteralCalculation=0; 759 759 760 i2=compiler.Get NativeCode().GetDataTable().AddString(term,i3);760 i2=compiler.GetDataTable().AddString(term,i3); 761 761 762 762 //push DataSize -
trunk/abdev/BasicCompiler64/BasicCompiler.vcproj
r220 r224 337 337 </File> 338 338 <File 339 RelativePath="..\BasicCompiler_Common\include\NativeCode.h" 340 > 341 </File> 342 <File 339 343 RelativePath="..\BasicCompiler_Common\include\Parameter.h" 340 344 > -
trunk/abdev/BasicCompiler64/Compile_Statement.cpp
r206 r224 137 137 if(resultType.IsDouble()){ 138 138 double dbl=0; 139 offset=compiler.Get NativeCode().GetDataTable().Add( dbl );139 offset=compiler.GetDataTable().Add( dbl ); 140 140 141 141 //comisd xmm0,qword ptr[data table offset] … … 151 151 else if(resultType.IsSingle()){ 152 152 float flt=0; 153 offset=compiler.Get NativeCode().GetDataTable().Add( flt );153 offset=compiler.GetDataTable().Add( flt ); 154 154 155 155 //comiss xmm0,dword ptr[data table offset] -
trunk/abdev/BasicCompiler64/Compile_Var.cpp
r206 r224 868 868 char *temp; 869 869 temp=(char *)i64data; 870 i2=compiler.Get NativeCode().GetDataTable().AddString( temp );870 i2=compiler.GetDataTable().AddString( temp ); 871 871 HeapDefaultFree(temp); 872 872 … … 1026 1026 char *temp; 1027 1027 temp=(char *)i64data; 1028 i2=compiler.Get NativeCode().GetDataTable().AddString( temp );1028 i2=compiler.GetDataTable().AddString( temp ); 1029 1029 HeapDefaultFree(temp); 1030 1030 -
trunk/abdev/BasicCompiler64/MakePeHdr.cpp
r223 r224 130 130 ////////////////// 131 131 // データテーブル 132 compiler.Get NativeCode().GetDataTable().Init();132 compiler.GetDataTable().Init(); 133 133 if(bDebugCompile){ 134 compiler.Get NativeCode().GetDataTable().Add( (long)0x00000002 );134 compiler.GetDataTable().Add( (long)0x00000002 ); 135 135 } 136 136 … … 923 923 924 924 //データセクションのファイル上のサイズ 925 if(compiler.Get NativeCode().GetDataTable().GetSize()%FILE_ALIGNMENT) FileSize_DataSection=compiler.GetNativeCode().GetDataTable().GetSize()+(FILE_ALIGNMENT-compiler.GetNativeCode().GetDataTable().GetSize()%FILE_ALIGNMENT);926 else FileSize_DataSection=compiler.Get NativeCode().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(); 927 927 if(FileSize_DataSection) bUse_DataSection=1; 928 928 else bUse_DataSection=0; … … 1641 1641 if(bUse_DataSection){ 1642 1642 //データ テーブル 1643 WriteFile(hFile,compiler.Get NativeCode().GetDataTable().GetPtr(),compiler.GetNativeCode().GetDataTable().GetSize(),(DWORD *)&i2,NULL);1643 WriteFile(hFile,compiler.GetDataTable().GetPtr(),compiler.GetDataTable().GetSize(),(DWORD *)&i2,NULL); 1644 1644 i+=i2; 1645 1645 } -
trunk/abdev/BasicCompiler64/NumOpe.cpp
r206 r224 600 600 } 601 601 602 i2 = compiler.Get NativeCode().GetDataTable().AddBinary( binary, num * tempBaseType.GetSize() );602 i2 = compiler.GetDataTable().AddBinary( binary, num * tempBaseType.GetSize() ); 603 603 604 604 //mov reg,i2 … … 793 793 bLiteralCalculation=0; 794 794 795 i2 = compiler.Get NativeCode().GetDataTable().AddString( term, i3 );795 i2 = compiler.GetDataTable().AddString( term, i3 ); 796 796 797 797 //mov reg,i2 … … 978 978 } 979 979 else{ 980 i3 = compiler.Get NativeCode().GetDataTable().Add( i64data );980 i3 = compiler.GetDataTable().Add( i64data ); 981 981 982 982 //movlpd xmm_reg,qword ptr[data table offset] … … 1007 1007 } 1008 1008 else{ 1009 i3=compiler.Get NativeCode().GetDataTable().Add( i32data );1009 i3=compiler.GetDataTable().Add( i32data ); 1010 1010 1011 1011 //movss xmm_reg,dword ptr[data table offset] … … 1146 1146 1147 1147 if(resultType.IsDouble()){ 1148 i3 = compiler.Get NativeCode().GetDataTable().Add( i64data );1148 i3 = compiler.GetDataTable().Add( i64data ); 1149 1149 1150 1150 //movlpd xmm_reg,qword ptr[data table offset] … … 1166 1166 memcpy(&i32data,&flt,sizeof(long)); 1167 1167 1168 i3 = compiler.Get NativeCode().GetDataTable().Add( i32data );1168 i3 = compiler.GetDataTable().Add( i32data ); 1169 1169 1170 1170 //movss xmm_reg,dword ptr[data table offset] -
trunk/abdev/BasicCompiler64/NumOpe_Arithmetic.cpp
r206 r224 456 456 double dbl; 457 457 dbl=-1; 458 i32data = compiler.Get NativeCode().GetDataTable().Add( dbl );458 i32data = compiler.GetDataTable().Add( dbl ); 459 459 460 460 //mulsd xmm_reg,qword ptr[data table offset] ※data = -1 … … 478 478 float flt; 479 479 flt=-1; 480 i32data = compiler.Get NativeCode().GetDataTable().Add( flt );480 i32data = compiler.GetDataTable().Add( flt ); 481 481 482 482 //mulss xmm_reg,dword ptr[data table offset] ※data = -1 -
trunk/abdev/BasicCompiler64/NumOpe_TypeOperation.cpp
r206 r224 91 91 int temp; 92 92 _int64 i64data=0x43f0000000000000; 93 temp=compiler.Get NativeCode().GetDataTable().Add( i64data );93 temp=compiler.GetDataTable().Add( i64data ); 94 94 OpBuffer[obp++]=(char)0xF2; 95 95 OpBuffer[obp++]=(char)0x0F; … … 150 150 int temp; 151 151 long i32data=0x5f800000; 152 temp=compiler.Get NativeCode().GetDataTable().Add( i32data );152 temp=compiler.GetDataTable().Add( i32data ); 153 153 OpBuffer[obp++]=(char)0xF3; 154 154 OpBuffer[obp++]=(char)0x0F; -
trunk/abdev/BasicCompiler_Common/include/CodeGenerator.h
r184 r224 1 1 #pragma once 2 2 3 #include <DataTable.h>4 5 3 void ReallocNativeCodeBuffer(); 6 7 class NativeCode8 {9 DataTable dataTable;10 public:11 DataTable &GetDataTable()12 {13 return dataTable;14 }15 }; -
trunk/abdev/BasicCompiler_Common/include/Compiler.h
r206 r224 4 4 #include <NamespaceSupporter.h> 5 5 #include <MetaImpl.h> 6 #include <DataTable.h> 6 7 7 8 class Compiler 8 9 { 9 // ネイティブコード10 NativeCode nativeCode;11 12 10 // 名前空間サポート 13 11 NamespaceSupporter namespaceSupporter; … … 16 14 MetaImpl metaImpl; 17 15 16 // データテーブル 17 DataTable dataTable; 18 18 19 public: 19 NativeCode &GetNativeCode()20 {21 return nativeCode;22 }23 20 24 21 NamespaceSupporter &GetNamespaceSupporter() … … 32 29 } 33 30 31 DataTable &GetDataTable() 32 { 33 return dataTable; 34 } 35 34 36 static bool StringToType( const std::string &typeName, Type &type ); 35 37 static const std::string TypeToString( const Type &type ); -
trunk/abdev/BasicCompiler_Common/include/Procedure.h
r215 r224 11 11 #include <Parameter.h> 12 12 #include <Variable.h> 13 #include <NativeCode.h> 13 14 14 15 class CClass; … … 146 147 // 識別ID 147 148 int id; 149 150 // ネイティブコード 151 NativeCode nativeCode; 148 152 149 153 // XMLシリアライズ用 … … 171 175 ar & BOOST_SERIALIZATION_NVP( localVars ); 172 176 ar & BOOST_SERIALIZATION_NVP( id ); 177 ar & BOOST_SERIALIZATION_NVP( nativeCode ); 173 178 } 174 179 -
trunk/abdev/BasicCompiler_Common/src/Class.cpp
r218 r224 714 714 } 715 715 716 vtbl_offset=compiler.Get NativeCode().GetDataTable().AddBinary((void *)ppsi,GetVtblNum()*sizeof(LONG_PTR));716 vtbl_offset=compiler.GetDataTable().AddBinary((void *)ppsi,GetVtblNum()*sizeof(LONG_PTR)); 717 717 718 718 for( int i=0; i < GetVtblNum(); i++ ){ … … 728 728 729 729 LONG_PTR *pVtbl; 730 pVtbl=(LONG_PTR *)((char *)compiler.Get NativeCode().GetDataTable().GetPtr()+vtbl_offset);730 pVtbl=(LONG_PTR *)((char *)compiler.GetDataTable().GetPtr()+vtbl_offset); 731 731 732 732 int i;
Note:
See TracChangeset
for help on using the changeset viewer.