Browse Source

+ mfpvr, mfdcr, mtdcr, mfdec and mtdec opcodes (mantis #18878)

git-svn-id: trunk@21500 -
Jonas Maebe 13 năm trước cách đây
mục cha
commit
df99ef17b6

+ 6 - 4
compiler/powerpc/aoptcpu.pas

@@ -93,9 +93,10 @@ const
     a_insrwi_, a_rotlwi, a_rotlwi_, a_rotlw, a_rotlw_, a_slwi, a_slwi_,
     a_srwi, a_srwi_, a_clrlwi, a_clrlwi_, a_clrrwi, a_clrrwi_, a_clrslwi,
     a_clrslwi_, a_none, a_none, a_none, a_none, a_none, a_none, a_none,
-    a_none, a_none {move to special prupose reg}, a_none {move from special purpose reg},
+    a_none, a_none {move to special purpose reg}, a_none {move from special purpose reg},
     a_none, a_none, a_none, a_none, a_none, a_none, a_not, a_not_, a_none, a_none, a_none,
-    a_none, a_none, a_none, a_none);
+    a_none, a_none, a_none, a_none,
+    a_none, a_none, a_none, a_none, a_none);
 
   function TCpuAsmOptimizer.cmpi_mfcr_opt(p, next1, next2: taicpu): boolean;
     var
@@ -449,9 +450,10 @@ const
       a_insrwi_, a_rotlwi_, a_rotlwi_, a_rotlw_, a_rotlw_, a_slwi_, a_slwi_,
       a_srwi_, a_srwi_, a_clrlwi_, a_clrlwi_, a_clrrwi_, a_clrrwi_, a_clrslwi_,
       a_clrslwi_, a_none, a_none, a_none, a_none, a_none, a_none, a_none,
-      a_none, a_none {move to special prupose reg}, a_none {move from special purpose reg},
+      a_none, a_none {move to special purpose reg}, a_none {move from special purpose reg},
       a_none, a_none, a_none, a_none, a_mr_, a_mr_, a_not_, a_not_, a_none, a_none, a_none,
-      a_none, a_none, a_none, a_none);
+      a_none, a_none, a_none, a_none,
+      a_none, a_none, a_none, a_none, a_none);
 
   function changetomodifyflags(p: taicpu): boolean;
     begin

+ 3 - 2
compiler/powerpc/cpubase.pas

@@ -83,9 +83,10 @@ uses
         a_insrwi_, a_rotlwi, a_rotlwi_, a_rotlw, a_rotlw_, a_slwi, a_slwi_,
         a_srwi, a_srwi_, a_clrlwi, a_clrlwi_, a_clrrwi, a_clrrwi_, a_clrslwi,
         a_clrslwi_, a_blr, a_bctr, a_blrl, a_bctrl, a_crset, a_crclr, a_crmove,
-        a_crnot, a_mt {move to special prupose reg}, a_mf {move from special purpose reg},
+        a_crnot, a_mt {move to special purpose reg}, a_mf {move from special purpose reg},
         a_nop, a_li, a_lis, a_la, a_mr, a_mr_, a_not, a_not_, a_mtcr, a_mtlr, a_mflr,
-        a_mtctr, a_mfctr, a_mftbu, a_mfxer);
+        a_mtctr, a_mfctr, a_mftbu, a_mfxer,
+        a_mfpvr, a_mfdcr, a_mtdcr, a_mfdec, mtdec);
 
       {# This should define the array of instructions as string }
       op2strtable=array[tasmop] of string[8];

+ 2 - 1
compiler/powerpc/itcpugas.pas

@@ -75,7 +75,8 @@ interface
         'srwi', 'srwi.', 'clrlwi', 'clrlwi.', 'clrrwi', 'clrrwi.', 'clrslwi',
         'clrslwi.', 'blr', 'bctr', 'blrl', 'bctrl', 'crset', 'crclr', 'crmove',
         'crnot', 'mt', 'mf','nop', 'li', 'lis', 'la', 'mr','mr.','not', 'not.',
-        'mtcr', 'mtlr', 'mflr','mtctr', 'mfctr', 'mftbu', 'mfxer');
+        'mtcr', 'mtlr', 'mflr','mtctr', 'mfctr', 'mftbu', 'mfxer',
+        'mfpvr', 'mfdcr', 'mtdcr', 'mfdec', 'mtdec');
 
     function gas_regnum_search(const s:string):Tregister;
     function gas_regname(r:Tregister):string;