aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Shader/Decoders/OpCodeBranch.cs
diff options
context:
space:
mode:
authorgdk <gab.dark.100@gmail.com>2019-11-27 00:38:56 -0300
committerThog <thog@protonmail.com>2020-01-09 02:13:00 +0100
commit442485adb32626b3931cd15f284d0e686b0021fc (patch)
tree65791c99024c3c7e27088ce6740efabf2f0276dc /Ryujinx.Graphics.Shader/Decoders/OpCodeBranch.cs
parent99f236fcf03e4304a91df70c3545b9b79ff15942 (diff)
Partial support for branch with CC, and fix a edge case of branch out of loop on shaders
Diffstat (limited to 'Ryujinx.Graphics.Shader/Decoders/OpCodeBranch.cs')
-rw-r--r--Ryujinx.Graphics.Shader/Decoders/OpCodeBranch.cs4
1 files changed, 4 insertions, 0 deletions
diff --git a/Ryujinx.Graphics.Shader/Decoders/OpCodeBranch.cs b/Ryujinx.Graphics.Shader/Decoders/OpCodeBranch.cs
index f51c3996..c4fa9212 100644
--- a/Ryujinx.Graphics.Shader/Decoders/OpCodeBranch.cs
+++ b/Ryujinx.Graphics.Shader/Decoders/OpCodeBranch.cs
@@ -4,12 +4,16 @@ namespace Ryujinx.Graphics.Shader.Decoders
{
class OpCodeBranch : OpCode
{
+ public Condition Condition { get; }
+
public int Offset { get; }
public bool PushTarget { get; protected set; }
public OpCodeBranch(InstEmitter emitter, ulong address, long opCode) : base(emitter, address, opCode)
{
+ Condition = (Condition)(opCode & 0x1f);
+
Offset = ((int)(opCode >> 20) << 8) >> 8;
PushTarget = false;