OpCodeHfma.cs 879 B

123456789101112131415161718192021222324
  1. using Ryujinx.Graphics.Shader.Instructions;
  2. namespace Ryujinx.Graphics.Shader.Decoders
  3. {
  4. class OpCodeHfma : OpCode, IOpCodeRd, IOpCodeRa, IOpCodeRc
  5. {
  6. public Register Rd { get; }
  7. public Register Ra { get; }
  8. public Register Rc { get; protected set; }
  9. public FPHalfSwizzle SwizzleA { get; }
  10. public new static OpCode Create(InstEmitter emitter, ulong address, long opCode) => new OpCodeHfma(emitter, address, opCode);
  11. public OpCodeHfma(InstEmitter emitter, ulong address, long opCode) : base(emitter, address, opCode)
  12. {
  13. Rd = new Register(opCode.Extract(0, 8), RegisterType.Gpr);
  14. Ra = new Register(opCode.Extract(8, 8), RegisterType.Gpr);
  15. Rc = new Register(opCode.Extract(39, 8), RegisterType.Gpr);
  16. SwizzleA = (FPHalfSwizzle)opCode.Extract(47, 2);
  17. }
  18. }
  19. }