diff options
author | Sirish Pande <spande@codeaurora.org> | 2012-05-12 05:10:30 +0000 |
---|---|---|
committer | Sirish Pande <spande@codeaurora.org> | 2012-05-12 05:10:30 +0000 |
commit | b33857040f63a9fdfb0c2a2ca2af67ec12cf9d02 (patch) | |
tree | 760d3ac8adf172ac52507e4a78ef55d81d197b78 /lib/Target/Hexagon/HexagonInstrInfo.cpp | |
parent | 1da1cdf5040e8efacf3dc3caee7ea62735655953 (diff) | |
download | llvm-b33857040f63a9fdfb0c2a2ca2af67ec12cf9d02.tar.gz llvm-b33857040f63a9fdfb0c2a2ca2af67ec12cf9d02.tar.bz2 llvm-b33857040f63a9fdfb0c2a2ca2af67ec12cf9d02.tar.xz |
Support for Hexagon feature, New Value Jump.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156698 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/Hexagon/HexagonInstrInfo.cpp')
-rw-r--r-- | lib/Target/Hexagon/HexagonInstrInfo.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/lib/Target/Hexagon/HexagonInstrInfo.cpp b/lib/Target/Hexagon/HexagonInstrInfo.cpp index 2448b688f5..80dd2ec974 100644 --- a/lib/Target/Hexagon/HexagonInstrInfo.cpp +++ b/lib/Target/Hexagon/HexagonInstrInfo.cpp @@ -1922,6 +1922,12 @@ getMatchingCondBranchOpcode(int Opc, bool invertPredicate) const { case Hexagon::JMP: return !invertPredicate ? Hexagon::JMP_c : Hexagon::JMP_cNot; + case Hexagon::JMP_EQrrPt_nv_V4: + return !invertPredicate ? Hexagon::JMP_EQrrPt_nv_V4 : + Hexagon::JMP_EQrrNotPt_nv_V4; + case Hexagon::JMP_EQriPt_nv_V4: + return !invertPredicate ? Hexagon::JMP_EQriPt_nv_V4 : + Hexagon::JMP_EQriNotPt_nv_V4; case Hexagon::ADD_ri: return !invertPredicate ? Hexagon::ADD_ri_cPt : Hexagon::ADD_ri_cNotPt; @@ -2610,6 +2616,25 @@ isSpillPredRegOp(const MachineInstr *MI) const { case Hexagon::LDriw_pred : return true; } +} + +bool HexagonInstrInfo::isNewValueJumpCandidate(const MachineInstr *MI) const { + switch (MI->getOpcode()) { + case Hexagon::CMPEQrr: + case Hexagon::CMPEQri: + case Hexagon::CMPLTrr: + case Hexagon::CMPGTrr: + case Hexagon::CMPGTri: + case Hexagon::CMPLTUrr: + case Hexagon::CMPGTUrr: + case Hexagon::CMPGTUri: + case Hexagon::CMPGEri: + case Hexagon::CMPGEUri: + return true; + + default: + return false; + } return false; } |