From 442485adb32626b3931cd15f284d0e686b0021fc Mon Sep 17 00:00:00 2001 From: gdk Date: Wed, 27 Nov 2019 00:38:56 -0300 Subject: Partial support for branch with CC, and fix a edge case of branch out of loop on shaders --- Ryujinx.Graphics.Shader/Decoders/OpCodeBranch.cs | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'Ryujinx.Graphics.Shader/Decoders/OpCodeBranch.cs') 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; -- cgit v1.2.3