OpCodeBfm.cs 798 B

1234567891011121314151617181920212223242526272829
  1. namespace ARMeilleure.Decoders
  2. {
  3. class OpCodeBfm : OpCodeAlu
  4. {
  5. public long WMask { get; }
  6. public long TMask { get; }
  7. public int Pos { get; }
  8. public int Shift { get; }
  9. public new static OpCode Create(InstDescriptor inst, ulong address, int opCode) => new OpCodeBfm(inst, address, opCode);
  10. public OpCodeBfm(InstDescriptor inst, ulong address, int opCode) : base(inst, address, opCode)
  11. {
  12. var bm = DecoderHelper.DecodeBitMask(opCode, false);
  13. if (bm.IsUndefined)
  14. {
  15. Instruction = InstDescriptor.Undefined;
  16. return;
  17. }
  18. WMask = bm.WMask;
  19. TMask = bm.TMask;
  20. Pos = bm.Pos;
  21. Shift = bm.Shift;
  22. }
  23. }
  24. }