OpCodeSimdMemLit.cs 889 B

12345678910111213141516171819202122232425262728293031
  1. namespace ARMeilleure.Decoders
  2. {
  3. class OpCodeSimdMemLit : OpCode, IOpCodeSimd, IOpCodeLit
  4. {
  5. public int Rt { get; }
  6. public long Immediate { get; }
  7. public int Size { get; }
  8. public bool Signed => false;
  9. public bool Prefetch => false;
  10. public new static OpCode Create(InstDescriptor inst, ulong address, int opCode) => new OpCodeSimdMemLit(inst, address, opCode);
  11. public OpCodeSimdMemLit(InstDescriptor inst, ulong address, int opCode) : base(inst, address, opCode)
  12. {
  13. int opc = (opCode >> 30) & 3;
  14. if (opc == 3)
  15. {
  16. Instruction = InstDescriptor.Undefined;
  17. return;
  18. }
  19. Rt = opCode & 0x1f;
  20. Immediate = (long)address + DecoderHelper.DecodeImmS19_2(opCode);
  21. Size = opc + 2;
  22. }
  23. }
  24. }