aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Shader/IntermediateRepresentation/Operation.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.Graphics.Shader/IntermediateRepresentation/Operation.cs')
-rw-r--r--Ryujinx.Graphics.Shader/IntermediateRepresentation/Operation.cs21
1 files changed, 14 insertions, 7 deletions
diff --git a/Ryujinx.Graphics.Shader/IntermediateRepresentation/Operation.cs b/Ryujinx.Graphics.Shader/IntermediateRepresentation/Operation.cs
index 96132633..18e203a7 100644
--- a/Ryujinx.Graphics.Shader/IntermediateRepresentation/Operation.cs
+++ b/Ryujinx.Graphics.Shader/IntermediateRepresentation/Operation.cs
@@ -62,18 +62,25 @@ namespace Ryujinx.Graphics.Shader.IntermediateRepresentation
Inst = inst;
Index = index;
- // The array may be modified externally, so we store a copy.
- _dests = (Operand[])dests.Clone();
-
- for (int dstIndex = 0; dstIndex < dests.Length; dstIndex++)
+ if (dests != null)
{
- Operand dest = dests[dstIndex];
+ // The array may be modified externally, so we store a copy.
+ _dests = (Operand[])dests.Clone();
- if (dest != null && dest.Type == OperandType.LocalVariable)
+ for (int dstIndex = 0; dstIndex < dests.Length; dstIndex++)
{
- dest.AsgOp = this;
+ Operand dest = dests[dstIndex];
+
+ if (dest != null && dest.Type == OperandType.LocalVariable)
+ {
+ dest.AsgOp = this;
+ }
}
}
+ else
+ {
+ _dests = Array.Empty<Operand>();
+ }
}
public Operation(Instruction inst, Operand dest, params Operand[] sources) : this(sources)