diff options
author | Evan Cheng <evan.cheng@apple.com> | 2006-01-09 18:28:21 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2006-01-09 18:28:21 +0000 |
commit | 6da8d99f70826552b3a4e7bd5d1376881574b4b1 (patch) | |
tree | 73bd32227a4c899c3fd9e36171cd65257c2fd475 /lib/Target/PowerPC/PPCInstrInfo.td | |
parent | 51fecc80f77e1ed048c69b8905742b3ca495d757 (diff) | |
download | external_llvm-6da8d99f70826552b3a4e7bd5d1376881574b4b1.zip external_llvm-6da8d99f70826552b3a4e7bd5d1376881574b4b1.tar.gz external_llvm-6da8d99f70826552b3a4e7bd5d1376881574b4b1.tar.bz2 |
New DAG node properties SNDPInFlag, SNDPOutFlag, and SNDPOptInFlag to replace
hasInFlag, hasOutFlag.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25155 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/PowerPC/PPCInstrInfo.td')
-rw-r--r-- | lib/Target/PowerPC/PPCInstrInfo.td | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/lib/Target/PowerPC/PPCInstrInfo.td b/lib/Target/PowerPC/PPCInstrInfo.td index 66b1bad..1e7166c 100644 --- a/lib/Target/PowerPC/PPCInstrInfo.td +++ b/lib/Target/PowerPC/PPCInstrInfo.td @@ -47,7 +47,8 @@ def callseq_start : SDNode<"ISD::CALLSEQ_START", SDT_PPCCallSeq,[SDNPHasChain]>; def callseq_end : SDNode<"ISD::CALLSEQ_END", SDT_PPCCallSeq,[SDNPHasChain]>; def SDT_PPCRetFlag : SDTypeProfile<0, 0, []>; -def retflag : SDNode<"PPCISD::RET_FLAG", SDT_PPCRetFlag, [SDNPHasChain]>; +def retflag : SDNode<"PPCISD::RET_FLAG", SDT_PPCRetFlag, + [SDNPHasChain, SDNPOptInFlag]>; //===----------------------------------------------------------------------===// // PowerPC specific transformation functions and pattern fragments. @@ -222,13 +223,10 @@ let usesCustomDAGSchedInserter = 1 in { // Expanded by the scheduler. } -let isTerminator = 1 in { +let isTerminator = 1, noResults = 1 in { // FIXME: temporary workaround for return without an incoming flag. - let isReturn = 1, noResults = 1 in - def BLRVOID : XLForm_2_ext<19, 16, 20, 0, 0, (ops), "blr", BrB, [(ret)]>; - let isReturn = 1, noResults = 1, hasInFlag = 1 in - def BLR : XLForm_2_ext<19, 16, 20, 0, 0, (ops), "blr", BrB, []>; - let noResults = 1 in + let isReturn = 1 in + def BLR : XLForm_2_ext<19, 16, 20, 0, 0, (ops), "blr", BrB, [(retflag)]>; def BCTR : XLForm_2_ext<19, 528, 20, 0, 0, (ops), "bctr", BrB, []>; } @@ -1072,8 +1070,6 @@ def : Pat<(v4i32 (load xoaddr:$src)), def : Pat<(store (v4i32 VRRC:$rS), xoaddr:$dst), (STVX (v4i32 VRRC:$rS), xoaddr:$dst)>; -def : Pat<(retflag), (BLR)>; - // Same as above, but using a temporary. FIXME: implement temporaries :) /* def : Pattern<(xor GPRC:$in, imm:$imm), |