AOpCodeSimdRegElem.cs 788 B

1234567891011121314151617181920212223242526272829303132
  1. using ChocolArm64.Instruction;
  2. namespace ChocolArm64.Decoder
  3. {
  4. class AOpCodeSimdRegElem : AOpCodeSimdReg
  5. {
  6. public int Index { get; private set; }
  7. public AOpCodeSimdRegElem(AInst Inst, long Position, int OpCode) : base(Inst, Position, OpCode)
  8. {
  9. switch (Size)
  10. {
  11. case 1:
  12. Index = (OpCode >> 21) & 1 |
  13. (OpCode >> 10) & 2 |
  14. (OpCode >> 18) & 4;
  15. Rm &= 0xf;
  16. break;
  17. case 2:
  18. Index = (OpCode >> 21) & 1 |
  19. (OpCode >> 10) & 2;
  20. break;
  21. default: Emitter = AInstEmit.Und; return;
  22. }
  23. }
  24. }
  25. }