From 7f6b3d234a0dd82866e89930f05c520aca94946e Mon Sep 17 00:00:00 2001 From: gdkchan Date: Mon, 10 Jan 2022 12:08:00 -0300 Subject: Implement IMUL, PCNT and CONT shader instructions, fix FFMA32I and HFMA32I (#2972) * Implement IMUL shader instruction * Implement PCNT/CONT instruction and fix FFMA32I * Add HFMA232I to the table * Shader cache version bump * No Rc on Ffma32i --- Ryujinx.Graphics.Shader/Instructions/InstEmitFloatArithmetic.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'Ryujinx.Graphics.Shader/Instructions/InstEmitFloatArithmetic.cs') diff --git a/Ryujinx.Graphics.Shader/Instructions/InstEmitFloatArithmetic.cs b/Ryujinx.Graphics.Shader/Instructions/InstEmitFloatArithmetic.cs index 11d724c4..29803c31 100644 --- a/Ryujinx.Graphics.Shader/Instructions/InstEmitFloatArithmetic.cs +++ b/Ryujinx.Graphics.Shader/Instructions/InstEmitFloatArithmetic.cs @@ -204,7 +204,7 @@ namespace Ryujinx.Graphics.Shader.Instructions var srcA = GetSrcReg(context, op.SrcA); var srcB = GetSrcImm(context, op.Imm32); - var srcC = GetSrcReg(context, op.SrcC); + var srcC = GetSrcReg(context, op.Dest); EmitFfma(context, Instruction.FP32, srcA, srcB, srcC, op.Dest, op.NegA, op.NegC, op.Sat, op.WriteCC); } @@ -333,13 +333,13 @@ namespace Ryujinx.Graphics.Shader.Instructions EmitHfma2(context, op.OFmt, srcA, srcB, srcC, op.Dest, op.Sat); } - public static void Hfma232iI(EmitterContext context) + public static void Hfma232i(EmitterContext context) { InstHfma232i op = context.GetOp(); var srcA = GetHalfSrc(context, op.ASwizzle, op.SrcA, false, false); var srcB = GetHalfSrc(context, op.Imm); - var srcC = GetHalfSrc(context, HalfSwizzle.F16, op.SrcC, op.NegC, false); + var srcC = GetHalfSrc(context, HalfSwizzle.F16, op.Dest, op.NegC, false); EmitHfma2(context, OFmt.F16, srcA, srcB, srcC, op.Dest, saturate: false); } -- cgit v1.2.3