public override XtensaInstruction Decode(XtensaDisassembler dasm) { return(new XtensaInstruction { Opcode = this.opcode, Operands = new MachineOperand[] { dasm.GetAluRegister(dasm.state.s), ImmediateOperand.Byte((byte)(((dasm.state.r & 1) << 4) | dasm.state.t)), dasm.JumpOffset(dasm.state.imm8) } }); }
public override XtensaInstruction Decode(XtensaDisassembler dasm) { var n = dasm.state.r | ((dasm.state.t & 0x3) << 4); var dst = dasm.JumpOffset((byte)n); // this is a 2-byte instruction, so back up one byte. dasm.rdr.Offset -= 1; return(new XtensaInstruction { Opcode = opcode, Operands = new MachineOperand[] { dasm.GetAluRegister(dasm.state.s), dst, } }); }