glibc/soft-fp
Joseph Myers a736ec370a soft-fp: Support rsigned == 2 in _FP_TO_INT.
Continuing the addition of soft-fp features in the Linux kernel
version, this patch adds _FP_TO_INT support for rsigned == 2 (reduce
overflowing results modulo 2^rsize to fit in the destination, used for
alpha emulation).

The kernel version is buggy; it can left shift by a negative amount
when right shifting is required in an overflow case (the kernel
version also has other bugs fixed long ago in glibc; at least,
spurious exceptions converting to the most negative integer).  This
version avoids that by handling overflow (other than to 0) for rsigned
== 2 along with the normal non-overflow case, which already properly
determines the direction in which to shift.

Tested for powerpc-nofpu.  Some functions get slightly bigger and some
get slightly smaller, no doubt as a result of the change to where in
the macro "inexact" is raised, but I don't think those changes are
significant.  Also tested for powerpc-nofpu with the relevant __fix*
functions changed to use rsigned == 2 (which is after all just as
valid as rsigned == 1 in IEEE terms), including verifying the results
and exceptions for various cases of conversions.

With these seven patches, the one remaining feature to add for the
soft-fp code to have all the features of the kernel version is
_FP_TO_INT_ROUND.

	* soft-fp/op-common.h (_FP_TO_INT): Handle rsigned == 2.
2014-10-09 15:00:37 +00:00
..
adddf3.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
addsf3.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
addtf3.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
Banner Update. 1999-12-29 18:11:48 +00:00
divdf3.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
divsf3.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
divtf3.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
double.h soft-fp: Refactor exception handling for comparisons. 2014-10-09 01:03:56 +00:00
eqdf2.c soft-fp: Refactor exception handling for comparisons. 2014-10-09 01:03:56 +00:00
eqsf2.c soft-fp: Refactor exception handling for comparisons. 2014-10-09 01:03:56 +00:00
eqtf2.c soft-fp: Refactor exception handling for comparisons. 2014-10-09 01:03:56 +00:00
extenddftf2.c soft-fp: Make extensions of subnormals from XFmode to TFmode signal underflow if traps enabled. 2014-10-09 01:00:41 +00:00
extended.h soft-fp: Refactor exception handling for comparisons. 2014-10-09 01:03:56 +00:00
extendsfdf2.c soft-fp: Make extensions of subnormals from XFmode to TFmode signal underflow if traps enabled. 2014-10-09 01:00:41 +00:00
extendsftf2.c soft-fp: Make extensions of subnormals from XFmode to TFmode signal underflow if traps enabled. 2014-10-09 01:00:41 +00:00
extendxftf2.c soft-fp: Make extensions of subnormals from XFmode to TFmode signal underflow if traps enabled. 2014-10-09 01:00:41 +00:00
fixdfdi.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fixdfsi.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fixdfti.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fixsfdi.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fixsfsi.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fixsfti.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fixtfdi.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fixtfsi.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fixtfti.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fixunsdfdi.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fixunsdfsi.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fixunsdfti.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fixunssfdi.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fixunssfsi.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fixunssfti.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fixunstfdi.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fixunstfsi.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fixunstfti.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
floatdidf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
floatdisf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
floatditf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
floatsidf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
floatsisf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
floatsitf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
floattidf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
floattisf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
floattitf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
floatundidf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
floatundisf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
floatunditf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
floatunsidf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
floatunsisf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
floatunsitf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
floatuntidf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
floatuntisf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
floatuntitf.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fmadf4.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fmasf4.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fmatf4.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
gedf2.c soft-fp: Refactor exception handling for comparisons. 2014-10-09 01:03:56 +00:00
gesf2.c soft-fp: Refactor exception handling for comparisons. 2014-10-09 01:03:56 +00:00
getf2.c soft-fp: Refactor exception handling for comparisons. 2014-10-09 01:03:56 +00:00
ledf2.c soft-fp: Refactor exception handling for comparisons. 2014-10-09 01:03:56 +00:00
lesf2.c soft-fp: Refactor exception handling for comparisons. 2014-10-09 01:03:56 +00:00
letf2.c soft-fp: Refactor exception handling for comparisons. 2014-10-09 01:03:56 +00:00
Makefile Consistently include Makeconfig after defining subdir. 2014-02-26 23:12:03 +00:00
muldf3.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
mulsf3.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
multf3.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
negdf2.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
negsf2.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
negtf2.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
op-1.h soft-fp: Fix comment formatting. 2014-09-17 22:20:45 +00:00
op-2.h soft-fp: Fix comment formatting. 2014-09-17 22:20:45 +00:00
op-4.h soft-fp: Fix comment formatting. 2014-09-17 22:20:45 +00:00
op-8.h soft-fp: Fix comment formatting. 2014-09-17 22:20:45 +00:00
op-common.h soft-fp: Support rsigned == 2 in _FP_TO_INT. 2014-10-09 15:00:37 +00:00
quad.h soft-fp: Refactor exception handling for comparisons. 2014-10-09 01:03:56 +00:00
single.h soft-fp: Refactor exception handling for comparisons. 2014-10-09 01:03:56 +00:00
soft-fp.h soft-fp: Support more precise "invalid" exceptions. 2014-10-09 14:59:23 +00:00
sqrtdf2.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
sqrtsf2.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
sqrttf2.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
subdf3.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
subsf3.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
subtf3.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
testit.c Remove trailing whitespace. 2013-06-05 20:44:03 +00:00
truncdfsf2.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
trunctfdf2.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
trunctfsf2.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
trunctfxf2.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
unorddf2.c soft-fp: Refactor exception handling for comparisons. 2014-10-09 01:03:56 +00:00
unordsf2.c soft-fp: Refactor exception handling for comparisons. 2014-10-09 01:03:56 +00:00
unordtf2.c soft-fp: Refactor exception handling for comparisons. 2014-10-09 01:03:56 +00:00