diff options
author | Hrvoje Varga <Hrvoje.Varga@imgtec.com> | 2016-03-24 08:02:09 +0000 |
---|---|---|
committer | Hrvoje Varga <Hrvoje.Varga@imgtec.com> | 2016-03-24 08:02:09 +0000 |
commit | 2cb74ac3c3f4bc747b697a44001c1ac7df34c960 (patch) | |
tree | 1e9d09baebe8f3c84d459aaa4516d057c4153a71 /llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp | |
parent | dbea1a1e51f0b5a2185c7393c294a460b759693d (diff) | |
download | bcm5719-llvm-2cb74ac3c3f4bc747b697a44001c1ac7df34c960.tar.gz bcm5719-llvm-2cb74ac3c3f4bc747b697a44001c1ac7df34c960.zip |
[mips][microMIPS] Implement MTC*, MTHC* and DMTC* instructions
Differential Revision: http://reviews.llvm.org/D17328
llvm-svn: 264246
Diffstat (limited to 'llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp')
-rw-r--r-- | llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp b/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp index e2d96ff5427..8f7aeb286d2 100644 --- a/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp +++ b/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp @@ -918,6 +918,17 @@ DecodeStatus MipsDisassembler::getInstruction(MCInst &Instr, uint64_t &Size, Size = 4; return Result; } + + if (hasMips32r6()) { + DEBUG(dbgs() << "Trying MicroMips32r6FPU table (32-bit opcodes):\n"); + Result = decodeInstruction(DecoderTableMicroMips32r6FPU32, Instr, Insn, + Address, this, STI); + if (Result != MCDisassembler::Fail) { + Size = 4; + return Result; + } + } + // This is an invalid instruction. Let the disassembler move forward by the // minimum instruction size. Size = 2; |