OpCodeAlu.cs 739 B

1234567891011121314151617181920212223
  1. namespace ARMeilleure.Decoders
  2. {
  3. class OpCodeAlu : OpCode, IOpCodeAlu
  4. {
  5. public int Rd { get; protected set; }
  6. public int Rn { get; }
  7. public DataOp DataOp { get; }
  8. public new static OpCode Create(InstDescriptor inst, ulong address, int opCode) => new OpCodeAlu(inst, address, opCode);
  9. public OpCodeAlu(InstDescriptor inst, ulong address, int opCode) : base(inst, address, opCode)
  10. {
  11. Rd = (opCode >> 0) & 0x1f;
  12. Rn = (opCode >> 5) & 0x1f;
  13. DataOp = (DataOp)((opCode >> 24) & 0x3);
  14. RegisterSize = (opCode >> 31) != 0
  15. ? RegisterSize.Int64
  16. : RegisterSize.Int32;
  17. }
  18. }
  19. }