On 19 December 2013 22:00, Peter Maydell <peter.mayd...@linaro.org> wrote: > We implement a number of float-to-integer conversions using conversion > to an integer type with a wider range and then a check against the > narrower range we are actually converting to. If we find the result to > be out of range we correctly raise the Invalid exception, but we must > also suppress other exceptions which might have been raised by the > conversion function we called. > > This won't throw away exceptions we should have preserved, because for > the 'core' exception flags the IEEE spec mandates that the only valid > combinations of exception that can be raised by a single operation are > Inexact + Overflow and Inexact + Underflow. For the non-IEEE softfloat > flag for input denormals, we can guarantee that that flag won't have > been set for out of range float-to-int conversions because a squashed > denormal by definition goes to plus or minus zero, which is always in > range after conversion to integer zero. > > This bug has been fixed for some of the float-to-int conversion routines > by previous patches; fix it for the remaining functions as well, so > that they all restore the pre-conversion status flags prior to raising > Invalid. > > Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> > --- > NB that I've worded the commit message on the assumption that the > patches Tom Musta has written for PPC bugs go in first; as it happens > the patches don't actually conflict, though. > > Some of these fix wrong-exception-flags bugs in 32 bit ARM VCVT.
Forgot it for this one, so: This patch is licensed under softfloat-2a or -2b, at your option. thanks -- PMM