[llvm] r209803 - Restore getInvertedCondCode() from the phased-out backend, fixing disassembly for NV
Artyom Skrobov
Artyom.Skrobov at arm.com
Thu May 29 04:34:50 PDT 2014
Author: askrobov
Date: Thu May 29 06:34:50 2014
New Revision: 209803
URL: http://llvm.org/viewvc/llvm-project?rev=209803&view=rev
Log:
Restore getInvertedCondCode() from the phased-out backend, fixing disassembly for NV
Modified:
llvm/trunk/lib/Target/AArch64/Utils/AArch64BaseInfo.h
llvm/trunk/test/MC/Disassembler/AArch64/basic-a64-instructions.txt
Modified: llvm/trunk/lib/Target/AArch64/Utils/AArch64BaseInfo.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/Utils/AArch64BaseInfo.h?rev=209803&r1=209802&r2=209803&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AArch64/Utils/AArch64BaseInfo.h (original)
+++ llvm/trunk/lib/Target/AArch64/Utils/AArch64BaseInfo.h Thu May 29 06:34:50 2014
@@ -233,23 +233,9 @@ inline static const char *getCondCodeNam
}
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.
Modified: llvm/trunk/test/MC/Disassembler/AArch64/basic-a64-instructions.txt
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/Disassembler/AArch64/basic-a64-instructions.txt?rev=209803&r1=209802&r2=209803&view=diff
==============================================================================
--- llvm/trunk/test/MC/Disassembler/AArch64/basic-a64-instructions.txt (original)
+++ llvm/trunk/test/MC/Disassembler/AArch64/basic-a64-instructions.txt Thu May 29 06:34:50 2014
@@ -965,16 +965,18 @@
# CHECK: cinv w3, w5, gt
# CHECK: cinv wzr, w4, le
-# CHECK: csetm w9, lt
+# CHECK: csetm w9, lt
# CHECK: cinv x3, x5, gt
# CHECK: cinv xzr, x4, le
-# CHECK: csetm x9, lt
+# CHECK: csetm x9, lt
+# CHECK: cinv x0, x0, nv
0xa3 0xd0 0x85 0x5a
0x9f 0xc0 0x84 0x5a
0xe9 0xa3 0x9f 0x5a
0xa3 0xd0 0x85 0xda
0x9f 0xc0 0x84 0xda
0xe9 0xa3 0x9f 0xda
+0x00 0xe0 0x80 0xda
# CHECK: cneg w3, w5, gt
# CHECK: cneg wzr, w4, le
More information about the llvm-commits
mailing list