softfloat: Fix division
commit5dfbc9e4903c0121140f2945f05df48cea72dd82
authorRichard Henderson <richard.henderson@linaro.org>
Wed, 3 Oct 2018 14:35:51 +0000 (3 09:35 -0500)
committerRichard Henderson <richard.henderson@linaro.org>
Fri, 5 Oct 2018 17:57:41 +0000 (5 12:57 -0500)
treea3919c99dfd9c4144513dc134836ffc902977a72
parent0019d5c3a18c31604fb55f9cec3ceb13999c4866
softfloat: Fix division

The __udiv_qrnnd primitive that we nicked from gmp requires its
inputs to be normalized.  We were not doing that.  Because the
inputs are nearly normalized already, finishing that is trivial.

Replace div128to64 with a "proper" udiv_qrnnd, so that this
remains a reusable primitive.

Fixes: cf07323d494
Fixes: https://bugs.launchpad.net/qemu/+bug/1793119
Tested-by: Emilio G. Cota <cota@braap.org>
Tested-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
fpu/softfloat.c
include/fpu/softfloat-macros.h