fpu/softfloat: check for Inf / x or 0 / x before /0
commit9cb4e398c2f95c1e837fe9c570e124a55259f725
authorAlex Bennée <alex.bennee@linaro.org>
Mon, 16 Apr 2018 13:54:42 +0000 (16 14:54 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Mon, 16 Apr 2018 17:40:48 +0000 (16 18:40 +0100)
tree774ac24416cac3cfa0933ac7594094d68598ae56
parent2a6b5372d7bad038fe27f9c60e85ef5c8a15e311
fpu/softfloat: check for Inf / x or 0 / x before /0

The re-factoring of div_floats changed the order of checking meaning
an operation like -inf/0 erroneously raises the divbyzero flag.
IEEE-754 (2008) specifies this should only occur for operations on
finite operands.

We fix this by moving the check on the dividend being Inf/0 to before
the divisor is zero check.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-id: 20180416135442.30606-1-alex.bennee@linaro.org
Cc: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
Reviewed-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
Tested-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
fpu/softfloat.c