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
This commit is contained in:
gdkchan 2021-01-12 18:52:13 -03:00 committed by GitHub
parent df820a72de
commit 36c6e67df2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 128 additions and 34 deletions

View file

@ -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);