aboutsummaryrefslogtreecommitdiff
path: root/qint.c
diff options
context:
space:
mode:
authorAurelien Jarno <aurelien@aurel32.net>2011-04-20 13:04:22 +0200
committerAurelien Jarno <aurelien@aurel32.net>2011-04-25 11:18:33 +0200
commit326b9e98a391d542cc33c4c91782ff4ba51edfc5 (patch)
treeb9cde2b1dea8db271bf7a0875aadf11bc1dcc75d /qint.c
parentf6714d365da068481d83787b4044134ae2ec5dfd (diff)
downloadqemu-326b9e98a391d542cc33c4c91782ff4ba51edfc5.zip
qemu-326b9e98a391d542cc33c4c91782ff4ba51edfc5.tar.gz
qemu-326b9e98a391d542cc33c4c91782ff4ba51edfc5.tar.bz2
softfloat: fix float*_scalnb() corner cases
float*_scalnb() were not taking into account all cases. This patch fixes some corner cases: - NaN values in input were not properly propagated and the invalid flag not correctly raised. Use propagateFloat*NaN() for that. - NaN or infinite values in input of floatx80_scalnb() were not correctly detected due to a typo. - The sum of exponent and n could overflow, leading to strange results. Additionally having int16 defined to int make that happening for a very small range of values. Fix that by saturating n to the maximum exponent range, and using an explicit wider type if needed. Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Diffstat (limited to 'qint.c')
0 files changed, 0 insertions, 0 deletions