Beispiel #1
0
 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)
     });
 }
Beispiel #2
0
 public override AlphaInstruction Decode(uint uInstr, AlphaDisassembler dasm)
 {
     return(new AlphaInstruction
     {
         Opcode = this.opcode,
         op1 = dasm.AluRegister(uInstr >> 21),
         op2 = new MemoryOperand(
             PrimitiveType.Word32,    // Dummy value
             dasm.AluRegister(uInstr >> 16).Register,
             (short)uInstr)
     });
 }
Beispiel #3
0
 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)
         }
     });
 }
Beispiel #4
0
            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 }
                });
            }
Beispiel #5
0
 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)
         }
     });
 }
Beispiel #6
0
            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,
                });
            }
Beispiel #7
0
            public override AlphaInstruction Decode(uint uInstr, AlphaDisassembler dasm)
            {
                int offset = ((int)uInstr << 11) >> 9;
                var op1    = dasm.AluRegister(uInstr >> 21);
                var op2    = AddressOperand.Create(dasm.rdr.Address + offset);

                return(new AlphaInstruction
                {
                    Mnemonic = this.opcode,
                    InstructionClass = InstrClass.ConditionalTransfer,
                    Operands = new MachineOperand[] { op1, op2 }
                });
            }
Beispiel #8
0
            public override AlphaInstruction Decode(uint uInstr, AlphaDisassembler dasm)
            {
                int offset = ((int)uInstr << 11) >> 9;
                var op1    = dasm.AluRegister(uInstr >> 21);
                var op2    = AddressOperand.Create(dasm.rdr.Address + offset);

                return(new AlphaInstruction
                {
                    Opcode = this.opcode,
                    op1 = op1,
                    op2 = op2,
                });
            }