AOpCodeAlu.cs 695 B

123456789101112131415161718192021222324
  1. using ChocolArm64.Instruction;
  2. using ChocolArm64.State;
  3. namespace ChocolArm64.Decoder
  4. {
  5. class AOpCodeAlu : AOpCode, IAOpCodeAlu
  6. {
  7. public int Rd { get; protected set; }
  8. public int Rn { get; private set; }
  9. public ADataOp DataOp { get; private set; }
  10. public AOpCodeAlu(AInst Inst, long Position, int OpCode) : base(Inst, Position, OpCode)
  11. {
  12. Rd = (OpCode >> 0) & 0x1f;
  13. Rn = (OpCode >> 5) & 0x1f;
  14. DataOp = (ADataOp)((OpCode >> 24) & 0x3);
  15. RegisterSize = (OpCode >> 31) != 0
  16. ? ARegisterSize.Int64
  17. : ARegisterSize.Int32;
  18. }
  19. }
  20. }