aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Shader/Translation
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2021-01-12 18:52:13 -0300
committerGitHub <noreply@github.com>2021-01-13 08:52:13 +1100
commit36c6e67df2c06e1b71d2059461ed7fad17bfea34 (patch)
tree2e05b13ff49f3e9a0b7b650ae01f612c7c700057 /Ryujinx.Graphics.Shader/Translation
parentdf820a72def62319fe97236a2006c64bfb7c065a (diff)
Implement shader CC mode for ISCADD, X mode for ISETP and fix STL/STS/STG with RZ (#1901)
* Implement shader CC mode for ISCADD, X mode for ISETP and fix STS/STG with RZ * Fix STG too and bump shader cache version * Fix wrong name * Fix Carry being inverted on comparison
Diffstat (limited to 'Ryujinx.Graphics.Shader/Translation')
-rw-r--r--Ryujinx.Graphics.Shader/Translation/EmitterContextInsts.cs30
1 files changed, 30 insertions, 0 deletions
diff --git a/Ryujinx.Graphics.Shader/Translation/EmitterContextInsts.cs b/Ryujinx.Graphics.Shader/Translation/EmitterContextInsts.cs
index 40f3370f..b2418c2e 100644
--- a/Ryujinx.Graphics.Shader/Translation/EmitterContextInsts.cs
+++ b/Ryujinx.Graphics.Shader/Translation/EmitterContextInsts.cs
@@ -406,11 +406,41 @@ namespace Ryujinx.Graphics.Shader.Translation
return context.Add(Instruction.CompareEqual, Local(), a, b);
}
+ public static Operand ICompareGreater(this EmitterContext context, Operand a, Operand b)
+ {
+ return context.Add(Instruction.CompareGreater, Local(), a, b);
+ }
+
+ public static Operand ICompareGreaterOrEqual(this EmitterContext context, Operand a, Operand b)
+ {
+ return context.Add(Instruction.CompareGreaterOrEqual, Local(), a, b);
+ }
+
+ public static Operand ICompareGreaterOrEqualUnsigned(this EmitterContext context, Operand a, Operand b)
+ {
+ return context.Add(Instruction.CompareGreaterOrEqualU32, Local(), a, b);
+ }
+
+ public static Operand ICompareGreaterUnsigned(this EmitterContext context, Operand a, Operand b)
+ {
+ return context.Add(Instruction.CompareGreaterU32, Local(), a, b);
+ }
+
public static Operand ICompareLess(this EmitterContext context, Operand a, Operand b)
{
return context.Add(Instruction.CompareLess, Local(), a, b);
}
+ public static Operand ICompareLessOrEqual(this EmitterContext context, Operand a, Operand b)
+ {
+ return context.Add(Instruction.CompareLessOrEqual, Local(), a, b);
+ }
+
+ public static Operand ICompareLessOrEqualUnsigned(this EmitterContext context, Operand a, Operand b)
+ {
+ return context.Add(Instruction.CompareLessOrEqualU32, Local(), a, b);
+ }
+
public static Operand ICompareLessUnsigned(this EmitterContext context, Operand a, Operand b)
{
return context.Add(Instruction.CompareLessU32, Local(), a, b);