[llvm-commits] CVS: llvm/lib/Target/PowerPC/PPCInstr64Bit.td PPCInstrInfo.td

Chris Lattner lattner at cs.uiuc.edu
Tue Jun 27 11:36:56 PDT 2006



Changes in directory llvm/lib/Target/PowerPC:

PPCInstr64Bit.td updated: 1.14 -> 1.15
PPCInstrInfo.td updated: 1.236 -> 1.237
---
Log message:

Add 64-bit MTCTR so that indirect calls work.


---
Diffs of the changes:  (+6 -2)

 PPCInstr64Bit.td |    4 ++++
 PPCInstrInfo.td  |    4 ++--
 2 files changed, 6 insertions(+), 2 deletions(-)


Index: llvm/lib/Target/PowerPC/PPCInstr64Bit.td
diff -u llvm/lib/Target/PowerPC/PPCInstr64Bit.td:1.14 llvm/lib/Target/PowerPC/PPCInstr64Bit.td:1.15
--- llvm/lib/Target/PowerPC/PPCInstr64Bit.td:1.14	Tue Jun 27 13:22:50 2006
+++ llvm/lib/Target/PowerPC/PPCInstr64Bit.td	Tue Jun 27 13:36:44 2006
@@ -60,6 +60,10 @@
 def IMPLICIT_DEF_G8RC : Pseudo<(ops G8RC:$rD), "; $rD = IMPLICIT_DEF_G8RC",
                               [(set G8RC:$rD, (undef))]>;
 
+let Pattern = [(PPCmtctr G8RC:$rS)] in {
+def MTCTR8 : XFXForm_7_ext<31, 467, 9, (ops G8RC:$rS), "mtctr $rS", SprMTSPR>,
+            PPC970_DGroup_First, PPC970_Unit_FXU;
+}
 
 //===----------------------------------------------------------------------===//
 // Fixed point instructions.


Index: llvm/lib/Target/PowerPC/PPCInstrInfo.td
diff -u llvm/lib/Target/PowerPC/PPCInstrInfo.td:1.236 llvm/lib/Target/PowerPC/PPCInstrInfo.td:1.237
--- llvm/lib/Target/PowerPC/PPCInstrInfo.td:1.236	Tue Jun 27 13:18:41 2006
+++ llvm/lib/Target/PowerPC/PPCInstrInfo.td	Tue Jun 27 13:36:44 2006
@@ -71,7 +71,7 @@
 def callseq_start : SDNode<"ISD::CALLSEQ_START", SDT_PPCCallSeq,[SDNPHasChain]>;
 def callseq_end   : SDNode<"ISD::CALLSEQ_END",   SDT_PPCCallSeq,[SDNPHasChain]>;
 
-def SDT_PPCCall   : SDTypeProfile<0, -1, [SDTCisVT<0, i32>]>;
+def SDT_PPCCall   : SDTypeProfile<0, -1, [SDTCisInt<0>]>;
 def PPCcall       : SDNode<"PPCISD::CALL", SDT_PPCCall,
                            [SDNPHasChain, SDNPOptInFlag, SDNPOutFlag]>;
 def PPCmtctr      : SDNode<"PPCISD::MTCTR", SDT_PPCCall,
@@ -323,7 +323,7 @@
   def BL  : IForm<18, 0, 1, (ops calltarget:$func, variable_ops), 
                             "bl $func", BrB, []>;  // See Pat patterns below.
   def BLA : IForm<18, 1, 1, (ops aaddr:$func, variable_ops),
-                            "bla $func", BrB, [(PPCcall imm:$func)]>;
+                            "bla $func", BrB, [(PPCcall (i32 imm:$func))]>;
   def BCTRL : XLForm_2_ext<19, 528, 20, 0, 1, (ops variable_ops), "bctrl", BrB,
                            [(PPCbctrl)]>;
 }






More information about the llvm-commits mailing list