diff options
author | Jozef Kolek <jozef.kolek@imgtec.com> | 2015-04-20 14:40:38 +0000 |
---|---|---|
committer | Jozef Kolek <jozef.kolek@imgtec.com> | 2015-04-20 14:40:38 +0000 |
commit | 676d60125c48f7fc2725692669836538287bca10 (patch) | |
tree | 1b7301aee207b94c48a40425efe30eee4885bbde /llvm/lib/Target/Mips/Disassembler | |
parent | 97df86ceb1dfc701e0d5a900156b6a322c922562 (diff) | |
download | bcm5719-llvm-676d60125c48f7fc2725692669836538287bca10.tar.gz bcm5719-llvm-676d60125c48f7fc2725692669836538287bca10.zip |
[mips][microMIPSr6] Implement disassembler support
Implement disassembler support for microMIPS32r6.
Differential Revision: http://reviews.llvm.org/D8490
llvm-svn: 235307
Diffstat (limited to 'llvm/lib/Target/Mips/Disassembler')
-rw-r--r-- | llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp b/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp index 8849366e837..f9d00291419 100644 --- a/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp +++ b/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp @@ -837,10 +837,17 @@ DecodeStatus MipsDisassembler::getInstruction(MCInst &Instr, uint64_t &Size, if (Result == MCDisassembler::Fail) return MCDisassembler::Fail; - DEBUG(dbgs() << "Trying MicroMips32 table (32-bit instructions):\n"); - // Calling the auto-generated decoder function. - Result = decodeInstruction(DecoderTableMicroMips32, Instr, Insn, Address, - this, STI); + if (hasMips32r6()) { + DEBUG(dbgs() << "Trying MicroMips32r632 table (32-bit instructions):\n"); + // Calling the auto-generated decoder function. + Result = decodeInstruction(DecoderTableMicroMips32r632, Instr, Insn, Address, + this, STI); + } else { + DEBUG(dbgs() << "Trying MicroMips32 table (32-bit instructions):\n"); + // Calling the auto-generated decoder function. + Result = decodeInstruction(DecoderTableMicroMips32, Instr, Insn, Address, + this, STI); + } if (Result != MCDisassembler::Fail) { Size = 4; return Result; |