Browse Source

* ignore get/unget/alloc/dealloc of cpu registers when generating llvm code
o there are no cpu registers on the llvm target, but generic code may still
occasionally allocate them via the generic routines in case of e.g. a
hardcoded use of a function return register

git-svn-id: branches/hlcgllvm@28373 -

Jonas Maebe 11 years ago
parent
commit
50274f58b6
1 changed files with 28 additions and 0 deletions
  1. 28 0
      compiler/llvm/hlcgllvm.pas

+ 28 - 0
compiler/llvm/hlcgllvm.pas

@@ -43,6 +43,10 @@ uses
      protected
        procedure a_load_ref_cgpara_init_src(list: TAsmList; const para: tcgpara; const initialref: treference; var refsize: tdef; out newref: treference);
      public
+      procedure getcpuregister(list: TAsmList; r: Tregister); override;
+      procedure ungetcpuregister(list: TAsmList; r: Tregister); override;
+      procedure alloccpuregisters(list: TAsmList; rt: Tregistertype; const r: Tcpuregisterset); override;
+      procedure deallocallcpuregisters(list: TAsmList); override;
 
       function a_call_name(list : TAsmList;pd : tprocdef;const s : TSymStr; const paras: array of pcgpara; forceresdef: tdef; weak: boolean): tcgpara;override;
       function a_call_reg(list: TAsmList; pd: tabstractprocdef; reg: tregister; const paras: array of pcgpara): tcgpara; override;
@@ -264,6 +268,30 @@ implementation
     end;
 
 
+  procedure thlcgllvm.getcpuregister(list: TAsmList; r: Tregister);
+    begin
+      { don't do anything }
+    end;
+
+
+  procedure thlcgllvm.ungetcpuregister(list: TAsmList; r: Tregister);
+    begin
+      { don't do anything }
+    end;
+
+
+  procedure thlcgllvm.alloccpuregisters(list: TAsmList; rt: Tregistertype; const r: Tcpuregisterset);
+    begin
+      { don't do anything }
+    end;
+
+
+  procedure thlcgllvm.deallocallcpuregisters(list: TAsmList);
+    begin
+      { don't do anything }
+    end;
+
+
   function thlcgllvm.a_call_name(list: TAsmList; pd: tprocdef; const s: TSymStr; const paras: array of pcgpara; forceresdef: tdef; weak: boolean): tcgpara;
 
     procedure load_ref_anyreg(def: tdef; const ref: treference; reg: tregister; var callpara: pllvmcallpara);