AOpCodeSimdRegElem.cs 656 B

1234567891011121314151617181920212223242526
  1. using ChocolArm64.Instruction;
  2. namespace ChocolArm64.Decoder
  3. {
  4. class AOpCodeSimdRegElem : AOpCodeSimd
  5. {
  6. public int Rm { get; private set; }
  7. public int Index { get; private set; }
  8. public AOpCodeSimdRegElem(AInst Inst, long Position, int OpCode) : base(Inst, Position, OpCode)
  9. {
  10. Rm = (OpCode >> 16) & 0x1f;
  11. Size = (OpCode >> 22) & 0x1;
  12. if (Size != 0)
  13. {
  14. Index = (OpCode >> 11) & 1;
  15. }
  16. else
  17. {
  18. Index = (OpCode >> 21) & 1 |
  19. (OpCode >> 10) & 2;
  20. }
  21. }
  22. }
  23. }