Selaa lähdekoodia

* AArch64: fixed parameter defs for smallsets passed in registers whose size
is not a power of two

git-svn-id: trunk@43883 -

Jonas Maebe 5 vuotta sitten
vanhempi
commit
a75247d9b0
1 muutettua tiedostoa jossa 2 lisäystä ja 1 poistoa
  1. 2 1
      compiler/aarch64/cpupara.pas

+ 2 - 1
compiler/aarch64/cpupara.pas

@@ -374,7 +374,7 @@ unit cpupara;
             else
             else
               paralen:=tcgsize2size[def_cgsize(paradef)];
               paralen:=tcgsize2size[def_cgsize(paradef)];
             loc:=getparaloc(p.proccalloption,paradef);
             loc:=getparaloc(p.proccalloption,paradef);
-            if (paradef.typ in [objectdef,arraydef,recorddef]) and
+            if (paradef.typ in [objectdef,arraydef,recorddef,setdef]) and
                not is_special_array(paradef) and
                not is_special_array(paradef) and
                (varspez in [vs_value,vs_const]) then
                (varspez in [vs_value,vs_const]) then
               paracgsize:=int_cgsize(paralen)
               paracgsize:=int_cgsize(paralen)
@@ -514,6 +514,7 @@ unit cpupara;
                  else
                  else
                    begin
                    begin
                      if is_record(locdef) or
                      if is_record(locdef) or
+                        is_set(locdef) or
                         ((locdef.typ=arraydef) and
                         ((locdef.typ=arraydef) and
                          not is_special_array(locdef)) then
                          not is_special_array(locdef)) then
                        begin
                        begin