Răsfoiți Sursa

* Removed abstract modifier for some optional (not needed for every CPU target) methods in tcg and tparamanager classes. These methods throw internal error if not overrode.

git-svn-id: trunk@11453 -
yury 17 ani în urmă
părinte
comite
0e34e98b82
2 a modificat fișierele cu 43 adăugiri și 6 ștergeri
  1. 28 4
      compiler/cgobj.pas
  2. 15 2
      compiler/paramgr.pas

+ 28 - 4
compiler/cgobj.pas

@@ -266,15 +266,15 @@ unit cgobj;
           procedure a_paramfpu_ref(list : TAsmList;size : tcgsize;const ref : treference;const cgpara : TCGPara);virtual;
 
           { vector register move instructions }
-          procedure a_loadmm_reg_reg(list: TAsmList; fromsize, tosize : tcgsize;reg1, reg2: tregister;shuffle : pmmshuffle); virtual; abstract;
-          procedure a_loadmm_ref_reg(list: TAsmList; fromsize, tosize : tcgsize;const ref: treference; reg: tregister;shuffle : pmmshuffle); virtual; abstract;
-          procedure a_loadmm_reg_ref(list: TAsmList; fromsize, tosize : tcgsize;reg: tregister; const ref: treference;shuffle : pmmshuffle); virtual; abstract;
+          procedure a_loadmm_reg_reg(list: TAsmList; fromsize, tosize : tcgsize;reg1, reg2: tregister;shuffle : pmmshuffle); virtual;
+          procedure a_loadmm_ref_reg(list: TAsmList; fromsize, tosize : tcgsize;const ref: treference; reg: tregister;shuffle : pmmshuffle); virtual;
+          procedure a_loadmm_reg_ref(list: TAsmList; fromsize, tosize : tcgsize;reg: tregister; const ref: treference;shuffle : pmmshuffle); virtual;
           procedure a_loadmm_loc_reg(list: TAsmList; size: tcgsize; const loc: tlocation; const reg: tregister;shuffle : pmmshuffle);
           procedure a_loadmm_reg_loc(list: TAsmList; size: tcgsize; const reg: tregister; const loc: tlocation;shuffle : pmmshuffle);
           procedure a_parammm_reg(list: TAsmList; size: tcgsize; reg: tregister;const cgpara : TCGPara;shuffle : pmmshuffle); virtual;
           procedure a_parammm_ref(list: TAsmList; size: tcgsize; const ref: treference;const cgpara : TCGPara;shuffle : pmmshuffle); virtual;
           procedure a_parammm_loc(list: TAsmList; const loc: tlocation; const cgpara : TCGPara;shuffle : pmmshuffle); virtual;
-          procedure a_opmm_reg_reg(list: TAsmList; Op: TOpCG; size : tcgsize;src,dst: tregister;shuffle : pmmshuffle); virtual;abstract;
+          procedure a_opmm_reg_reg(list: TAsmList; Op: TOpCG; size : tcgsize;src,dst: tregister;shuffle : pmmshuffle); virtual;
           procedure a_opmm_ref_reg(list: TAsmList; Op: TOpCG; size : tcgsize;const ref: treference; reg: tregister;shuffle : pmmshuffle); virtual;
           procedure a_opmm_loc_reg(list: TAsmList; Op: TOpCG; size : tcgsize;const loc: tlocation; reg: tregister;shuffle : pmmshuffle); virtual;
           procedure a_opmm_reg_ref(list: TAsmList; Op: TOpCG; size : tcgsize;reg: tregister;const ref: treference; shuffle : pmmshuffle); virtual;
@@ -3846,6 +3846,30 @@ implementation
       begin
       end;
 
+
+    procedure tcg.a_loadmm_reg_reg(list: TAsmList; fromsize, tosize: tcgsize; reg1, reg2: tregister; shuffle: pmmshuffle);
+      begin
+        internalerror(200807231);
+      end;
+
+
+    procedure tcg.a_loadmm_ref_reg(list: TAsmList; fromsize, tosize: tcgsize; const ref: treference; reg: tregister; shuffle: pmmshuffle);
+      begin
+        internalerror(200807232);
+      end;
+
+
+    procedure tcg.a_loadmm_reg_ref(list: TAsmList; fromsize, tosize: tcgsize; reg: tregister; const ref: treference; shuffle: pmmshuffle);
+      begin
+        internalerror(200807233);
+      end;
+
+
+    procedure tcg.a_opmm_reg_reg(list: TAsmList; Op: TOpCG; size: tcgsize; src, dst: tregister; shuffle: pmmshuffle);
+      begin
+        internalerror(200807234);
+      end;
+      
 {*****************************************************************************
                                     TCG64
 *****************************************************************************}

+ 15 - 2
compiler/paramgr.pas

@@ -111,8 +111,8 @@ unit paramgr;
           procedure createtempparaloc(list: TAsmList;calloption : tproccalloption;parasym : tparavarsym;var cgpara:TCGPara);virtual;
           procedure duplicateparaloc(list: TAsmList;calloption : tproccalloption;parasym : tparavarsym;var cgpara:TCGPara);
 
-          function parseparaloc(parasym : tparavarsym;const s : string) : boolean;virtual;abstract;
-          function parsefuncretloc(p : tabstractprocdef; const s : string) : boolean;virtual;abstract;
+          function parseparaloc(parasym : tparavarsym;const s : string) : boolean;virtual;
+          function parsefuncretloc(p : tabstractprocdef; const s : string) : boolean;virtual;
        end;
 
 
@@ -379,7 +379,20 @@ implementation
         create_paraloc_info(p,callerside);
         result:=create_paraloc_info(p,calleeside);
       end;
+      
 
+    function tparamanager.parseparaloc(parasym: tparavarsym; const s: string): boolean;
+      begin
+        Result:=False;
+        internalerror(200807235);
+      end;
+
+
+    function tparamanager.parsefuncretloc(p: tabstractprocdef; const s: string): boolean;
+      begin
+        Result:=False;
+        internalerror(200807236);
+      end;
 
 initialization
   ;