Browse Source

* fix for r41416: 64 bit values on 32 bit platforms can of course also be
passed in memory

git-svn-id: trunk@41526 -

Jonas Maebe 6 years ago
parent
commit
f78e2072a1
1 changed files with 1 additions and 1 deletions
  1. 1 1
      compiler/hlcg2ll.pas

+ 1 - 1
compiler/hlcg2ll.pas

@@ -1550,7 +1550,7 @@ implementation
 {$else cpu64bitalu}
 {$else cpu64bitalu}
             { use cg64 only for int64, not for 8 byte records; in particular,
             { use cg64 only for int64, not for 8 byte records; in particular,
               filter out records passed in fpu/mm register}
               filter out records passed in fpu/mm register}
-            if (l.size in [OS_64,OS_S64]) and (cgpara.Size in [OS_64,OS_S64]) and (cgpara.location^.loc=LOC_REGISTER) then
+            if (l.size in [OS_64,OS_S64]) and (cgpara.Size in [OS_64,OS_S64]) and (cgpara.location^.loc in [LOC_REGISTER,LOC_REFERENCE]) then
               cg64.a_load64_loc_cgpara(list,l,cgpara)
               cg64.a_load64_loc_cgpara(list,l,cgpara)
             else
             else
 {$endif cpu64bitalu}
 {$endif cpu64bitalu}