public override AlphaInstruction Decode(uint uInstr, AlphaDisassembler dasm) { return(new AlphaInstruction { Opcode = opcodes[(uInstr >> 14) & 0x3], op1 = dasm.AluRegister(uInstr >> 21), op2 = dasm.AluRegister(uInstr >> 16) }); }
public override AlphaInstruction Decode(uint uInstr, AlphaDisassembler dasm) { var op1 = dasm.FpuRegister(uInstr >> 21); var op2 = dasm.FpuRegister(uInstr >> 16); return(new AlphaInstruction { Opcode = this.opcode, op1 = op1, op2 = op2, }); }
public override AlphaInstruction Decode(uint uInstr, AlphaDisassembler dasm) { Opcode opcode; if (!opcodes.TryGetValue(uInstr & 0x0000FFFF, out opcode)) { return(dasm.Invalid()); } return(new AlphaInstruction { Opcode = opcode }); }
public override AlphaInstruction Decode(uint uInstr, AlphaDisassembler dasm) { return(new AlphaInstruction { Opcode = this.opcode, op1 = dasm.FpuRegister(uInstr >> 21), op2 = new MemoryOperand( PrimitiveType.Word32, // Dummy value dasm.AluRegister(uInstr >> 16).Register, (short)uInstr) }); }
public override AlphaInstruction Decode(uint uInstr, AlphaDisassembler dasm) { var op1 = dasm.FpuRegister(uInstr >> 21); var op2 = dasm.FpuRegister(uInstr >> 16); var op3 = dasm.FpuRegister(uInstr); return(new AlphaInstruction { Mnemonic = this.opcode, InstructionClass = InstrClass.Linear, Operands = new MachineOperand[] { op1, op2, op3 } }); }
public override AlphaInstruction Decode(uint uInstr, AlphaDisassembler dasm) { var functionCode = ((int)uInstr >> 5) & 0x7FF; if (!decoders.TryGetValue(functionCode, out var decoder)) { return(dasm.Nyi(uInstr, functionCode)); } else { return(decoder.Decode(uInstr, dasm)); } }
public override AlphaInstruction Decode(uint uInstr, AlphaDisassembler dasm) { int offset = ((int)uInstr << 11) >> 9; var op1 = dasm.FpuRegister(uInstr >> 21); var op2 = AddressOperand.Create(dasm.rdr.Address + offset); return(new AlphaInstruction { Mnemonic = this.opcode, InstructionClass = InstrClass.ConditionalTransfer, Operands = new MachineOperand[] { op1, op2 } }); }
public override AlphaInstruction Decode(uint uInstr, AlphaDisassembler dasm) { return(new AlphaInstruction { Mnemonic = opcodes[(uInstr >> 14) & 0x3], InstructionClass = iclasses[(uInstr >> 14) & 0x3], Operands = new MachineOperand[] { dasm.AluRegister(uInstr >> 21), dasm.AluRegister(uInstr >> 16) } }); }
public override AlphaInstruction Decode(uint uInstr, AlphaDisassembler dasm) { int offset = ((int)uInstr << 11) >> 9; var op1 = dasm.FpuRegister(uInstr >> 21); var op2 = AddressOperand.Create(dasm.rdr.Address + offset); return(new AlphaInstruction { Opcode = this.opcode, op1 = op1, op2 = op2, }); }
public override AlphaInstruction Decode(uint uInstr, AlphaDisassembler dasm) { RegOpRec decoder; var functionCode = ((int)uInstr >> 5) & 0x7F; if (!decoders.TryGetValue(functionCode, out decoder)) { return(dasm.Invalid()); } else { return(decoder.Decode(uInstr, dasm)); } }
public override AlphaInstruction Decode(uint uInstr, AlphaDisassembler dasm) { var op1 = dasm.AluRegister(uInstr >> 21); var op2 = (uInstr & (1 << 12)) != 0 ? ImmediateOperand.Byte((byte)(uInstr >> 13)) : (MachineOperand)dasm.AluRegister(uInstr >> 13); var op3 = dasm.AluRegister(uInstr); return(new AlphaInstruction { Mnemonic = this.opcode, InstructionClass = InstrClass.Linear, Operands = new MachineOperand[] { op1, op2, op3 } }); }
public override AlphaInstruction Decode(uint uInstr, AlphaDisassembler dasm) { return(new AlphaInstruction { Mnemonic = this.opcode, InstructionClass = InstrClass.Linear, Operands = new MachineOperand[] { dasm.AluRegister(uInstr >> 21), new MemoryOperand( PrimitiveType.Word32, // Dummy value dasm.AluRegister(uInstr >> 16).Register, (short)uInstr) } }); }
public override AlphaInstruction Decode(uint uInstr, AlphaDisassembler dasm) { var op1 = dasm.AluRegister(uInstr >> 21); var op2 = (uInstr & (1 << 12)) != 0 ? ImmediateOperand.Byte((byte)(uInstr >> 13)) : (MachineOperand)dasm.AluRegister(uInstr >> 13); var op3 = dasm.AluRegister(uInstr); return(new AlphaInstruction { Opcode = this.opcode, op1 = op1, op2 = op2, op3 = op3, }); }
public override AlphaInstruction Decode(uint uInstr, AlphaDisassembler dasm) { throw new NotImplementedException(); }
public abstract AlphaInstruction Decode(uint uInstr, AlphaDisassembler dasm);
public override AlphaInstruction Decode(uint uInstr, AlphaDisassembler dasm) { return(dasm.Invalid()); }