diff options
author | Craig Topper <craig.topper@gmail.com> | 2015-02-13 07:42:25 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@gmail.com> | 2015-02-13 07:42:25 +0000 |
commit | 916708f1527bf9e18e9dfb29616293610b1f3003 (patch) | |
tree | ef1585f6b58ba115871d8135b70c5a7aef6de55f /llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp | |
parent | e32546dd2988d9f2141da758725a55101201895c (diff) | |
download | bcm5719-llvm-916708f1527bf9e18e9dfb29616293610b1f3003.tar.gz bcm5719-llvm-916708f1527bf9e18e9dfb29616293610b1f3003.zip |
[X86] Add support for parsing and printing the mnemonic aliases for the XOP VPCOM instructions.
llvm-svn: 229078
Diffstat (limited to 'llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp')
-rw-r--r-- | llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp b/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp index 57f0a66a287..91d1828ddb9 100644 --- a/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp +++ b/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp @@ -90,8 +90,24 @@ void X86IntelInstPrinter::printSSEAVXCC(const MCInst *MI, unsigned Op, } } +void X86IntelInstPrinter::printXOPCC(const MCInst *MI, unsigned Op, + raw_ostream &O) { + int64_t Imm = MI->getOperand(Op).getImm(); + switch (Imm) { + default: llvm_unreachable("Invalid xopcc argument!"); + case 0: O << "lt"; break; + case 1: O << "le"; break; + case 2: O << "gt"; break; + case 3: O << "ge"; break; + case 4: O << "eq"; break; + case 5: O << "neq"; break; + case 6: O << "false"; break; + case 7: O << "true"; break; + } +} + void X86IntelInstPrinter::printRoundingControl(const MCInst *MI, unsigned Op, - raw_ostream &O) { + raw_ostream &O) { int64_t Imm = MI->getOperand(Op).getImm() & 0x3; switch (Imm) { case 0: O << "{rn-sae}"; break; |