diff options
Diffstat (limited to 'target-ppc/op.c')
-rw-r--r-- | target-ppc/op.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/target-ppc/op.c b/target-ppc/op.c index 12c92891cd..de7e247355 100644 --- a/target-ppc/op.c +++ b/target-ppc/op.c @@ -1368,28 +1368,32 @@ PPC_OP(fmsubs) /* fnmadd - fnmadd. - fnmadds - fnmadds. */ PPC_OP(fnmadd) { - FT0 = -((FT0 * FT1) + FT2); + FT0 *= FT1; + FT0 += FT2; + FT0 = -FT0; RETURN(); } /* fnmadds - fnmadds. */ PPC_OP(fnmadds) { - FTS0 = -((FTS0 * FTS1) + FTS2); + do_fnmadds(); RETURN(); } /* fnmsub - fnmsub. */ PPC_OP(fnmsub) { - FT0 = -((FT0 * FT1) - FT2); + FT0 *= FT1; + FT0 -= FT2; + FT0 = -FT0; RETURN(); } /* fnmsubs - fnmsubs. */ PPC_OP(fnmsubs) { - FTS0 = -((FTS0 * FTS1) - FTS2); + do_fnmsubs(); RETURN(); } |