Example #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)
     });
 }
Example #2
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,
                });
            }
Example #3
0
            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
                });
            }
Example #4
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)
     });
 }
Example #5
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 }
                });
            }
Example #6
0
            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));
                }
            }
Example #7
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 }
                });
            }
Example #8
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)
         }
     });
 }
Example #9
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,
                });
            }
Example #10
0
            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));
                }
            }
Example #11
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 }
                });
            }
Example #12
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)
         }
     });
 }
Example #13
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,
                });
            }
Example #14
0
 public override AlphaInstruction Decode(uint uInstr, AlphaDisassembler dasm)
 {
     throw new NotImplementedException();
 }
Example #15
0
 public abstract AlphaInstruction Decode(uint uInstr, AlphaDisassembler dasm);
Example #16
0
 public override AlphaInstruction Decode(uint uInstr, AlphaDisassembler dasm)
 {
     return(dasm.Invalid());
 }