mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-26 06:50:07 +00:00
More corrections.
* sysdeps/i960/Implies: Imply ieee754/flt-32 and ieee754/dbl-64 instead of ieee754. * sysdeps/generic/s_nextafter.c: ...here. * sysdeps/generic/s_nexttowardl.c: ...here.
This commit is contained in:
parent
d4ff4aeb87
commit
c68cb81185
@ -15,7 +15,6 @@
|
||||
* sysdeps/i386/Implies: Imply ieee754/flt-32, ieee754/dbl-64, and
|
||||
ieee754/ldbl-96 instead of ieee754.
|
||||
* sysdeps/i386/i686/Implies: Remove implication for libm-i387/i686.
|
||||
* sysdeps/generic/strtold.c: Remove.
|
||||
* sysdeps/generic/e_atanhl.c: New file.
|
||||
* sysdeps/generic/e_coshl.c: New file.
|
||||
* sysdeps/generic/e_sinhl.c: New file.
|
||||
@ -25,6 +24,8 @@
|
||||
* sysdeps/generic/s_asinhl.c: New file.
|
||||
* sysdeps/generic/s_tanhl.c: New file.
|
||||
* sysdeps/generic/w_expl.c: New file.
|
||||
* sysdeps/i960/Implies: Imply ieee754/flt-32 and ieee754/dbl-64
|
||||
instead of ieee754.
|
||||
* sysdeps/m68k/Implies: Imply ieee754/flt-32, ieee754/dbl-64, and
|
||||
ieee754/ldbl-96 instead of ieee754.
|
||||
* sysdeps/m68k/strtold.c: Include ldbl-96 version of strtold.
|
||||
@ -752,7 +753,7 @@
|
||||
* sysdeps/libm-ieee754/s_nearbyint.c: Moved to ...
|
||||
* sysdeps/ieee754/dbl-64/s_nearbyint.c: ...here.
|
||||
* sysdeps/libm-ieee754/s_nextafter.c: Moved to ...
|
||||
* sysdeps/ieee754/dbl-64/s_nextafter.c: ...here.
|
||||
* sysdeps/generic/s_nextafter.c: ...here.
|
||||
Add __nexttoward and nexttoward aliases if NO_LONG_DOUBLE.
|
||||
* sysdeps/libm-ieee754/s_remquo.c: Moved to ...
|
||||
* sysdeps/ieee754/dbl-64/s_remquo.c: ...here.
|
||||
@ -1029,7 +1030,7 @@
|
||||
* sysdeps/ieee754/ldbl-96/s_scalblnl.c: ...here.
|
||||
Fix exponent for subnormal result.
|
||||
* sysdeps/libm-ieee754/s_nexttowardl.c: Moved to ...
|
||||
* math/s_nexttowardl.c: ...here.
|
||||
* sysdeps/generic/s_nexttowardl.c: ...here.
|
||||
* sysdeps/libm-i387/i686/s_fmaxf.S: Moved to ...
|
||||
* sysdeps/i386/i686/fpu/s_fmaxf.S: ...here.
|
||||
* sysdeps/libm-i387/s_isnanl.c: Moved to ...
|
||||
|
@ -1,61 +1,81 @@
|
||||
/* Print floating point number in hexadecimal notation according to
|
||||
ISO C 9X.
|
||||
Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef LONG_DOUBLE_DENORM_BIAS
|
||||
# define LONG_DOUBLE_DENORM_BIAS (IEEE854_LONG_DOUBLE_BIAS - 1)
|
||||
#endif
|
||||
|
||||
#define PRINT_FPHEX_LONG_DOUBLE \
|
||||
do { \
|
||||
/* The "strange" 80 bit format on ix86 and m68k has an explicit \
|
||||
leading digit in the 64 bit mantissa. */ \
|
||||
unsigned long long int num; \
|
||||
\
|
||||
assert (sizeof (long double) == 12); \
|
||||
\
|
||||
num = (((unsigned long long int) fpnum.ldbl.ieee.mantissa0) << 32 \
|
||||
| fpnum.ldbl.ieee.mantissa1); \
|
||||
\
|
||||
zero_mantissa = num == 0; \
|
||||
\
|
||||
if (sizeof (unsigned long int) > 6) \
|
||||
numstr = _itoa_word (num, numbuf + sizeof numbuf, 16, \
|
||||
info->spec == 'A'); \
|
||||
else \
|
||||
numstr = _itoa (num, numbuf + sizeof numbuf, 16, info->spec == 'A'); \
|
||||
\
|
||||
/* Fill with zeroes. */ \
|
||||
while (numstr > numbuf + (sizeof numbuf - 64 / 4)) \
|
||||
*--numstr = '0'; \
|
||||
\
|
||||
/* We use a full nibble for the leading digit. */ \
|
||||
leading = *numstr++; \
|
||||
\
|
||||
/* We have 3 bits from the mantissa in the leading nibble. \
|
||||
Therefore we are here using `IEEE854_LONG_DOUBLE_BIAS + 3'. */ \
|
||||
exponent = fpnum.ldbl.ieee.exponent; \
|
||||
\
|
||||
if (exponent == 0) \
|
||||
{ \
|
||||
if (zero_mantissa) \
|
||||
expnegative = 0; \
|
||||
else \
|
||||
{ \
|
||||
/* This is a denormalized number. */ \
|
||||
expnegative = 1; \
|
||||
/* This is a hook for the m68k long double format, where the \
|
||||
exponent bias is the same for normalized and denormalized \
|
||||
numbers. */ \
|
||||
exponent = LONG_DOUBLE_DENORM_BIAS + 3; \
|
||||
} \
|
||||
} \
|
||||
else if (exponent >= IEEE854_LONG_DOUBLE_BIAS + 3) \
|
||||
{ \
|
||||
expnegative = 0; \
|
||||
exponent -= IEEE854_LONG_DOUBLE_BIAS + 3; \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
expnegative = 1; \
|
||||
exponent = -(exponent - (IEEE854_LONG_DOUBLE_BIAS + 3)); \
|
||||
} \
|
||||
#define PRINT_FPHEX_LONG_DOUBLE \
|
||||
do { \
|
||||
/* The "strange" 80 bit format on ix86 and m68k has an explicit \
|
||||
leading digit in the 64 bit mantissa. */ \
|
||||
unsigned long long int num; \
|
||||
\
|
||||
assert (sizeof (long double) == 12); \
|
||||
\
|
||||
num = (((unsigned long long int) fpnum.ldbl.ieee.mantissa0) << 32 \
|
||||
| fpnum.ldbl.ieee.mantissa1); \
|
||||
\
|
||||
zero_mantissa = num == 0; \
|
||||
\
|
||||
if (sizeof (unsigned long int) > 6) \
|
||||
numstr = _itoa_word (num, numbuf + sizeof numbuf, 16, \
|
||||
info->spec == 'A'); \
|
||||
else \
|
||||
numstr = _itoa (num, numbuf + sizeof numbuf, 16, info->spec == 'A'); \
|
||||
\
|
||||
/* Fill with zeroes. */ \
|
||||
while (numstr > numbuf + (sizeof numbuf - 64 / 4)) \
|
||||
*--numstr = '0'; \
|
||||
\
|
||||
/* We use a full nibble for the leading digit. */ \
|
||||
leading = *numstr++; \
|
||||
\
|
||||
/* We have 3 bits from the mantissa in the leading nibble. \
|
||||
Therefore we are here using `IEEE854_LONG_DOUBLE_BIAS + 3'. */ \
|
||||
exponent = fpnum.ldbl.ieee.exponent; \
|
||||
\
|
||||
if (exponent == 0) \
|
||||
{ \
|
||||
if (zero_mantissa) \
|
||||
expnegative = 0; \
|
||||
else \
|
||||
{ \
|
||||
/* This is a denormalized number. */ \
|
||||
expnegative = 1; \
|
||||
/* This is a hook for the m68k long double format, where the \
|
||||
exponent bias is the same for normalized and denormalized \
|
||||
numbers. */ \
|
||||
exponent = LONG_DOUBLE_DENORM_BIAS + 3; \
|
||||
} \
|
||||
} \
|
||||
else if (exponent >= IEEE854_LONG_DOUBLE_BIAS + 3) \
|
||||
{ \
|
||||
expnegative = 0; \
|
||||
exponent -= IEEE854_LONG_DOUBLE_BIAS + 3; \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
expnegative = 1; \
|
||||
exponent = -(exponent - (IEEE854_LONG_DOUBLE_BIAS + 3)); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#include <sysdeps/generic/printf_fphex.c>
|
||||
|
Loading…
Reference in New Issue
Block a user