OpCodePset.cs 948 B

12345678910111213141516171819202122232425262728
  1. using Ryujinx.Graphics.Shader.Instructions;
  2. namespace Ryujinx.Graphics.Shader.Decoders
  3. {
  4. class OpCodePset : OpCodeSet
  5. {
  6. public Register Predicate12 { get; }
  7. public Register Predicate29 { get; }
  8. public bool InvertA { get; }
  9. public bool InvertB { get; }
  10. public LogicalOperation LogicalOpAB { get; }
  11. public new static OpCode Create(InstEmitter emitter, ulong address, long opCode) => new OpCodePset(emitter, address, opCode);
  12. public OpCodePset(InstEmitter emitter, ulong address, long opCode) : base(emitter, address, opCode)
  13. {
  14. Predicate12 = new Register(opCode.Extract(12, 3), RegisterType.Predicate);
  15. Predicate29 = new Register(opCode.Extract(29, 3), RegisterType.Predicate);
  16. InvertA = opCode.Extract(15);
  17. InvertB = opCode.Extract(32);
  18. LogicalOpAB = (LogicalOperation)opCode.Extract(24, 2);
  19. }
  20. }
  21. }