Browse Source

+ implemented getintparaloc() for llvm

git-svn-id: trunk@30430 -
Jonas Maebe 10 years ago
parent
commit
94aadb23ab
1 changed files with 10 additions and 0 deletions
  1. 10 0
      compiler/llvm/llvmpara.pas

+ 10 - 0
compiler/llvm/llvmpara.pas

@@ -45,6 +45,7 @@ unit llvmpara;
         architecture-specific code, or whether we will have to integrate parts
         architecture-specific code, or whether we will have to integrate parts
         into the various tcpuparamanager classes }
         into the various tcpuparamanager classes }
       tllvmparamanager = class(tcpuparamanager)
       tllvmparamanager = class(tcpuparamanager)
+        procedure getintparaloc(list: TAsmList; pd: tabstractprocdef; nr: longint; var cgpara: tcgpara); override;
         function param_use_paraloc(const cgpara: tcgpara): boolean; override;
         function param_use_paraloc(const cgpara: tcgpara): boolean; override;
         procedure createtempparaloc(list: TAsmList; calloption: tproccalloption; parasym: tparavarsym; can_use_final_stack_loc: boolean; var cgpara: TCGPara); override;
         procedure createtempparaloc(list: TAsmList; calloption: tproccalloption; parasym: tparavarsym; can_use_final_stack_loc: boolean; var cgpara: TCGPara); override;
         function create_paraloc_info(p: tabstractprocdef; side: tcallercallee): longint; override;
         function create_paraloc_info(p: tabstractprocdef; side: tcallercallee): longint; override;
@@ -66,6 +67,15 @@ unit llvmpara;
 
 
   { tllvmparamanager }
   { tllvmparamanager }
 
 
+  procedure tllvmparamanager.getintparaloc(list: TAsmList; pd: tabstractprocdef; nr: longint; var cgpara: tcgpara);
+    begin
+      if (nr<1) or (nr>pd.paras.count) then
+        InternalError(2015040401);
+      pd.init_paraloc_info(callerside);
+      createtempparaloc(list,pd.proccalloption,tparavarsym(pd.paras[nr-1]),true,cgpara);
+    end;
+
+
   function tllvmparamanager.param_use_paraloc(const cgpara: tcgpara): boolean;
   function tllvmparamanager.param_use_paraloc(const cgpara: tcgpara): boolean;
     begin
     begin
       { we can use the paraloc on the callee side if the SSA property is
       { we can use the paraloc on the callee side if the SSA property is