OpCodeSimdRegElemF.cs 795 B

12345678910111213141516171819202122232425262728293031
  1. namespace ARMeilleure.Decoders
  2. {
  3. class OpCodeSimdRegElemF : OpCodeSimdReg
  4. {
  5. public int Index { get; private set; }
  6. public OpCodeSimdRegElemF(InstDescriptor inst, ulong address, int opCode) : base(inst, address, opCode)
  7. {
  8. switch ((opCode >> 21) & 3) // sz:L
  9. {
  10. case 0: // H:0
  11. Index = (opCode >> 10) & 2; // 0, 2
  12. break;
  13. case 1: // H:1
  14. Index = (opCode >> 10) & 2;
  15. Index++; // 1, 3
  16. break;
  17. case 2: // H
  18. Index = (opCode >> 11) & 1; // 0, 1
  19. break;
  20. default: Instruction = InstDescriptor.Undefined; break;
  21. }
  22. }
  23. }
  24. }