diff options
author | Joey Gouly <joey.gouly@arm.com> | 2013-07-17 13:59:38 +0000 |
---|---|---|
committer | Joey Gouly <joey.gouly@arm.com> | 2013-07-17 13:59:38 +0000 |
commit | 19c14abf1c4ccebfa7d07bdd6ea8462a15c0b749 (patch) | |
tree | 3b58af9c3707157bc61f555db9f6a2ef18229978 /lib/Target/ARM/Disassembler/ARMDisassembler.cpp | |
parent | 946dbd83df0aa42e67a0a17af32475b273c2e8f8 (diff) | |
download | llvm-19c14abf1c4ccebfa7d07bdd6ea8462a15c0b749.tar.gz llvm-19c14abf1c4ccebfa7d07bdd6ea8462a15c0b749.tar.bz2 llvm-19c14abf1c4ccebfa7d07bdd6ea8462a15c0b749.tar.xz |
[ARMv8] Add support for the NEON instructions vmaxnm/vminnm.
This adds a new class for non-predicable NEON instructions and a
new DecoderNamespace for v8 NEON instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186504 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/Disassembler/ARMDisassembler.cpp')
-rw-r--r-- | lib/Target/ARM/Disassembler/ARMDisassembler.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/Target/ARM/Disassembler/ARMDisassembler.cpp b/lib/Target/ARM/Disassembler/ARMDisassembler.cpp index 32ce3be9c8..ce4dbb969e 100644 --- a/lib/Target/ARM/Disassembler/ARMDisassembler.cpp +++ b/lib/Target/ARM/Disassembler/ARMDisassembler.cpp @@ -499,7 +499,14 @@ DecodeStatus ARMDisassembler::getInstruction(MCInst &MI, uint64_t &Size, } MI.clear(); + result = decodeInstruction(DecoderTablev8NEON32, MI, insn, Address, + this, STI); + if (result != MCDisassembler::Fail) { + Size = 4; + return result; + } + MI.clear(); Size = 0; return MCDisassembler::Fail; } @@ -818,6 +825,17 @@ DecodeStatus ThumbDisassembler::getInstruction(MCInst &MI, uint64_t &Size, } } + MI.clear(); + uint32_t NEONv8Insn = insn32; + NEONv8Insn &= 0xF3FFFFFF; // Clear bits 27-26 + result = decodeInstruction(DecoderTablev8NEON32, MI, NEONv8Insn, Address, + this, STI); + if (result != MCDisassembler::Fail) { + Size = 4; + return result; + } + + MI.clear(); Size = 0; return MCDisassembler::Fail; } |