OpCodeT32MovImm16.cs 636 B

12345678910111213141516171819
  1. using ARMeilleure.Common;
  2. using System.Runtime.Intrinsics;
  3. namespace ARMeilleure.Decoders
  4. {
  5. class OpCodeT32MovImm16 : OpCodeT32Alu, IOpCode32AluImm
  6. {
  7. public int Immediate { get; }
  8. public bool IsRotated => false;
  9. public new static OpCode Create(InstDescriptor inst, ulong address, int opCode) => new OpCodeT32MovImm16(inst, address, opCode);
  10. public OpCodeT32MovImm16(InstDescriptor inst, ulong address, int opCode) : base(inst, address, opCode)
  11. {
  12. Immediate = (opCode & 0xff) | ((opCode >> 4) & 0x700) | ((opCode >> 15) & 0x800) | ((opCode >> 4) & 0xf000);
  13. }
  14. }
  15. }