Пример #1
0
            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,
                });
            }
Пример #2
0
            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 }
                });
            }
Пример #3
0
 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)
     });
 }
Пример #4
0
            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 }
                });
            }
Пример #5
0
            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,
                });
            }
Пример #6
0
 public override AlphaInstruction Decode(uint uInstr, AlphaDisassembler dasm)
 {
     return(new AlphaInstruction
     {
         Mnemonic = this.opcode,
         InstructionClass = InstrClass.Linear,
         Operands = new MachineOperand[]
         {
             dasm.FpuRegister(uInstr >> 21),
             new MemoryOperand(
                 PrimitiveType.Word32,    // Dummy value
                 dasm.AluRegister(uInstr >> 16).Register,
                 (short)uInstr)
         }
     });
 }