diff options
| author | Zoran Jovanovic <zoran.jovanovic@imgtec.com> | 2015-09-15 15:21:27 +0000 |
|---|---|---|
| committer | Zoran Jovanovic <zoran.jovanovic@imgtec.com> | 2015-09-15 15:21:27 +0000 |
| commit | dc4b8c276142b826e47202ff3d49aa6ae5aead87 (patch) | |
| tree | b4f0c11d630172d129c0b5b8825f3b58f5b54e40 /llvm | |
| parent | 8eb8c9861d4bfc6ccbd050c4bf8fc0fce4bfdc8f (diff) | |
| download | bcm5719-llvm-dc4b8c276142b826e47202ff3d49aa6ae5aead87.tar.gz bcm5719-llvm-dc4b8c276142b826e47202ff3d49aa6ae5aead87.zip | |
[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
llvm-svn: 247698
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp | 2 | ||||
| -rw-r--r-- | llvm/test/MC/Disassembler/Mips/micromips.txt | 2 | ||||
| -rw-r--r-- | llvm/test/MC/Disassembler/Mips/micromips_le.txt | 2 |
3 files changed, 5 insertions, 1 deletions
diff --git a/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp b/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp index 6333d477716..4aa0afd7e03 100644 --- a/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp +++ b/llvm/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/llvm/test/MC/Disassembler/Mips/micromips.txt b/llvm/test/MC/Disassembler/Mips/micromips.txt index 71768307879..238d786a2b6 100644 --- a/llvm/test/MC/Disassembler/Mips/micromips.txt +++ b/llvm/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/llvm/test/MC/Disassembler/Mips/micromips_le.txt b/llvm/test/MC/Disassembler/Mips/micromips_le.txt index 48046f8d1d4..c3b23741bd0 100644 --- a/llvm/test/MC/Disassembler/Mips/micromips_le.txt +++ b/llvm/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) |

