Sfoglia il codice sorgente

+ also allow x86 call ref for references that contain only non-imaginary registers (no infinite spilling problems there either)

git-svn-id: trunk@32290 -
nickysn 9 anni fa
parent
commit
8046826e4e
1 ha cambiato i file con 1 aggiunte e 1 eliminazioni
  1. 1 1
      compiler/x86/nx86cal.pas

+ 1 - 1
compiler/x86/nx86cal.pas

@@ -90,7 +90,7 @@ implementation
       tcgx86(cg).make_simple_ref(current_asmdata.CurrAsmList,ref);
       { do not use a ref. for calling conventions which allocate all registers, the reg. allocator cannot handle this, see
         also issue #28639, I were not able to create a simple example though to cause the resulting endless spilling }
-      result:=((ref.base=NR_NO) and (ref.index=NR_NO)) or
+      result:=((getsupreg(ref.base)<first_int_imreg) and (getsupreg(ref.index)<first_int_imreg)) or
               not(procdefinition.proccalloption in [pocall_far16,pocall_pascal,pocall_oldfpccall]);
     end;