From c559f1b65f0c779ea665568668f3ce02c7cc673b Mon Sep 17 00:00:00 2001 From: Bjoren Davis Date: Thu, 21 Jan 2021 18:04:49 +0100 Subject: [PATCH] Bump exponent when needed. --- parse.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/parse.c b/parse.c index f24a768..18a32b7 100644 --- a/parse.c +++ b/parse.c @@ -491,12 +491,6 @@ int parse_float( DF(("msb_chopped_off = %16lx\n", msb_chopped_off)); ufrac += msb_chopped_off; DF(("ufrac: %016lx after rounding\n", ufrac)); - - if ((ufrac >> 56) > 0) { /* Overflow? */ - ufrac >>= 1; /* Normalize */ - uexp++; - DF(("ufrac: %016lx uexp: %02x\n", ufrac, uexp)); - } } else { /* * Round to 56-bit approximation. @@ -507,6 +501,12 @@ int parse_float( ufrac += round; } + if ((ufrac >> 56) > 0) { /* Overflow? */ + ufrac >>= 1; /* Normalize */ + uexp++; + DF(("ufrac: %016lx uexp: %02x\n", ufrac, uexp)); + } + flt[0] = (unsigned) (sign | (uexp << 7) | ((ufrac >> 48) & 0x7F)); if (size > 1) { flt[1] = (unsigned) ((ufrac >> 32) & 0xffff);