[PATCH] Add disassembler support for micromips16 andi16, addiusp, jraddiusp instructions.

Sasa Stankovic Sasa.Stankovic at imgtec.com
Thu Nov 27 07:56:27 PST 2014


LGTM, with two changes.

================
Comment at: lib/Target/Mips/Disassembler/MipsDisassembler.cpp:319
@@ +318,3 @@
+
+static DecodeStatus DecodeUImm5lsl2(MCInst &Inst, unsigned Insn,
+                                   uint64_t Address, const void *Decoder);
----------------
This line is unaligned.

================
Comment at: lib/Target/Mips/Disassembler/MipsDisassembler.cpp:1464
@@ +1463,3 @@
+  case 1: DecodedValue = SignExtend32<16>(0x101); break;
+  case 510: DecodedValue = SignExtend32<16>(0xfefe); break;
+  case 511: DecodedValue = SignExtend32<16>(0xfeff); break;
----------------
For 0, 1, 510 and 511, you can just use unshifted decoded values. For example,

  case 0: DecodedValue = 256; break;
  case 1: DecodedValue = 257; break;
  case 510: DecodedValue = -258; break;
  case 511: DecodedValue = -257; break;

http://reviews.llvm.org/D6413






More information about the llvm-commits mailing list