[PATCH] D14015: [mips][ias] Range check uimm2 operands and fix a bug this revealed.

Daniel Sanders via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 23 02:45:52 PDT 2015


dsanders created this revision.
dsanders added a reviewer: vkalintiris.
dsanders added a subscriber: llvm-commits.
dsanders added a dependency: D14013: [mips][ias] Range check uimmz operands..
Herald added a subscriber: dsanders.

The bug was that the MIPS32R6/MIPS64R6/microMIPS32R6 versions of LSA and DLSA
(unlike the MSA version) failed to account for the off-by-one encoding of the
immediate. The range is actually 1..4 rather than 0..3.

Depends on D14013

http://reviews.llvm.org/D14015

Files:
  lib/Target/Mips/AsmParser/MipsAsmParser.cpp
  lib/Target/Mips/Disassembler/MipsDisassembler.cpp
  lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp
  lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.h
  lib/Target/Mips/MicroMips32r6InstrInfo.td
  lib/Target/Mips/Mips32r6InstrInfo.td
  lib/Target/Mips/Mips64r6InstrInfo.td
  lib/Target/Mips/MipsInstrInfo.td
  lib/Target/Mips/MipsMSAInstrInfo.td
  test/MC/Disassembler/Mips/micromips32r6/valid.txt
  test/MC/Disassembler/Mips/mips32r6/valid-mips32r6-el.txt
  test/MC/Disassembler/Mips/mips32r6/valid-mips32r6.txt
  test/MC/Disassembler/Mips/mips64r6/valid-mips64r6-el.txt
  test/MC/Disassembler/Mips/mips64r6/valid-mips64r6.txt
  test/MC/Mips/micromips32r6/invalid.s
  test/MC/Mips/micromips32r6/valid.s
  test/MC/Mips/micromips64r6/invalid.s
  test/MC/Mips/mips32r6/invalid.s
  test/MC/Mips/mips32r6/valid.s
  test/MC/Mips/mips64r6/invalid.s
  test/MC/Mips/mips64r6/valid.s
  test/MC/Mips/msa/invalid-64.s
  test/MC/Mips/msa/invalid.s

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D14015.38222.patch
Type: text/x-patch
Size: 26085 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151023/a0deed88/attachment-0001.bin>


More information about the llvm-commits mailing list