From df99ef17b61deb15469d21a2939806a47836f947 Mon Sep 17 00:00:00 2001 From: Jonas Maebe Date: Wed, 6 Jun 2012 18:17:55 +0000 Subject: [PATCH] + mfpvr, mfdcr, mtdcr, mfdec and mtdec opcodes (mantis #18878) git-svn-id: trunk@21500 - --- compiler/powerpc/aoptcpu.pas | 10 ++++++---- compiler/powerpc/cpubase.pas | 5 +++-- compiler/powerpc/itcpugas.pas | 3 ++- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/compiler/powerpc/aoptcpu.pas b/compiler/powerpc/aoptcpu.pas index cacde466d2..5df0e92e23 100644 --- a/compiler/powerpc/aoptcpu.pas +++ b/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 diff --git a/compiler/powerpc/cpubase.pas b/compiler/powerpc/cpubase.pas index 4420ada0ed..a33e214d48 100644 --- a/compiler/powerpc/cpubase.pas +++ b/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]; diff --git a/compiler/powerpc/itcpugas.pas b/compiler/powerpc/itcpugas.pas index 31ff05fdc0..2fa37cf15c 100644 --- a/compiler/powerpc/itcpugas.pas +++ b/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;