public override XCoreInstruction Decode(uint wInstr, XCore200Disassembler dasm) { if (!dasm.rdr.TryReadLeUInt16(out ushort u2)) { return(dasm.CreateInvalidInstruction()); } wInstr = (wInstr << 16) | u2; return(subDecoder.Decode(wInstr, dasm)); }
public override XCoreInstruction Decode(uint wInstr, XCore200Disassembler dasm) { foreach (var m in mutators) { if (!m(wInstr, dasm)) { return(dasm.CreateInvalidInstruction()); } } var instr = new XCoreInstruction { InstructionClass = iclass, Mnemonic = mnemonic, Operands = dasm.ops.ToArray() }; return(instr); }