aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
diff options
context:
space:
mode:
authorSjoerd Meijer <sjoerd.meijer@arm.com>2017-08-11 09:52:30 +0000
committerSjoerd Meijer <sjoerd.meijer@arm.com>2017-08-11 09:52:30 +0000
commit7426c97bc6448786c45f354c58a0b74dde6be6e7 (patch)
tree45070b221ee297faa6aafe4787850264c73a6af5 /llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
parent9b6b5d5a88b63f89f56708428175249e4a4e55f6 (diff)
downloadllvm-7426c97bc6448786c45f354c58a0b74dde6be6e7.zip
llvm-7426c97bc6448786c45f354c58a0b74dde6be6e7.tar.gz
llvm-7426c97bc6448786c45f354c58a0b74dde6be6e7.tar.bz2
[ARM] Assembler support for the ARMv8.2a dot product instructions
Commit r310480 added the AArch64 ARMv8.2a dot product instructions; this adds the AArch32 instructions. Differential Revision: https://reviews.llvm.org/D36575 llvm-svn: 310701
Diffstat (limited to 'llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp')
-rw-r--r--llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp b/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
index 5ab236b..472df5b 100644
--- a/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
+++ b/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
@@ -486,6 +486,13 @@ DecodeStatus ARMDisassembler::getInstruction(MCInst &MI, uint64_t &Size,
}
}
+ Result =
+ decodeInstruction(DecoderTableCoProc32, MI, Insn, Address, this, STI);
+ if (Result != MCDisassembler::Fail) {
+ Size = 4;
+ return checkDecodedInstruction(MI, Size, Address, OS, CS, Insn, Result);
+ }
+
Size = 4;
return MCDisassembler::Fail;
}
@@ -821,6 +828,14 @@ DecodeStatus ThumbDisassembler::getInstruction(MCInst &MI, uint64_t &Size,
}
}
+ Result =
+ decodeInstruction(DecoderTableThumb2CoProc32, MI, Insn32, Address, this, STI);
+ if (Result != MCDisassembler::Fail) {
+ Size = 4;
+ Check(Result, AddThumbPredicate(MI));
+ return Result;
+ }
+
Size = 0;
return MCDisassembler::Fail;
}