Browse Source

* fixed compilation for i386/m68k after r21878/21879

git-svn-id: trunk@21884 -
Jonas Maebe 13 years ago
parent
commit
d6066ed51a
3 changed files with 29 additions and 22 deletions
  1. 2 13
      compiler/i386/cgcpu.pas
  2. 27 3
      compiler/i386/hlcgcpu.pas
  3. 0 6
      compiler/m68k/cgcpu.pas

+ 2 - 13
compiler/i386/cgcpu.pas

@@ -45,8 +45,8 @@ unit cgcpu;
         procedure a_loadaddr_ref_cgpara(list : TAsmList;const r : treference;const cgpara : tcgpara);override;
 
         procedure g_proc_exit(list : TAsmList;parasize:longint;nostackframe:boolean);override;
-        procedure g_copyvaluepara_openarray(list : TAsmList;const ref:treference;const lenloc:tlocation;elesize:tcgint;destreg:tregister);override;
-        procedure g_releasevaluepara_openarray(list : TAsmList;const l:tlocation);override;
+        procedure g_copyvaluepara_openarray(list : TAsmList;const ref:treference;const lenloc:tlocation;elesize:tcgint;destreg:tregister);
+        procedure g_releasevaluepara_openarray(list : TAsmList;const l:tlocation);
 
         procedure g_exception_reason_save(list : TAsmList; const href : treference);override;
         procedure g_exception_reason_save_const(list : TAsmList; const href : treference; a: tcgint);override;
@@ -394,12 +394,6 @@ unit cgcpu;
         again,ok : tasmlabel;
 {$endif}
       begin
-        if paramanager.use_fixed_stack then
-          begin
-            inherited g_copyvaluepara_openarray(list,ref,lenloc,elesize,destreg);
-            exit;
-          end;
-
         { get stack space }
         getcpuregister(list,NR_EDI);
         a_load_loc_reg(list,OS_INT,lenloc,NR_EDI);
@@ -486,11 +480,6 @@ unit cgcpu;
 
     procedure tcg386.g_releasevaluepara_openarray(list : TAsmList;const l:tlocation);
       begin
-        if paramanager.use_fixed_stack then
-          begin
-            inherited g_releasevaluepara_openarray(list,l);
-            exit;
-          end;
         { Nothing to release }
       end;
 

+ 27 - 3
compiler/i386/hlcgcpu.pas

@@ -30,8 +30,8 @@ interface
 
   uses
     aasmdata,
-    symtype,parabase,
-    cgutils,
+    symtype,symdef,parabase,
+    cgbase,cgutils,
     hlcgobj, hlcgx86;
 
 
@@ -39,6 +39,9 @@ interface
     thlcgcpu = class(thlcgx86)
      protected
       procedure gen_loadfpu_loc_cgpara(list: TAsmList; size: tdef; const l: tlocation; const cgpara: tcgpara; locintsize: longint); override;
+     public
+      procedure g_copyvaluepara_openarray(list: TAsmList; const ref: treference; const lenloc: tlocation; arrdef: tarraydef; destreg: tregister); override;
+      procedure g_releasevaluepara_openarray(list: TAsmList; arrdef: tarraydef; const l: tlocation); override;
     end;
 
   procedure create_hlcodegen;
@@ -48,7 +51,6 @@ implementation
   uses
     globtype,verbose,
     paramgr,
-    cgbase,
     cpubase,tgobj,cgobj,cgcpu;
 
   { thlcgcpu }
@@ -169,6 +171,28 @@ implementation
     end;
 
 
+  procedure thlcgcpu.g_copyvaluepara_openarray(list: TAsmList; const ref: treference; const lenloc: tlocation; arrdef: tarraydef; destreg: tregister);
+    begin
+      if paramanager.use_fixed_stack then
+        begin
+          inherited;
+          exit;
+        end;
+      tcg386(cg).g_copyvaluepara_openarray(list,ref,lenloc,arrdef.elesize,destreg);
+    end;
+
+
+  procedure thlcgcpu.g_releasevaluepara_openarray(list: TAsmList; arrdef: tarraydef; const l: tlocation);
+    begin
+      if paramanager.use_fixed_stack then
+        begin
+          inherited;
+          exit;
+        end;
+      tcg386(cg).g_releasevaluepara_openarray(list,l);
+    end;
+
+
   procedure create_hlcodegen;
     begin
       hlcg:=thlcgcpu.create;

+ 0 - 6
compiler/m68k/cgcpu.pas

@@ -83,7 +83,6 @@ unit cgcpu;
         procedure g_concatcopy(list : TAsmList;const source,dest : treference;len : tcgint);override;
         { generates overflow checking code for a node }
         procedure g_overflowcheck(list: TAsmList; const l:tlocation; def:tdef); override;
-        procedure g_copyvaluepara_openarray(list : TAsmList;const ref:treference;const lenloc:tlocation;elesize:tcgint;destreg:tregister);override;
 
         procedure g_proc_entry(list : TAsmList;localsize : longint;nostackframe:boolean);override;
         procedure g_proc_exit(list : TAsmList;parasize:longint;nostackframe:boolean);override;
@@ -1294,11 +1293,6 @@ unit cgcpu;
       begin
       end;
 
-    procedure tcg68k.g_copyvaluepara_openarray(list : TAsmList;const ref:treference;const lenloc:tlocation;elesize:tcgint;destreg:tregister);
-      begin
-      end;
-
-
     procedure tcg68k.g_proc_entry(list: TAsmList; localsize: longint; nostackframe:boolean);
       var
         r,rsp: TRegister;