From: Zoran Jovanovic Date: Tue, 15 Sep 2015 15:21:27 +0000 (+0000) Subject: [mips][microMIPS] Fix an issue with disassembling lwm32 instruction X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=3cedd0b1a02e9a3fc9fee294742079d3e5d23a7f;p=oota-llvm.git [mips][microMIPS] Fix an issue with disassembling lwm32 instruction Fixed microMIPS disassembler crash on test case generated by llvm-mc-fuzzer. Differential Revision: http://reviews.llvm.org/D12881 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@247698 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/Mips/Disassembler/MipsDisassembler.cpp b/lib/Target/Mips/Disassembler/MipsDisassembler.cpp index 6333d477716..4aa0afd7e03 100644 --- a/lib/Target/Mips/Disassembler/MipsDisassembler.cpp +++ b/lib/Target/Mips/Disassembler/MipsDisassembler.cpp @@ -1915,7 +1915,7 @@ static DecodeStatus DecodeRegListOperand(MCInst &Inst, uint64_t Address, const void *Decoder) { unsigned Regs[] = {Mips::S0, Mips::S1, Mips::S2, Mips::S3, Mips::S4, Mips::S5, - Mips::S6, Mips::FP}; + Mips::S6, Mips::S7, Mips::FP}; unsigned RegNum; unsigned RegLst = fieldFromInstruction(Insn, 21, 5); diff --git a/test/MC/Disassembler/Mips/micromips.txt b/test/MC/Disassembler/Mips/micromips.txt index 71768307879..238d786a2b6 100644 --- a/test/MC/Disassembler/Mips/micromips.txt +++ b/test/MC/Disassembler/Mips/micromips.txt @@ -241,6 +241,8 @@ 0x20 0x44 0x50 0x08 # CHECK: lwm32 $16, $17, 8($4) +0x21 0x3b 0x59 0x84 # CHECK: lwm32 $16, $17, $18, $19, $20, $21, $22, $23, $fp, -1660($27) + 0x20 0x44 0xd0 0x08 # CHECK: swm32 $16, $17, 8($4) 0x22 0x04 0x90 0x08 # CHECK: swp $16, 8($4) diff --git a/test/MC/Disassembler/Mips/micromips_le.txt b/test/MC/Disassembler/Mips/micromips_le.txt index 48046f8d1d4..c3b23741bd0 100644 --- a/test/MC/Disassembler/Mips/micromips_le.txt +++ b/test/MC/Disassembler/Mips/micromips_le.txt @@ -241,6 +241,8 @@ 0x44 0x20 0x08 0x50 # CHECK: lwm32 $16, $17, 8($4) +0x3b 0x21 0x84 0x59 # CHECK: lwm32 $16, $17, $18, $19, $20, $21, $22, $23, $fp, -1660($27) + 0x44 0x20 0x08 0xd0 # CHECK: swm32 $16, $17, 8($4) 0x04 0x22 0x08 0x90 # CHECK: swp $16, 8($4)