1 --- _hdtoa.c.orig 2006-08-14 16:12:46.000000000 -0700
2 +++ _hdtoa.c 2006-08-14 23:02:39.000000000 -0700
16 +#ifdef LDBL_HEAD_TAIL_PAIR
19 +#endif /* LDBL_HEAD_TAIL_PAIR */
24 switch (fpclassify(e)) {
26 + case FP_SUPERNORMAL:
27 *decpt = u.bits.exp - LDBL_ADJ;
32 for (s = s0 + bufsize - 1; s > s0 + sigfigs - 1; s--)
34 +#ifdef LDBL_HEAD_TAIL_PAIR
35 + _ldbl2array32dd(u, bits);
38 + for (; s > s0; s--) {
46 +#else /* LDBL_HEAD_TAIL_PAIR */
47 for (; s > s0 + sigfigs - (LDBL_MANL_SIZE / 4) - 1 && s > s0; s--) {
48 *s = u.bits.manl & 0xf;
51 *s = u.bits.manh & 0xf;
54 +#endif /* LDBL_HEAD_TAIL_PAIR */
57 * At this point, we have snarfed all the bits in the
59 * (partial) nibble, which is dealt with by the next
60 * statement. We also tack on the implicit normalization bit.
62 +#ifdef LDBL_HEAD_TAIL_PAIR
64 +#else /* LDBL_HEAD_TAIL_PAIR */
65 *s = u.bits.manh | (1U << ((LDBL_MANT_DIG - 1) % 4));
66 +#endif /* LDBL_HEAD_TAIL_PAIR */
68 /* If ndigits < 0, we are expected to auto-size the precision. */