Re: [Qemu-devel] [PATCH] softfloat: Handle float_muladd_negate_c when product is zero

2013-01-22 Thread Richard Sandiford
Richard Sandiford writes: > BTW, I'm not sure it's right to be using *_muladd for MIPS. MADD.fmt & > co. were fused operations in the early MIPS IV processors, but they've > had an intermediate rounding step since then (i.e. they're equivalent > to a separate multiplication and addition). I'm no

Re: [Qemu-devel] [PATCH] softfloat: Handle float_muladd_negate_c when product is zero

2013-01-21 Thread Richard Sandiford
Peter Maydell writes: > On 21 January 2013 21:32, Richard Sandiford > wrote: >> Honour float_muladd_negate_c in the case where the product is zero and >> c is nonzero. Previously we would fail to negate c. >> >> Seen in (and tested against) the gfortran testsuite on MIPS. >> >> Signed-off-by: R

Re: [Qemu-devel] [PATCH] softfloat: Handle float_muladd_negate_c when product is zero

2013-01-21 Thread Peter Maydell
On 21 January 2013 21:32, Richard Sandiford wrote: > Honour float_muladd_negate_c in the case where the product is zero and > c is nonzero. Previously we would fail to negate c. > > Seen in (and tested against) the gfortran testsuite on MIPS. > > Signed-off-by: Richard Sandiford > --- > fpu/sof

Re: [Qemu-devel] [PATCH] softfloat: Handle float_muladd_negate_c when product is zero

2013-01-21 Thread Richard Sandiford
BTW, I'm not sure it's right to be using *_muladd for MIPS. MADD.fmt & co. were fused operations in the early MIPS IV processors, but they've had an intermediate rounding step since then (i.e. they're equivalent to a separate multiplication and addition). I'm not feeling brave enough to tackle th

[Qemu-devel] [PATCH] softfloat: Handle float_muladd_negate_c when product is zero

2013-01-21 Thread Richard Sandiford
Honour float_muladd_negate_c in the case where the product is zero and c is nonzero. Previously we would fail to negate c. Seen in (and tested against) the gfortran testsuite on MIPS. Signed-off-by: Richard Sandiford --- fpu/softfloat.c | 6 ++ 1 file changed, 6 insertions(+) diff --git a