Bläddra i källkod

Merged revisions 10295 via svnmerge from
http://svn.freepascal.org/svn/fpc/trunk

........
r10295 | florian | 2008-02-11 14:47:41 +0100 (Mon, 11 Feb 2008) | 2 lines

* fixes safecall on non-win64 x86-64, should solve random rte 229
........

git-svn-id: branches/fixes_2_2@10313 -

florian 17 år sedan
förälder
incheckning
d2d461ece3
1 ändrade filer med 5 tillägg och 1 borttagningar
  1. 5 1
      compiler/ncgcal.pas

+ 5 - 1
compiler/ncgcal.pas

@@ -859,6 +859,7 @@ implementation
 {$ifdef vtentry}
         sym : tasmsymbol;
 {$endif vtentry}
+        cgpara : tcgpara;
       begin
          if not assigned(procdefinition) or
             not procdefinition.has_paraloc_info then
@@ -1100,7 +1101,10 @@ implementation
          if procdefinition.proccalloption=pocall_safecall then
            begin
 {$ifdef x86_64}
-             cg.a_load_reg_reg(current_asmdata.CurrAsmList,OS_ADDR,OS_ADDR,NR_RAX,NR_RCX);
+             cgpara.init;
+             paramanager.getintparaloc(pocall_default,1,cgpara);
+             cg.a_param_reg(current_asmdata.CurrAsmList,OS_ADDR,NR_RAX,cgpara);
+             cgpara.done;          
 {$endif x86_64}
              cg.allocallcpuregisters(current_asmdata.CurrAsmList);
              cg.a_call_name(current_asmdata.CurrAsmList,'FPC_SAFECALLCHECK');