OpCodeT16MemSp.cs 791 B

12345678910111213141516171819202122232425262728
  1. using ARMeilleure.State;
  2. namespace ARMeilleure.Decoders
  3. {
  4. class OpCodeT16MemSp : OpCodeT16, IOpCode32Mem
  5. {
  6. public int Rt { get; }
  7. public int Rn => RegisterAlias.Aarch32Sp;
  8. public bool WBack => false;
  9. public bool IsLoad { get; }
  10. public bool Index => true;
  11. public bool Add => true;
  12. public int Immediate { get; }
  13. public new static OpCode Create(InstDescriptor inst, ulong address, int opCode) => new OpCodeT16MemSp(inst, address, opCode);
  14. public OpCodeT16MemSp(InstDescriptor inst, ulong address, int opCode) : base(inst, address, opCode)
  15. {
  16. Rt = (opCode >> 8) & 7;
  17. IsLoad = ((opCode >> 11) & 1) != 0;
  18. Immediate = ((opCode >> 0) & 0xff) << 2;
  19. }
  20. }
  21. }