From 86b6eab206bf88de15e1f04f271e1a13b5675d45 Mon Sep 17 00:00:00 2001 From: ceriel Date: Mon, 27 Nov 1989 17:29:35 +0000 Subject: [PATCH] speeded up a bit for printing 0.0 --- lang/cem/libcc/gen/ext_comp.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lang/cem/libcc/gen/ext_comp.c b/lang/cem/libcc/gen/ext_comp.c index e990d541a..e6b1edc15 100644 --- a/lang/cem/libcc/gen/ext_comp.c +++ b/lang/cem/libcc/gen/ext_comp.c @@ -608,18 +608,20 @@ _ext_str_cvt(e, ndigit, decpt, sign, ecvtflag) if (pe > &buf[NDIGITS]) pe = &buf[NDIGITS]; } while (p <= pe) { - if (e->exp >= 0) { + if (e->exp >= 0 && e->m1 != 0) { struct EXTEND x; x.m2 = 0; x.exp = e->exp; x.sign = 1; x.m1 = e->m1>>(31-e->exp); *p++ = (x.m1) + '0'; - x.m1 = x.m1 << (31-e->exp); - add_ext(e, &x, e); + if (x.m1) { + x.m1 = x.m1 << (31-e->exp); + add_ext(e, &x, e); + } } else *p++ = '0'; - mul_ext(e, &ten_powers[1], e); + if (e->m1) mul_ext(e, &ten_powers[1], e); } if (pe >= buf) { p = pe; -- 2.34.1