From f0a59f345c633b757ebd2a22fca23d7dab0f9f99 Mon Sep 17 00:00:00 2001 From: gdk <gab.dark.100@gmail.com> Date: Thu, 14 Nov 2019 14:20:30 -0300 Subject: Add partial support for the BRX shader instruction --- Ryujinx.Graphics.Shader/Decoders/Block.cs | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) (limited to 'Ryujinx.Graphics.Shader/Decoders/Block.cs') diff --git a/Ryujinx.Graphics.Shader/Decoders/Block.cs b/Ryujinx.Graphics.Shader/Decoders/Block.cs index b5e610d7..238b0bd6 100644 --- a/Ryujinx.Graphics.Shader/Decoders/Block.cs +++ b/Ryujinx.Graphics.Shader/Decoders/Block.cs @@ -11,15 +11,17 @@ namespace Ryujinx.Graphics.Shader.Decoders public Block Next { get; set; } public Block Branch { get; set; } - public List<OpCode> OpCodes { get; } - public List<OpCodeSsy> SsyOpCodes { get; } + public OpCodeBranchIndir BrIndir { get; set; } + + public List<OpCode> OpCodes { get; } + public List<OpCodePush> PushOpCodes { get; } public Block(ulong address) { Address = address; - OpCodes = new List<OpCode>(); - SsyOpCodes = new List<OpCodeSsy>(); + OpCodes = new List<OpCode>(); + PushOpCodes = new List<OpCodePush>(); } public void Split(Block rightBlock) @@ -45,7 +47,7 @@ namespace Ryujinx.Graphics.Shader.Decoders rightBlock.OpCodes.AddRange(OpCodes.GetRange(splitIndex, splitCount)); - rightBlock.UpdateSsyOpCodes(); + rightBlock.UpdatePushOps(); EndAddress = rightBlock.Address; @@ -54,7 +56,7 @@ namespace Ryujinx.Graphics.Shader.Decoders OpCodes.RemoveRange(splitIndex, splitCount); - UpdateSsyOpCodes(); + UpdatePushOps(); } private static int BinarySearch(List<OpCode> opCodes, ulong address) @@ -99,18 +101,18 @@ namespace Ryujinx.Graphics.Shader.Decoders return null; } - public void UpdateSsyOpCodes() + public void UpdatePushOps() { - SsyOpCodes.Clear(); + PushOpCodes.Clear(); for (int index = 0; index < OpCodes.Count; index++) { - if (!(OpCodes[index] is OpCodeSsy op)) + if (!(OpCodes[index] is OpCodePush op)) { continue; } - SsyOpCodes.Add(op); + PushOpCodes.Add(op); } } } -- cgit v1.2.3-70-g09d2