From 43e74a9c61f467d145fded785c9f9724e7d25ffc Mon Sep 17 00:00:00 2001 From: Andrew Church Date: Sun, 18 Jan 2015 07:04:35 +0900 Subject: [PATCH] Fix intermediate rounding of fused multiply-add instructions. --- rpcs3/Emu/Cell/PPUInterpreter.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rpcs3/Emu/Cell/PPUInterpreter.h b/rpcs3/Emu/Cell/PPUInterpreter.h index 3a9c1b3824..94de3f12c3 100644 --- a/rpcs3/Emu/Cell/PPUInterpreter.h +++ b/rpcs3/Emu/Cell/PPUInterpreter.h @@ -3895,7 +3895,7 @@ private: const double a = CPU.FPR[fra]; const double b = CPU.FPR[frb]; const double c = CPU.FPR[frc]; - const double res = a * c + (sub ? -b : b); + const double res = fma(a, c, sub ? -b : b); if(single) CPU.FPR[frd] = (float)(neg ? -res : res); else CPU.FPR[frd] = (neg ? -res : res); CPU.FPSCR.FPRF = CPU.FPR[frd].GetType();