summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AArch64/Utils
diff options
context:
space:
mode:
authorArtyom Skrobov <Artyom.Skrobov@arm.com>2014-05-29 11:34:50 +0000
committerArtyom Skrobov <Artyom.Skrobov@arm.com>2014-05-29 11:34:50 +0000
commit0d22e2afe712fa777b618d88098e4b090913ee00 (patch)
treeabf002ea87fbb140a17b053a5c5f6e83348b0daf /llvm/lib/Target/AArch64/Utils
parent7e9e31ebaf9d63d921e4e3f3c48a1536c145eebb (diff)
downloadbcm5719-llvm-0d22e2afe712fa777b618d88098e4b090913ee00.tar.gz
bcm5719-llvm-0d22e2afe712fa777b618d88098e4b090913ee00.zip
Restore getInvertedCondCode() from the phased-out backend, fixing disassembly for NV
llvm-svn: 209803
Diffstat (limited to 'llvm/lib/Target/AArch64/Utils')
-rw-r--r--llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h20
1 files changed, 3 insertions, 17 deletions
diff --git a/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h b/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
index 9e4c389cc2e..9d2ce21c962 100644
--- a/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
+++ b/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
@@ -233,23 +233,9 @@ inline static const char *getCondCodeName(CondCode Code) {
}
inline static CondCode getInvertedCondCode(CondCode Code) {
- switch (Code) {
- default: llvm_unreachable("Unknown condition code");
- case EQ: return NE;
- case NE: return EQ;
- case HS: return LO;
- case LO: return HS;
- case MI: return PL;
- case PL: return MI;
- case VS: return VC;
- case VC: return VS;
- case HI: return LS;
- case LS: return HI;
- case GE: return LT;
- case LT: return GE;
- case GT: return LE;
- case LE: return GT;
- }
+ // To reverse a condition it's necessary to only invert the low bit:
+
+ return static_cast<CondCode>(static_cast<unsigned>(Code) ^ 0x1);
}
/// Given a condition code, return NZCV flags that would satisfy that condition.
OpenPOWER on IntegriCloud