From cbb1b1f28e5fae9a92856e9106a7fdc878cd1728 Mon Sep 17 00:00:00 2001 From: RipleyTom Date: Fri, 19 May 2023 15:21:41 +0200 Subject: [PATCH] Fix spu_fm --- rpcs3/Emu/Cell/SPURecompiler.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/rpcs3/Emu/Cell/SPURecompiler.cpp b/rpcs3/Emu/Cell/SPURecompiler.cpp index 6be29bc75d..1042ab5552 100644 --- a/rpcs3/Emu/Cell/SPURecompiler.cpp +++ b/rpcs3/Emu/Cell/SPURecompiler.cpp @@ -9147,7 +9147,7 @@ public: if (g_cfg.core.spu_approx_xfloat) { - if (op.ra == op.rb && !m_interp_magn) + if (a.value == b.value) { return eval(a * b); } @@ -9162,7 +9162,15 @@ public: } }); - set_vr(op.rt, fm(get_vr(op.ra), get_vr(op.rb))); + const auto [a, b] = get_vrs(op.ra, op.rb); + + if (op.ra == op.rb && !m_interp_magn) + { + set_vr(op.rt, fm(a, a)); + return; + } + + set_vr(op.rt, fm(a, b)); } template