Browse Source

* aarch64: correct paraloc^.def for LOC_REFERENCE parameters
o fixes LLVM parameter information for such parameters (e.g. tw36934)

git-svn-id: trunk@46235 -

Jonas Maebe 5 years ago
parent
commit
69129f38e2
1 changed files with 4 additions and 0 deletions
  1. 4 0
      compiler/aarch64/cpupara.pas

+ 4 - 0
compiler/aarch64/cpupara.pas

@@ -599,6 +599,10 @@ unit cpupara;
                begin
                begin
                   paraloc^.size:=paracgsize;
                   paraloc^.size:=paracgsize;
                   paraloc^.loc:=LOC_REFERENCE;
                   paraloc^.loc:=LOC_REFERENCE;
+                  if assigned(hfabasedef) then
+                    paraloc^.def:=carraydef.getreusable_no_free(hfabasedef,paralen div hfabasedef.size)
+                  else
+                    paraloc^.def:=paradef;
 
 
                   { the current stack offset may not be properly aligned in
                   { the current stack offset may not be properly aligned in
                     case we're on Darwin and have allocated a non-variadic argument
                     case we're on Darwin and have allocated a non-variadic argument