The listed instructions were missing dedicated decoder methods in MipsDisassembler.cpp to properly decode immediate operands. These methods are added together with corresponding tests.
Align the parameters.
Same here (and few more cases below).
For the following instructions the immediate is wrongly disassembled:
if they are assembled with llvm-mc (or gcc) and then disassembled with llvm-objdump, the result is
Please include these instructions in both assemble and disassemble tests.
Add one more 'm' in method name: DecodeUImm5lsl2
LGTM, with two changes.
This line is unaligned.
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;