softfloat: Fix single-to-half precision float conversions
authorPeter Maydell <peter.maydell@linaro.org>
Thu, 10 Feb 2011 11:28:58 +0000 (11:28 +0000)
committerAurelien Jarno <aurelien@aurel32.net>
Thu, 10 Feb 2011 17:28:21 +0000 (18:28 +0100)
commitc438758fc649c5368ca30837956d994016261608
tree265f184644fcc33b1e1877d49edf3189695245e7
parent179007b6535a5574f51a4642a4e1425ce52f844b
softfloat: Fix single-to-half precision float conversions

Fix various bugs in the single-to-half-precision conversion code:
 * input NaNs not correctly converted in IEEE mode
   (fixed by defining and using a commonNaNToFloat16())
 * wrong values returned when converting NaN/Inf into non-IEEE
   half precision value
 * wrong values returned for conversion of values which are
   on the boundary between denormal and zero for the half
   precision format
 * zeroes not correctly identified
 * excessively large results in non-IEEE mode should
   generate InvalidOp, not Overflow

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
fpu/softfloat-specialize.h
fpu/softfloat.c