aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/SystemZ/SystemZInstrInfo.cpp
diff options
context:
space:
mode:
authorAnton Korobeynikov <asl@math.spbu.ru>2009-07-16 13:52:51 +0000
committerAnton Korobeynikov <asl@math.spbu.ru>2009-07-16 13:52:51 +0000
commit7d1e39b7c62265637ea821136e83aa66afa2aad4 (patch)
tree8eef8154248e2d460c25a9c784e113e9d863126e /lib/Target/SystemZ/SystemZInstrInfo.cpp
parent4ec3e5ffd10b23c3614cd9a766c2a3ec1fe62ba4 (diff)
SELECT_CC lowering
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75948 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/SystemZ/SystemZInstrInfo.cpp')
-rw-r--r--lib/Target/SystemZ/SystemZInstrInfo.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/lib/Target/SystemZ/SystemZInstrInfo.cpp b/lib/Target/SystemZ/SystemZInstrInfo.cpp
index 335d460226..9734709c6b 100644
--- a/lib/Target/SystemZ/SystemZInstrInfo.cpp
+++ b/lib/Target/SystemZ/SystemZInstrInfo.cpp
@@ -239,3 +239,32 @@ SystemZInstrInfo::InsertBranch(MachineBasicBlock &MBB, MachineBasicBlock *TBB,
return 0;
}
+
+const TargetInstrDesc&
+SystemZInstrInfo::getBrCond(SystemZCC::CondCodes CC) const {
+ unsigned Opc;
+ switch (CC) {
+ default:
+ assert(0 && "Unknown condition code!");
+ case SystemZCC::E:
+ Opc = SystemZ::JE;
+ break;
+ case SystemZCC::NE:
+ Opc = SystemZ::JNE;
+ break;
+ case SystemZCC::H:
+ Opc = SystemZ::JH;
+ break;
+ case SystemZCC::L:
+ Opc = SystemZ::JL;
+ break;
+ case SystemZCC::HE:
+ Opc = SystemZ::JHE;
+ break;
+ case SystemZCC::LE:
+ Opc = SystemZ::JLE;
+ break;
+ }
+
+ return get(Opc);
+}