public override RiscVInstruction Decode(RiscVDisassembler dasm, uint wInstr) { dasm.state.instr.iclass = InstrClass.Linear; dasm.state.instr.opcode = opcode; dasm.state.ops.Clear(); foreach (var m in mutators) { if (!m(wInstr, dasm)) { return(dasm.MakeInvalid()); } } return(dasm.MakeInstruction()); }
public override RiscVInstruction Decode(uint wInstr, RiscVDisassembler dasm) { dasm.state.instr.InstructionClass = InstrClass.Linear; dasm.state.instr.Mnemonic = opcode; dasm.state.ops.Clear(); foreach (var m in mutators) { if (!m(wInstr, dasm)) { return(dasm.CreateInvalidInstruction()); } } return(dasm.MakeInstruction()); }