OpCodeBranchIndir.cs 759 B

12345678910111213141516171819202122232425
  1. using Ryujinx.Graphics.Shader.Instructions;
  2. using System.Collections.Generic;
  3. namespace Ryujinx.Graphics.Shader.Decoders
  4. {
  5. class OpCodeBranchIndir : OpCode
  6. {
  7. public HashSet<Block> PossibleTargets { get; }
  8. public Register Ra { get; }
  9. public int Offset { get; }
  10. public new static OpCode Create(InstEmitter emitter, ulong address, long opCode) => new OpCodeBranchIndir(emitter, address, opCode);
  11. public OpCodeBranchIndir(InstEmitter emitter, ulong address, long opCode) : base(emitter, address, opCode)
  12. {
  13. PossibleTargets = new HashSet<Block>();
  14. Ra = new Register(opCode.Extract(8, 8), RegisterType.Gpr);
  15. Offset = ((int)(opCode >> 20) << 8) >> 8;
  16. }
  17. }
  18. }