Przeglądaj źródła

* fix armv7m compiler

git-svn-id: trunk@23686 -
florian 12 lat temu
rodzic
commit
9198630ce3
1 zmienionych plików z 22 dodań i 15 usunięć
  1. 22 15
      compiler/arm/cgcpu.pas

+ 22 - 15
compiler/arm/cgcpu.pas

@@ -115,11 +115,8 @@ unit cgcpu;
         function get_darwin_call_stub(const s: string; weak: boolean): tasmsymbol;
       end;
 
-      { tarmcgarm is shared between normal arm and thumb-2 }
-      tarmcgarm = class(tbasecgarm)
-        procedure init_register_allocators;override;
-        procedure done_register_allocators;override;
-
+      { tcgarm is shared between normal arm and thumb-2 }
+      tcgarm = class(tbasecgarm)
         procedure a_op_const_reg(list : TAsmList; Op: TOpCG; size: TCGSize; a: tcgint; reg: TRegister); override;
         procedure a_op_reg_reg(list : TAsmList; Op: TOpCG; size: TCGSize; src, dst: TRegister); override;
 
@@ -134,6 +131,13 @@ unit cgcpu;
         procedure a_load_ref_reg(list : TAsmList; fromsize, tosize : tcgsize;const Ref : treference;reg : tregister);override;
       end;
 
+      { normal arm cg }
+      tarmcgarm = class(tcgarm)
+        procedure init_register_allocators;override;
+        procedure done_register_allocators;override;
+      end;
+
+      { 64 bit cg for all arm flavours }
       tbasecg64farm = class(tcg64f32)
       end;
 
@@ -149,6 +153,9 @@ unit cgcpu;
         procedure a_loadmm_reg_intreg64(list: TAsmList; mmsize: tcgsize; mmreg: tregister; intreg: tregister64);override;
       end;
 
+      tarmcg64farm = class(tcg64farm)
+      end;
+
       tthumbcgarm = class(tbasecgarm)
         procedure init_register_allocators;override;
         procedure done_register_allocators;override;
@@ -170,7 +177,7 @@ unit cgcpu;
         procedure a_op64_const_reg(list : TAsmList;op:TOpCG;size : tcgsize;value : int64;reg : tregister64);override;
       end;
 
-      tthumb2cgarm = class(tarmcgarm)
+      tthumb2cgarm = class(tcgarm)
         procedure init_register_allocators;override;
         procedure done_register_allocators;override;
 
@@ -291,7 +298,7 @@ unit cgcpu;
       end;
 
 
-     procedure tarmcgarm.a_load_const_reg(list : TAsmList; size: tcgsize; a : tcgint;reg : tregister);
+     procedure tcgarm.a_load_const_reg(list : TAsmList; size: tcgsize; a : tcgint;reg : tregister);
        var
           imm_shift : byte;
           l : tasmlabel;
@@ -332,7 +339,7 @@ unit cgcpu;
        end;
 
 
-     procedure tarmcgarm.a_load_ref_reg(list : TAsmList; fromsize, tosize : tcgsize;const Ref : treference;reg : tregister);
+     procedure tcgarm.a_load_ref_reg(list : TAsmList; fromsize, tosize : tcgsize;const Ref : treference;reg : tregister);
        var
          oppostfix:toppostfix;
          usedtmpref: treference;
@@ -616,13 +623,13 @@ unit cgcpu;
       end;
 
 
-     procedure tarmcgarm.a_op_const_reg(list : TAsmList; Op: TOpCG; size: TCGSize; a: tcgint; reg: TRegister);
+     procedure tcgarm.a_op_const_reg(list : TAsmList; Op: TOpCG; size: TCGSize; a: tcgint; reg: TRegister);
        begin
           a_op_const_reg_reg(list,op,size,a,reg,reg);
        end;
 
 
-     procedure tarmcgarm.a_op_reg_reg(list : TAsmList; Op: TOpCG; size: TCGSize; src, dst: TRegister);
+     procedure tcgarm.a_op_reg_reg(list : TAsmList; Op: TOpCG; size: TCGSize; src, dst: TRegister);
        var
          so : tshifterop;
        begin
@@ -667,7 +674,7 @@ unit cgcpu;
         (PF_None,PF_None,PF_None,PF_None,PF_None,PF_None,PF_None,PF_None,PF_None,PF_None,PF_None,
          PF_None,PF_None,PF_None,PF_None,PF_None,PF_None,PF_None);
 
-    procedure tarmcgarm.a_op_const_reg_reg(list: TAsmList; op: TOpCg;
+    procedure tcgarm.a_op_const_reg_reg(list: TAsmList; op: TOpCg;
       size: tcgsize; a: tcgint; src, dst: tregister);
       var
         ovloc : tlocation;
@@ -676,7 +683,7 @@ unit cgcpu;
       end;
 
 
-    procedure tarmcgarm.a_op_reg_reg_reg(list: TAsmList; op: TOpCg;
+    procedure tcgarm.a_op_reg_reg_reg(list: TAsmList; op: TOpCg;
       size: tcgsize; src1, src2, dst: tregister);
       var
         ovloc : tlocation;
@@ -814,7 +821,7 @@ unit cgcpu;
       end;
 
 
-    procedure tarmcgarm.a_op_const_reg_reg_checkoverflow(list: TAsmList; op: TOpCg; size: tcgsize; a: tcgint; src, dst: tregister;setflags : boolean;var ovloc : tlocation);
+    procedure tcgarm.a_op_const_reg_reg_checkoverflow(list: TAsmList; op: TOpCg; size: tcgsize; a: tcgint; src, dst: tregister;setflags : boolean;var ovloc : tlocation);
       var
         shift : byte;
         tmpreg : tregister;
@@ -962,7 +969,7 @@ unit cgcpu;
       end;
 
 
-    procedure tarmcgarm.a_op_reg_reg_reg_checkoverflow(list: TAsmList; op: TOpCg; size: tcgsize; src1, src2, dst: tregister;setflags : boolean;var ovloc : tlocation);
+    procedure tcgarm.a_op_reg_reg_reg_checkoverflow(list: TAsmList; op: TOpCg; size: tcgsize; src1, src2, dst: tregister;setflags : boolean;var ovloc : tlocation);
       var
         so : tshifterop;
         tmpreg,overflowreg : tregister;
@@ -4923,7 +4930,7 @@ unit cgcpu;
         else
           begin
             cg:=tarmcgarm.create;
-            cg64:=tcg64farm.create;
+            cg64:=tarmcg64farm.create;
 
             casmoptimizer:=TCpuAsmOptimizer;
           end;