aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Graphics.Shader/Instructions/InstEmitFlowControl.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Ryujinx.Graphics.Shader/Instructions/InstEmitFlowControl.cs')
-rw-r--r--src/Ryujinx.Graphics.Shader/Instructions/InstEmitFlowControl.cs14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/Ryujinx.Graphics.Shader/Instructions/InstEmitFlowControl.cs b/src/Ryujinx.Graphics.Shader/Instructions/InstEmitFlowControl.cs
index fc1a696f..7462fc5a 100644
--- a/src/Ryujinx.Graphics.Shader/Instructions/InstEmitFlowControl.cs
+++ b/src/Ryujinx.Graphics.Shader/Instructions/InstEmitFlowControl.cs
@@ -162,8 +162,10 @@ namespace Ryujinx.Graphics.Shader.Instructions
if (op.Ccc == Ccc.T)
{
- context.PrepareForReturn();
- context.Return();
+ if (context.PrepareForReturn())
+ {
+ context.Return();
+ }
}
else
{
@@ -174,8 +176,12 @@ namespace Ryujinx.Graphics.Shader.Instructions
{
Operand lblSkip = Label();
context.BranchIfFalse(lblSkip, cond);
- context.PrepareForReturn();
- context.Return();
+
+ if (context.PrepareForReturn())
+ {
+ context.Return();
+ }
+
context.MarkLabel(lblSkip);
}
}