OpCodeMemPair.cs 679 B

1234567891011121314151617181920212223
  1. namespace ARMeilleure.Decoders
  2. {
  3. class OpCodeMemPair : OpCodeMemImm
  4. {
  5. public int Rt2 { get; private set; }
  6. public OpCodeMemPair(InstDescriptor inst, ulong address, int opCode) : base(inst, address, opCode)
  7. {
  8. Rt2 = (opCode >> 10) & 0x1f;
  9. WBack = ((opCode >> 23) & 0x1) != 0;
  10. PostIdx = ((opCode >> 23) & 0x3) == 1;
  11. Extend64 = ((opCode >> 30) & 0x3) == 1;
  12. Size = ((opCode >> 31) & 0x1) | 2;
  13. DecodeImm(opCode);
  14. }
  15. protected void DecodeImm(int opCode)
  16. {
  17. Immediate = ((long)(opCode >> 15) << 57) >> (57 - Size);
  18. }
  19. }
  20. }