diff options
| author | gdkchan <gab.dark.100@gmail.com> | 2021-01-12 18:52:13 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-01-13 08:52:13 +1100 |
| commit | 36c6e67df2c06e1b71d2059461ed7fad17bfea34 (patch) | |
| tree | 2e05b13ff49f3e9a0b7b650ae01f612c7c700057 /Ryujinx.Graphics.Shader/Translation | |
| parent | df820a72def62319fe97236a2006c64bfb7c065a (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.cs | 30 |
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); |
