using ChocolArm64.Instruction; using ChocolArm64.State; namespace ChocolArm64.Decoder { class AOpCodeAlu : AOpCode, IAOpCodeAlu { public int Rd { get; protected set; } public int Rn { get; private set; } public ADataOp DataOp { get; private set; } public AOpCodeAlu(AInst Inst, long Position, int OpCode) : base(Inst, Position, OpCode) { Rd = (OpCode >> 0) & 0x1f; Rn = (OpCode >> 5) & 0x1f; DataOp = (ADataOp)((OpCode >> 24) & 0x3); RegisterSize = (OpCode >> 31) != 0 ? ARegisterSize.Int64 : ARegisterSize.Int32; } } }