public override RiscVInstruction Decode(uint hInstr, RiscVDisassembler dasm) { if (!dasm.rdr.TryReadUInt16(out ushort hiword)) { return(dasm.CreateInvalidInstruction()); } uint wInstr = (uint)hiword << 16; wInstr |= hInstr; return(subDecoders.Decode(wInstr, dasm)); }
public override V850Instruction DisassembleInstruction() { this.addr = rdr.Address; if (!rdr.TryReadLeUInt16(out this.uInstr)) { return(null); } displacement = 0; ops.Clear(); var instr = rootDecoder.Decode(uInstr, this); instr.Address = addr; instr.Length = (int)(rdr.Address - addr); return(instr); }