glibc/soft-fp
Joseph Myers c20809709a Fix soft-fp extended.h unpacking (GCC bug 77265).
soft-fp unpacking for x86 "extended" fails to clear the implicit
mantissa high bit that is explicit in that format, resulting in
problems for operations that expect this bit to be clear in raw
unpacked values.  Specifically, the code for this format is used only
for conversions to and from TFmode (__float128) in libgcc, where this
issue results in GCC bug 77265, extension of long double infinity to
__float128 wrongly produces a NaN.

This patch fixes this by always masking out the implicit bit on
unpacking, so that the results of unpacking meet the expectations of
the rest of the soft-fp code for a normal IEEE format.

Tested for x86_64 in libgcc in conjunction with a GCC testcase for
this issue (this code isn't used in glibc, only in libgcc).

	* soft-fp/extended.h [_FP_W_TYPE_SIZE < 64] (FP_UNPACK_RAW_E):
	Mask implicit bit out of unpacked value.
	[_FP_W_TYPE_SIZE < 64] (FP_UNPACK_RAW_EP): Likewise.
	[_FP_W_TYPE_SIZE >= 64] (FP_UNPACK_RAW_E): Likewise.
	[_FP_W_TYPE_SIZE >= 64] (FP_UNPACK_RAW_EP): Likewise.
2016-08-16 17:11:46 +00:00
..
Banner Update. 1999-12-29 18:11:48 +00:00
Makefile Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
adddf3.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
addsf3.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
addtf3.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
divdf3.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
divsf3.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
divtf3.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
double.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
eqdf2.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
eqsf2.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
eqtf2.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
extenddftf2.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
extended.h Fix soft-fp extended.h unpacking (GCC bug 77265). 2016-08-16 17:11:46 +00:00
extendsfdf2.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
extendsftf2.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
extendxftf2.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fixdfdi.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fixdfsi.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fixdfti.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fixsfdi.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fixsfsi.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fixsfti.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fixtfdi.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fixtfsi.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fixtfti.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fixunsdfdi.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fixunsdfsi.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fixunsdfti.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fixunssfdi.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fixunssfsi.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fixunssfti.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fixunstfdi.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fixunstfsi.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fixunstfti.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
floatdidf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
floatdisf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
floatditf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
floatsidf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
floatsisf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
floatsitf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
floattidf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
floattisf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
floattitf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
floatundidf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
floatundisf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
floatunditf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
floatunsidf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
floatunsisf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
floatunsitf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
floatuntidf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
floatuntisf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
floatuntitf.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fmadf4.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fmasf4.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fmatf4.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
gedf2.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
gesf2.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
getf2.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
ledf2.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
lesf2.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
letf2.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
muldf3.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
mulsf3.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
multf3.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
negdf2.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
negsf2.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
negtf2.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
op-1.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
op-2.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
op-4.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
op-8.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
op-common.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
quad.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
single.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
soft-fp.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
sqrtdf2.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
sqrtsf2.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
sqrttf2.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
subdf3.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
subsf3.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
subtf3.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
testit.c Remove trailing whitespace. 2013-06-05 20:44:03 +00:00
truncdfsf2.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
trunctfdf2.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
trunctfsf2.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
trunctfxf2.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
unorddf2.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
unordsf2.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
unordtf2.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00