Changeset 587 in dev for trunk/ab5.0/abdev/compiler_x64
- Timestamp:
- May 10, 2008, 3:09:26 PM (17 years ago)
- Location:
- trunk/ab5.0/abdev/compiler_x64
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ab5.0/abdev/compiler_x64/Compile_Statement.cpp
r585 r587 132 132 if(resultType.IsDouble()){ 133 133 double dbl=0; 134 offset=compiler.GetObjectModule(). nativeSection.dataTable.Add( dbl );134 offset=compiler.GetObjectModule().dataTable.Add( dbl ); 135 135 136 136 //comisd xmm0,qword ptr[data table offset] … … 149 149 else if(resultType.IsSingle()){ 150 150 float flt=0; 151 offset=compiler.GetObjectModule(). nativeSection.dataTable.Add( flt );151 offset=compiler.GetObjectModule().dataTable.Add( flt ); 152 152 153 153 //comiss xmm0,dword ptr[data table offset] -
trunk/ab5.0/abdev/compiler_x64/Compile_Var.cpp
r585 r587 884 884 char *temp; 885 885 temp=(char *)i64data; 886 i2=compiler.GetObjectModule(). nativeSection.dataTable.AddString( temp );886 i2=compiler.GetObjectModule().dataTable.AddString( temp ); 887 887 HeapDefaultFree(temp); 888 888 … … 1053 1053 char *temp; 1054 1054 temp=(char *)i64data; 1055 i2=compiler.GetObjectModule(). nativeSection.dataTable.AddString( temp );1055 i2=compiler.GetObjectModule().dataTable.AddString( temp ); 1056 1056 HeapDefaultFree(temp); 1057 1057 -
trunk/ab5.0/abdev/compiler_x64/MakePeHdr.cpp
r585 r587 115 115 if( compiler.IsDebug() ) 116 116 { 117 compiler.GetObjectModule(). nativeSection.dataTable.Add( (long)0x00000002 );117 compiler.GetObjectModule().dataTable.Add( (long)0x00000002 ); 118 118 } 119 119 … … 133 133 { 134 134 ActiveBasic::Compiler::LexicalAnalyzer::CollectEnums( 135 compiler.GetObjectModule(). nativeSection.GetCurrentSource().GetBuffer(),135 compiler.GetObjectModule().GetCurrentSource().GetBuffer(), 136 136 compiler.enumInfoCollection 137 137 ); … … 146 146 // 名前空間情報を取得 147 147 ActiveBasic::Compiler::LexicalAnalyzer::CollectNamespaces( 148 compiler.GetObjectModule(). nativeSection.GetCurrentSource().GetBuffer(),148 compiler.GetObjectModule().GetCurrentSource().GetBuffer(), 149 149 compiler.GetObjectModule().meta.GetNamespaces() 150 150 ); … … 153 153 { 154 154 ActiveBasic::Compiler::LexicalAnalyzer::CollectDelegates( 155 compiler.GetObjectModule(). nativeSection.GetCurrentSource().GetBuffer(),155 compiler.GetObjectModule().GetCurrentSource().GetBuffer(), 156 156 compiler.GetObjectModule().meta.GetDelegates() 157 157 ); … … 169 169 // ※オブジェクトの内容までは取得しない 170 170 ActiveBasic::Compiler::LexicalAnalyzer::CollectClassesForNameOnly( 171 compiler.GetObjectModule(). nativeSection.GetCurrentSource().GetBuffer(),171 compiler.GetObjectModule().GetCurrentSource().GetBuffer(), 172 172 compiler.GetObjectModule().meta.GetClasses() 173 173 ); … … 175 175 //TypeDef情報を収集 176 176 ActiveBasic::Compiler::LexicalAnalyzer::CollectTypeDefs( 177 compiler.GetObjectModule(). nativeSection.GetCurrentSource().GetBuffer(),177 compiler.GetObjectModule().GetCurrentSource().GetBuffer(), 178 178 compiler.GetObjectModule().meta.GetTypeDefs() 179 179 ); … … 190 190 //定数情報を取得 191 191 ActiveBasic::Compiler::LexicalAnalyzer::CollectConsts( 192 compiler.GetObjectModule(). nativeSection.GetCurrentSource().GetBuffer(),192 compiler.GetObjectModule().GetCurrentSource().GetBuffer(), 193 193 compiler.GetObjectModule().meta.GetGlobalConsts(), 194 194 compiler.GetObjectModule().meta.GetGlobalConstMacros() … … 198 198 compiler.SetCompilingClass( NULL ); 199 199 ActiveBasic::Compiler::LexicalAnalyzer::CollectProcedures( 200 compiler.GetObjectModule(). nativeSection.GetCurrentSource().GetBuffer(),200 compiler.GetObjectModule().GetCurrentSource().GetBuffer(), 201 201 compiler.GetObjectModule().meta.GetUserProcs(), 202 202 compiler.GetObjectModule().meta.GetDllProcs() … … 205 205 // クラス情報を取得(※注 - CollectProceduresの後に呼び出す) 206 206 ActiveBasic::Compiler::LexicalAnalyzer::CollectClasses( 207 compiler.GetObjectModule(). nativeSection.GetCurrentSource().GetBuffer(),207 compiler.GetObjectModule().GetCurrentSource().GetBuffer(), 208 208 compiler.GetObjectModule().meta.GetClasses() 209 209 ); … … 369 369 370 370 // コード生成対象を選択 371 compiler.codeGenerator.Select( compiler.GetObjectModule(). nativeSection.globalNativeCode );371 compiler.codeGenerator.Select( compiler.GetObjectModule().globalNativeCode ); 372 372 373 373 trace_for_sourcecodestep( "★★★ グローバル領域のコンパイルを開始" ); … … 903 903 904 904 //データセクションのファイル上のサイズ 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();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(); 907 907 if(FileSize_DataSection) bUse_DataSection=1; 908 908 else bUse_DataSection=0; … … 1105 1105 } 1106 1106 1107 compiler.linker.SetDataTable( compiler.GetObjectModule(). nativeSection.dataTable );1107 compiler.linker.SetDataTable( compiler.GetObjectModule().dataTable ); 1108 1108 1109 1109 compiler.linker.SetImageBase( ImageBase ); -
trunk/ab5.0/abdev/compiler_x64/NumOpe.cpp
r585 r587 763 763 764 764 int dataTableOffset; 765 if( !compiler.GetObjectModule(). nativeSection.dataTable.MakeLiteralArrayBuffer( expression, baseType, dataTableOffset ) )765 if( !compiler.GetObjectModule().dataTable.MakeLiteralArrayBuffer( expression, baseType, dataTableOffset ) ) 766 766 { 767 767 return false; … … 792 792 793 793 if(resultType.IsDouble()){ 794 i3 = compiler.GetObjectModule(). nativeSection.dataTable.Add( i64data );794 i3 = compiler.GetObjectModule().dataTable.Add( i64data ); 795 795 796 796 //movlpd xmm_reg,qword ptr[data table offset] … … 806 806 memcpy(&i32data,&flt,sizeof(long)); 807 807 808 i3 = compiler.GetObjectModule(). nativeSection.dataTable.Add( i32data );808 i3 = compiler.GetObjectModule().dataTable.Add( i32data ); 809 809 810 810 //movss xmm_reg,dword ptr[data table offset] … … 866 866 // 静的領域にオブジェクトを生成 867 867 int dataTableOffset; 868 if( !compiler.GetObjectModule(). nativeSection.dataTable.MakeConstObjectToProcessStaticBuffer( expression + 2, resultType, dataTableOffset ) )868 if( !compiler.GetObjectModule().dataTable.MakeConstObjectToProcessStaticBuffer( expression + 2, resultType, dataTableOffset ) ) 869 869 { 870 870 return false; … … 1020 1020 1021 1021 //String型オブジェクトを生成 1022 i2 = compiler.GetObjectModule(). nativeSection.dataTable.MakeConstStringObjectToProcessStaticBuffer( term );1022 i2 = compiler.GetObjectModule().dataTable.MakeConstStringObjectToProcessStaticBuffer( term ); 1023 1023 1024 1024 //mov reg,i2 … … 1041 1041 bLiteralCalculation=0; 1042 1042 1043 i2 = compiler.GetObjectModule(). nativeSection.dataTable.AddString( term, i3 );1043 i2 = compiler.GetObjectModule().dataTable.AddString( term, i3 ); 1044 1044 1045 1045 //mov reg,i2 … … 1228 1228 } 1229 1229 else{ 1230 i3 = compiler.GetObjectModule(). nativeSection.dataTable.Add( i64data );1230 i3 = compiler.GetObjectModule().dataTable.Add( i64data ); 1231 1231 1232 1232 //movlpd xmm_reg,qword ptr[data table offset] … … 1250 1250 } 1251 1251 else{ 1252 i3=compiler.GetObjectModule(). nativeSection.dataTable.Add( i32data );1252 i3=compiler.GetObjectModule().dataTable.Add( i32data ); 1253 1253 1254 1254 //movss xmm_reg,dword ptr[data table offset] -
trunk/ab5.0/abdev/compiler_x64/NumOpe_Arithmetic.cpp
r585 r587 470 470 double dbl; 471 471 dbl=-1; 472 i32data = compiler.GetObjectModule(). nativeSection.dataTable.Add( dbl );472 i32data = compiler.GetObjectModule().dataTable.Add( dbl ); 473 473 474 474 //mulsd xmm_reg,qword ptr[data table offset] ※data = -1 … … 495 495 float flt; 496 496 flt=-1; 497 i32data = compiler.GetObjectModule(). nativeSection.dataTable.Add( flt );497 i32data = compiler.GetObjectModule().dataTable.Add( flt ); 498 498 499 499 //mulss xmm_reg,dword ptr[data table offset] ※data = -1 -
trunk/ab5.0/abdev/compiler_x64/NumOpe_TypeOperation.cpp
r585 r587 99 99 //addsd xmm_reg,qword ptr[offset] ※offset value:43f0000000000000 100 100 _int64 i64data=0x43f0000000000000; 101 long temp=compiler.GetObjectModule(). nativeSection.dataTable.Add( i64data );101 long temp=compiler.GetObjectModule().dataTable.Add( i64data ); 102 102 compiler.codeGenerator.PutOld( 103 103 (char)0xF2, … … 159 159 //addss xmm_reg,dword ptr[offset] ※offset value:5f800000 160 160 long i32data=0x5f800000; 161 long temp=compiler.GetObjectModule(). nativeSection.dataTable.Add( i32data );161 long temp=compiler.GetObjectModule().dataTable.Add( i32data ); 162 162 compiler.codeGenerator.PutOld( 163 163 (char)0xF3,
Note:
See TracChangeset
for help on using the changeset viewer.