public override PowerPcInstruction Decode(PowerPcDisassembler dasm, uint wInstr) { bool link = (wInstr & 1) != 0; var mnemonic = link ? this.opLink : this.mnemonic; var iclass = link ? InstrClass.Transfer | InstrClass.Call : InstrClass.Transfer; foreach (var m in mutators) { if (!m(wInstr, dasm)) { return(dasm.CreateInvalidInstruction()); } } return(dasm.MakeInstruction(iclass, mnemonic)); }
public static PowerPcInstruction DecodeOperands( uint wInstr, PowerPcDisassembler dasm, InstrClass iclass, Mnemonic mnemonic, Mutator <PowerPcDisassembler>[] mutators) { foreach (var m in mutators) { if (!m(wInstr, dasm)) { return(dasm.CreateInvalidInstruction()); } } return(dasm.MakeInstruction(iclass, mnemonic)); }
public static PowerPcInstruction DecodeOperands( uint wInstr, PowerPcDisassembler dasm, InstrClass iclass, Opcode opcode, Mutator <PowerPcDisassembler>[] mutators) { foreach (var m in mutators) { if (!m(wInstr, dasm)) { return(new PowerPcInstruction(Opcode.illegal) { iclass = InstrClass.Invalid }); } } return(dasm.MakeInstruction(iclass, opcode)); }
public override PowerPcInstruction Decode(PowerPcDisassembler dasm, uint wInstr) { bool link = (wInstr & 1) != 0; var opcode = link ? this.opLink : this.opcode; var iclass = link ? InstrClass.Transfer | InstrClass.Call : InstrClass.Transfer; foreach (var m in mutators) { if (!m(wInstr, dasm)) { return new PowerPcInstruction(Opcode.illegal) { iclass = InstrClass.Invalid } } ; } return(dasm.MakeInstruction(iclass, opcode)); } }