Przeglądaj źródła

* disable saving of fpu/mm for i386 until optimizer is fixed

git-svn-id: trunk@334 -
peter 20 lat temu
rodzic
commit
1d9407f2f3
2 zmienionych plików z 10 dodań i 3 usunięć
  1. 4 0
      compiler/cgobj.pas
  2. 6 3
      compiler/cresstr.pas

+ 4 - 0
compiler/cgobj.pas

@@ -622,8 +622,10 @@ implementation
     procedure tcg.allocallcpuregisters(list:Taasmoutput);
       begin
         alloccpuregisters(list,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
+{$ifndef i386}
         alloccpuregisters(list,R_FPUREGISTER,paramanager.get_volatile_registers_fpu(pocall_default));
         alloccpuregisters(list,R_MMREGISTER,paramanager.get_volatile_registers_mm(pocall_default));
+{$endif i386}
       end;
 
 
@@ -639,8 +641,10 @@ implementation
     procedure tcg.deallocallcpuregisters(list:Taasmoutput);
       begin
         dealloccpuregisters(list,R_INTREGISTER,paramanager.get_volatile_registers_int(pocall_default));
+{$ifndef i386}
         dealloccpuregisters(list,R_FPUREGISTER,paramanager.get_volatile_registers_fpu(pocall_default));
         dealloccpuregisters(list,R_MMREGISTER,paramanager.get_volatile_registers_mm(pocall_default));
+{$endif i386}
       end;
 
 

+ 6 - 3
compiler/cresstr.pas

@@ -153,6 +153,7 @@ procedure TResourceStrings.CreateResourceStringList;
          begin
             objectlibrary.getdatalabel(l1);
             resourcestringlist.concat(tai_const.create_sym(l1));
+            maybe_new_object_file(consts);
             consts.concat(tai_align.Create(const_align(sizeof(aint))));
             consts.concat(tai_const.create_aint(-1));
             consts.concat(tai_const.create_aint(len));
@@ -170,6 +171,7 @@ procedure TResourceStrings.CreateResourceStringList;
        objectlibrary.getdatalabel(l1);
        L:=Length(Name);
        resourcestringlist.concat(tai_const.create_sym(l1));
+       maybe_new_object_file(consts);
        consts.concat(tai_align.Create(const_align(sizeof(aint))));
        consts.concat(tai_const.create_aint(-1));
        consts.concat(tai_const.create_aint(l));
@@ -187,9 +189,10 @@ Var
 begin
   if not(assigned(resourcestringlist)) then
     resourcestringlist:=taasmoutput.create;
-  resourcestringlist.insert(tai_const.create_32bit(resstrcount));
-  resourcestringlist.insert(tai_symbol.createname_global(make_mangledname('RESOURCESTRINGLIST',current_module.localsymtable,''),AT_DATA,0));
-  resourcestringlist.insert(tai_align.Create(const_align(sizeof(aint))));
+  maybe_new_object_file(resourcestringlist);
+  resourcestringlist.concat(tai_align.Create(const_align(sizeof(aint))));
+  resourcestringlist.concat(tai_symbol.createname_global(make_mangledname('RESOURCESTRINGLIST',current_module.localsymtable,''),AT_DATA,0));
+  resourcestringlist.concat(tai_const.create_32bit(resstrcount));
   R:=TResourceStringItem(List.First);
   While assigned(R) do
    begin