re PR other/53317 (Conversion from __int128 to __float128)

PR other/53317

gcc/testsuite:
	* gcc.dg/torture/fp-int-convert-float128-timode-2.c: New test.

libgcc:
	* soft-fp/adddf3.c: Update from glibc.
	* soft-fp/addsf3.c: Likewise.
	* soft-fp/addtf3.c: Likewise.
	* soft-fp/divdf3.c: Likewise.
	* soft-fp/divsf3.c: Likewise.
	* soft-fp/divtf3.c: Likewise.
	* soft-fp/double.h: Likewise.
	* soft-fp/eqdf2.c: Likewise.
	* soft-fp/eqsf2.c: Likewise.
	* soft-fp/eqtf2.c: Likewise.
	* soft-fp/extenddftf2.c: Likewise.
	* soft-fp/extended.h: Likewise.
	* soft-fp/extendsfdf2.c: Likewise.
	* soft-fp/extendsftf2.c: Likewise.
	* soft-fp/fixdfdi.c: Likewise.
	* soft-fp/fixdfsi.c: Likewise.
	* soft-fp/fixsfdi.c: Likewise.
	* soft-fp/fixsfsi.c: Likewise.
	* soft-fp/fixtfdi.c: Likewise.
	* soft-fp/fixtfsi.c: Likewise.
	* soft-fp/fixunsdfdi.c: Likewise.
	* soft-fp/fixunsdfsi.c: Likewise.
	* soft-fp/fixunssfdi.c: Likewise.
	* soft-fp/fixunssfsi.c: Likewise.
	* soft-fp/fixunstfdi.c: Likewise.
	* soft-fp/fixunstfsi.c: Likewise.
	* soft-fp/floatdidf.c: Likewise.
	* soft-fp/floatdisf.c: Likewise.
	* soft-fp/floatditf.c: Likewise.
	* soft-fp/floatsidf.c: Likewise.
	* soft-fp/floatsisf.c: Likewise.
	* soft-fp/floatsitf.c: Likewise.
	* soft-fp/floatundidf.c: Likewise.
	* soft-fp/floatundisf.c: Likewise.
	* soft-fp/floatunditf.c: Likewise.
	* soft-fp/floatunsidf.c: Likewise.
	* soft-fp/floatunsisf.c: Likewise.
	* soft-fp/floatunsitf.c: Likewise.
	* soft-fp/gedf2.c: Likewise.
	* soft-fp/gesf2.c: Likewise.
	* soft-fp/getf2.c: Likewise.
	* soft-fp/ledf2.c: Likewise.
	* soft-fp/lesf2.c: Likewise.
	* soft-fp/letf2.c: Likewise.
	* soft-fp/muldf3.c: Likewise.
	* soft-fp/mulsf3.c: Likewise.
	* soft-fp/multf3.c: Likewise.
	* soft-fp/negdf2.c: Likewise.
	* soft-fp/negsf2.c: Likewise.
	* soft-fp/negtf2.c: Likewise.
	* soft-fp/op-1.h: Likewise.
	* soft-fp/op-2.h: Likewise.
	* soft-fp/op-4.h: Likewise.
	* soft-fp/op-8.h: Likewise.
	* soft-fp/op-common.h: Likewise.
	* soft-fp/quad.h: Likewise.
	* soft-fp/single.h: Likewise.
	* soft-fp/soft-fp.h: Likewise.
	* soft-fp/subdf3.c: Likewise.
	* soft-fp/subsf3.c: Likewise.
	* soft-fp/subtf3.c: Likewise.
	* soft-fp/truncdfsf2.c: Likewise.
	* soft-fp/trunctfdf2.c: Likewise.
	* soft-fp/trunctfsf2.c: Likewise.
	* soft-fp/unorddf2.c: Likewise.
	* soft-fp/unordsf2.c: Likewise.
	* soft-fp/unordtf2.c: Likewise.
	* config/aarch64/sfp-machine.h (_FP_QNANNEGATEDP): Define to 0.
	* config/arm/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
	* config/c6x/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
	* config/i386/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
	* config/ia64/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
	* config/lm32/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
	* config/moxie/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
	* config/rs6000/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
	* config/score/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
	* config/tilegx/sfp-machine32.h (_FP_QNANNEGATEDP): Likewise.
	* config/tilegx/sfp-machine64.h (_FP_QNANNEGATEDP): Likewise.
	* config/tilepro/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.

From-SVN: r200318
This commit is contained in:
Joseph Myers 2013-06-21 20:08:01 +01:00 committed by Joseph Myers
parent 2b4171c331
commit fa1e55b0a0
82 changed files with 285 additions and 120 deletions

View File

@ -1,3 +1,8 @@
2013-06-21 Joseph Myers <joseph@codesourcery.com>
PR other/53317
* gcc.dg/torture/fp-int-convert-float128-timode-2.c: New test.
2013-06-20 Uros Bizjak <ubizjak@gmail.com> 2013-06-20 Uros Bizjak <ubizjak@gmail.com>
PR target/57655 PR target/57655

View File

@ -0,0 +1,21 @@
/* Test floating-point conversions. __float128 type with TImode: bug
53317. */
/* Origin: Joseph Myers <joseph@codesourcery.com> */
/* { dg-do run { target i?86-*-* x86_64-*-* ia64-*-* } } */
/* { dg-require-effective-target int128 } */
/* { dg-options "" } */
extern void abort (void);
extern void exit (int);
int
main (void)
{
volatile unsigned long long a = 0x1000000000000ULL;
volatile unsigned long long b = 0xffffffffffffffffULL;
unsigned __int128 c = (((unsigned __int128) a) << 64) | b;
__float128 d = c;
if (d != 0x1.000000000000ffffffffffffffffp112q)
abort ();
exit (0);
}

View File

@ -1,3 +1,86 @@
2013-06-21 Joseph Myers <joseph@codesourcery.com>
PR other/53317
* soft-fp/adddf3.c: Update from glibc.
* soft-fp/addsf3.c: Likewise.
* soft-fp/addtf3.c: Likewise.
* soft-fp/divdf3.c: Likewise.
* soft-fp/divsf3.c: Likewise.
* soft-fp/divtf3.c: Likewise.
* soft-fp/double.h: Likewise.
* soft-fp/eqdf2.c: Likewise.
* soft-fp/eqsf2.c: Likewise.
* soft-fp/eqtf2.c: Likewise.
* soft-fp/extenddftf2.c: Likewise.
* soft-fp/extended.h: Likewise.
* soft-fp/extendsfdf2.c: Likewise.
* soft-fp/extendsftf2.c: Likewise.
* soft-fp/fixdfdi.c: Likewise.
* soft-fp/fixdfsi.c: Likewise.
* soft-fp/fixsfdi.c: Likewise.
* soft-fp/fixsfsi.c: Likewise.
* soft-fp/fixtfdi.c: Likewise.
* soft-fp/fixtfsi.c: Likewise.
* soft-fp/fixunsdfdi.c: Likewise.
* soft-fp/fixunsdfsi.c: Likewise.
* soft-fp/fixunssfdi.c: Likewise.
* soft-fp/fixunssfsi.c: Likewise.
* soft-fp/fixunstfdi.c: Likewise.
* soft-fp/fixunstfsi.c: Likewise.
* soft-fp/floatdidf.c: Likewise.
* soft-fp/floatdisf.c: Likewise.
* soft-fp/floatditf.c: Likewise.
* soft-fp/floatsidf.c: Likewise.
* soft-fp/floatsisf.c: Likewise.
* soft-fp/floatsitf.c: Likewise.
* soft-fp/floatundidf.c: Likewise.
* soft-fp/floatundisf.c: Likewise.
* soft-fp/floatunditf.c: Likewise.
* soft-fp/floatunsidf.c: Likewise.
* soft-fp/floatunsisf.c: Likewise.
* soft-fp/floatunsitf.c: Likewise.
* soft-fp/gedf2.c: Likewise.
* soft-fp/gesf2.c: Likewise.
* soft-fp/getf2.c: Likewise.
* soft-fp/ledf2.c: Likewise.
* soft-fp/lesf2.c: Likewise.
* soft-fp/letf2.c: Likewise.
* soft-fp/muldf3.c: Likewise.
* soft-fp/mulsf3.c: Likewise.
* soft-fp/multf3.c: Likewise.
* soft-fp/negdf2.c: Likewise.
* soft-fp/negsf2.c: Likewise.
* soft-fp/negtf2.c: Likewise.
* soft-fp/op-1.h: Likewise.
* soft-fp/op-2.h: Likewise.
* soft-fp/op-4.h: Likewise.
* soft-fp/op-8.h: Likewise.
* soft-fp/op-common.h: Likewise.
* soft-fp/quad.h: Likewise.
* soft-fp/single.h: Likewise.
* soft-fp/soft-fp.h: Likewise.
* soft-fp/subdf3.c: Likewise.
* soft-fp/subsf3.c: Likewise.
* soft-fp/subtf3.c: Likewise.
* soft-fp/truncdfsf2.c: Likewise.
* soft-fp/trunctfdf2.c: Likewise.
* soft-fp/trunctfsf2.c: Likewise.
* soft-fp/unorddf2.c: Likewise.
* soft-fp/unordsf2.c: Likewise.
* soft-fp/unordtf2.c: Likewise.
* config/aarch64/sfp-machine.h (_FP_QNANNEGATEDP): Define to 0.
* config/arm/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
* config/c6x/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
* config/i386/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
* config/ia64/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
* config/lm32/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
* config/moxie/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
* config/rs6000/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
* config/score/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
* config/tilegx/sfp-machine32.h (_FP_QNANNEGATEDP): Likewise.
* config/tilegx/sfp-machine64.h (_FP_QNANNEGATEDP): Likewise.
* config/tilepro/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
2013-06-16 Jürgen Urban <JuergenUrban@gmx.de> 2013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
* config/mips/lib2funcs.c: New file. * config/mips/lib2funcs.c: New file.

View File

@ -45,6 +45,7 @@ typedef int __gcc_CMPtype __attribute__ ((mode (__libgcc_cmp_return__)));
#define _FP_NANSIGN_Q 0 #define _FP_NANSIGN_Q 0
#define _FP_KEEPNANFRACP 1 #define _FP_KEEPNANFRACP 1
#define _FP_QNANNEGATEDP 0
/* This appears to be in line with the VFP conventions in the v7-a /* This appears to be in line with the VFP conventions in the v7-a
ARM-ARM. Need to check with the v8 version. */ ARM-ARM. Need to check with the v8 version. */

View File

@ -29,6 +29,7 @@ typedef int __gcc_CMPtype __attribute__ ((mode (__libgcc_cmp_return__)));
#define _FP_NANSIGN_Q 0 #define _FP_NANSIGN_Q 0
#define _FP_KEEPNANFRACP 1 #define _FP_KEEPNANFRACP 1
#define _FP_QNANNEGATEDP 0
/* Someone please check this. */ /* Someone please check this. */
#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \ #define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \

View File

@ -50,6 +50,7 @@
#define _FP_NANSIGN_Q 0 #define _FP_NANSIGN_Q 0
#define _FP_KEEPNANFRACP 1 #define _FP_KEEPNANFRACP 1
#define _FP_QNANNEGATEDP 0
/* Someone please check this. */ /* Someone please check this. */
#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \ #define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \

View File

@ -15,6 +15,7 @@ typedef int __gcc_CMPtype __attribute__ ((mode (__libgcc_cmp_return__)));
#endif #endif
#define _FP_KEEPNANFRACP 1 #define _FP_KEEPNANFRACP 1
#define _FP_QNANNEGATEDP 0
#define _FP_NANSIGN_S 1 #define _FP_NANSIGN_S 1
#define _FP_NANSIGN_D 1 #define _FP_NANSIGN_D 1

View File

@ -24,6 +24,7 @@ typedef int __gcc_CMPtype __attribute__ ((mode (__libgcc_cmp_return__)));
#define _FP_NANFRAC_Q _FP_QNANBIT_Q, 0 #define _FP_NANFRAC_Q _FP_QNANBIT_Q, 0
#define _FP_KEEPNANFRACP 1 #define _FP_KEEPNANFRACP 1
#define _FP_QNANNEGATEDP 0
#define _FP_NANSIGN_S 1 #define _FP_NANSIGN_S 1
#define _FP_NANSIGN_D 1 #define _FP_NANSIGN_D 1

View File

@ -22,6 +22,7 @@
#define _FP_NANSIGN_Q 0 #define _FP_NANSIGN_Q 0
#define _FP_KEEPNANFRACP 1 #define _FP_KEEPNANFRACP 1
#define _FP_QNANNEGATEDP 0
/* Someone please check this. */ /* Someone please check this. */
#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \ #define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \

View File

@ -27,6 +27,7 @@ typedef int __gcc_CMPtype __attribute__ ((mode (__libgcc_cmp_return__)));
#define _FP_NANSIGN_Q 0 #define _FP_NANSIGN_Q 0
#define _FP_KEEPNANFRACP 1 #define _FP_KEEPNANFRACP 1
#define _FP_QNANNEGATEDP 0
/* Someone please check this. */ /* Someone please check this. */
#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \ #define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \

View File

@ -27,6 +27,7 @@ typedef int __gcc_CMPtype __attribute__ ((mode (__libgcc_cmp_return__)));
#define _FP_NANSIGN_Q 0 #define _FP_NANSIGN_Q 0
#define _FP_KEEPNANFRACP 1 #define _FP_KEEPNANFRACP 1
#define _FP_QNANNEGATEDP 0
/* Someone please check this. */ /* Someone please check this. */
#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \ #define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \

View File

@ -27,6 +27,7 @@ typedef int __gcc_CMPtype __attribute__ ((mode (__libgcc_cmp_return__)));
#define _FP_NANSIGN_Q 0 #define _FP_NANSIGN_Q 0
#define _FP_KEEPNANFRACP 1 #define _FP_KEEPNANFRACP 1
#define _FP_QNANNEGATEDP 0
/* Someone please check this. */ /* Someone please check this. */
#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \ #define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \

View File

@ -32,6 +32,7 @@ typedef int __gcc_CMPtype __attribute__ ((mode (__libgcc_cmp_return__)));
#define _FP_NANSIGN_Q 1 #define _FP_NANSIGN_Q 1
#define _FP_KEEPNANFRACP 1 #define _FP_KEEPNANFRACP 1
#define _FP_QNANNEGATEDP 0
#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \ #define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \
do { \ do { \

View File

@ -32,6 +32,7 @@ typedef int __gcc_CMPtype __attribute__ ((mode (__libgcc_cmp_return__)));
#define _FP_NANSIGN_Q 1 #define _FP_NANSIGN_Q 1
#define _FP_KEEPNANFRACP 1 #define _FP_KEEPNANFRACP 1
#define _FP_QNANNEGATEDP 0
#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \ #define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \
do { \ do { \

View File

@ -27,6 +27,7 @@ typedef int __gcc_CMPtype __attribute__ ((mode (__libgcc_cmp_return__)));
#define _FP_NANSIGN_Q 1 #define _FP_NANSIGN_Q 1
#define _FP_KEEPNANFRACP 1 #define _FP_KEEPNANFRACP 1
#define _FP_QNANNEGATEDP 0
#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \ #define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \
do { \ do { \

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Return a + b Return a + b
Copyright (C) 1997,1999, 2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Return a + b Return a + b
Copyright (C) 1997,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Return a + b Return a + b
Copyright (C) 1997,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Return a / b Return a / b
Copyright (C) 1997,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Return a / b Return a / b
Copyright (C) 1997,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Return a / b Return a / b
Copyright (C) 1997,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,7 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Definitions for IEEE Double Precision Definitions for IEEE Double Precision
Copyright (C) 1997, 1998, 1999, 2006, 2007, 2008, 2009, 2012 Copyright (C) 1997-2013 Free Software Foundation, Inc.
Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com), Contributed by Richard Henderson (rth@cygnus.com),
Jakub Jelinek (jj@ultra.linux.cz), Jakub Jelinek (jj@ultra.linux.cz),

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Return 0 iff a == b, 1 otherwise Return 0 iff a == b, 1 otherwise
Copyright (C) 1997,1999,2006,2007 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Return 0 iff a == b, 1 otherwise Return 0 iff a == b, 1 otherwise
Copyright (C) 1997,1999,2006,2007 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Return 0 iff a == b, 1 otherwise Return 0 iff a == b, 1 otherwise
Copyright (C) 1997,1999,2006,2007 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Return a converted to IEEE quad Return a converted to IEEE quad
Copyright (C) 1997,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Definitions for IEEE Extended Precision. Definitions for IEEE Extended Precision.
Copyright (C) 1999,2006,2007,2012 Free Software Foundation, Inc. Copyright (C) 1999-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Jakub Jelinek (jj@ultra.linux.cz). Contributed by Jakub Jelinek (jj@ultra.linux.cz).
@ -203,7 +203,7 @@ union _FP_UNION_E
* anyway, we optimize it by doing most of the calculations * anyway, we optimize it by doing most of the calculations
* in two UWtype registers instead of four. * in two UWtype registers instead of four.
*/ */
#define _FP_SQRT_MEAT_E(R, S, T, X, q) \ #define _FP_SQRT_MEAT_E(R, S, T, X, q) \
do { \ do { \
q = (_FP_W_TYPE)1 << (_FP_W_TYPE_SIZE - 1); \ q = (_FP_W_TYPE)1 << (_FP_W_TYPE_SIZE - 1); \
@ -416,7 +416,7 @@ union _FP_UNION_E
R##_f0 |= _FP_WORK_STICKY; \ R##_f0 |= _FP_WORK_STICKY; \
} \ } \
} while (0) } while (0)
#define FP_CMP_E(r,X,Y,un) _FP_CMP(E,2,r,X,Y,un) #define FP_CMP_E(r,X,Y,un) _FP_CMP(E,2,r,X,Y,un)
#define FP_CMP_EQ_E(r,X,Y) _FP_CMP_EQ(E,2,r,X,Y) #define FP_CMP_EQ_E(r,X,Y) _FP_CMP_EQ(E,2,r,X,Y)
#define FP_CMP_UNORD_E(r,X,Y) _FP_CMP_UNORD(E,2,r,X,Y) #define FP_CMP_UNORD_E(r,X,Y) _FP_CMP_UNORD(E,2,r,X,Y)

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Return a converted to IEEE double Return a converted to IEEE double
Copyright (C) 1997,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Return a converted to IEEE quad Return a converted to IEEE quad
Copyright (C) 1997,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Convert a to 64bit signed integer Convert a to 64bit signed integer
Copyright (C) 1997,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Convert a to 32bit signed integer Convert a to 32bit signed integer
Copyright (C) 1997,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Convert a to 64bit signed integer Convert a to 64bit signed integer
Copyright (C) 1997,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Convert a to 32bit signed integer Convert a to 32bit signed integer
Copyright (C) 1997,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Convert a to 64bit signed integer Convert a to 64bit signed integer
Copyright (C) 1997,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Convert a to 32bit signed integer Convert a to 32bit signed integer
Copyright (C) 1997,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Convert a to 64bit unsigned integer Convert a to 64bit unsigned integer
Copyright (C) 1997,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Convert a to 32bit unsigned integer Convert a to 32bit unsigned integer
Copyright (C) 1997,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Convert a to 64bit unsigned integer Convert a to 64bit unsigned integer
Copyright (C) 1997,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Convert a to 32bit unsigned integer Convert a to 32bit unsigned integer
Copyright (C) 1997,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Convert a to 64bit unsigned integer Convert a to 64bit unsigned integer
Copyright (C) 1997,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Convert a to 32bit unsigned integer Convert a to 32bit unsigned integer
Copyright (C) 1997,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Convert a 64bit signed integer to IEEE double Convert a 64bit signed integer to IEEE double
Copyright (C) 1997,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Convert a 64bit signed integer to IEEE single Convert a 64bit signed integer to IEEE single
Copyright (C) 1997,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Convert a 64bit signed integer to IEEE quad Convert a 64bit signed integer to IEEE quad
Copyright (C) 1997,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Convert a 32bit signed integer to IEEE double Convert a 32bit signed integer to IEEE double
Copyright (C) 1997,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Convert a 32bit signed integer to IEEE single Convert a 32bit signed integer to IEEE single
Copyright (C) 1997,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Convert a 32bit signed integer to IEEE quad Convert a 32bit signed integer to IEEE quad
Copyright (C) 1997,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Convert a 64bit unsigned integer to IEEE double Convert a 64bit unsigned integer to IEEE double
Copyright (C) 1997, 1999, 2006, 2007 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Convert a 64bit unsigned integer to IEEE single Convert a 64bit unsigned integer to IEEE single
Copyright (C) 1997, 1999, 2006, 2007 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Convert a 64bit unsigned integer to IEEE quad Convert a 64bit unsigned integer to IEEE quad
Copyright (C) 1997,1999, 2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Convert a 32bit unsigned integer to IEEE double Convert a 32bit unsigned integer to IEEE double
Copyright (C) 1997, 1999, 2006, 2007 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Convert a 32bit unsigned integer to IEEE single Convert a 32bit unsigned integer to IEEE single
Copyright (C) 1997, 1999, 2006, 2007 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Convert a 32bit unsigned integer to IEEE quad Convert a 32bit unsigned integer to IEEE quad
Copyright (C) 1997,1999, 2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Return 0 iff a == b, 1 iff a > b, -2 iff a ? b, -1 iff a < b Return 0 iff a == b, 1 iff a > b, -2 iff a ? b, -1 iff a < b
Copyright (C) 1997,1999,2006,2007 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Return 0 iff a == b, 1 iff a > b, -2 iff a ? b, -1 iff a < b Return 0 iff a == b, 1 iff a > b, -2 iff a ? b, -1 iff a < b
Copyright (C) 1997,1999,2006,2007 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Return 0 iff a == b, 1 iff a > b, -2 iff a ? b, -1 iff a < b Return 0 iff a == b, 1 iff a > b, -2 iff a ? b, -1 iff a < b
Copyright (C) 1997,1999,2006,2007 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Return 0 iff a == b, 1 iff a > b, 2 iff a ? b, -1 iff a < b Return 0 iff a == b, 1 iff a > b, 2 iff a ? b, -1 iff a < b
Copyright (C) 1997,1999,2006,2007 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Return 0 iff a == b, 1 iff a > b, 2 iff a ? b, -1 iff a < b Return 0 iff a == b, 1 iff a > b, 2 iff a ? b, -1 iff a < b
Copyright (C) 1997,1999,2006,2007 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Return 0 iff a == b, 1 iff a > b, 2 iff a ? b, -1 iff a < b Return 0 iff a == b, 1 iff a > b, 2 iff a ? b, -1 iff a < b
Copyright (C) 1997,1999,2006,2007 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Return a * b Return a * b
Copyright (C) 1997,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Return a * b Return a * b
Copyright (C) 1997,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Return a * b Return a * b
Copyright (C) 1997,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Return -a Return -a
Copyright (C) 1997,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Return -a Return -a
Copyright (C) 1997,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Return -a Return -a
Copyright (C) 1997,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Basic one-word fraction declaration and manipulation. Basic one-word fraction declaration and manipulation.
Copyright (C) 1997,1998,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com), Contributed by Richard Henderson (rth@cygnus.com),
Jakub Jelinek (jj@ultra.linux.cz), Jakub Jelinek (jj@ultra.linux.cz),
@ -233,7 +233,7 @@ do { \
_nl = X##_f << (_FP_W_TYPE_SIZE - 1); \ _nl = X##_f << (_FP_W_TYPE_SIZE - 1); \
_nh = X##_f >> 1; \ _nh = X##_f >> 1; \
} \ } \
\ \
udiv_qrnnd(_q, _r, _nh, _nl, _y); \ udiv_qrnnd(_q, _r, _nh, _nl, _y); \
R##_f = _q | (_r != 0); \ R##_f = _q | (_r != 0); \
} while (0) } while (0)
@ -255,14 +255,14 @@ do { \
udiv_qrnnd(_q, _r, _nh, _nl, Y##_f); \ udiv_qrnnd(_q, _r, _nh, _nl, Y##_f); \
R##_f = _q | (_r != 0); \ R##_f = _q | (_r != 0); \
} while (0) } while (0)
/* /*
* Square root algorithms: * Square root algorithms:
* We have just one right now, maybe Newton approximation * We have just one right now, maybe Newton approximation
* should be added for those machines where division is fast. * should be added for those machines where division is fast.
*/ */
#define _FP_SQRT_MEAT_1(R, S, T, X, q) \ #define _FP_SQRT_MEAT_1(R, S, T, X, q) \
do { \ do { \
while (q != _FP_WORK_ROUND) \ while (q != _FP_WORK_ROUND) \
@ -286,7 +286,7 @@ do { \
} while (0) } while (0)
/* /*
* Assembly/disassembly for converting to/from integral types. * Assembly/disassembly for converting to/from integral types.
* No shifting or overflow handled here. * No shifting or overflow handled here.
*/ */

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Basic two-word fraction declaration and manipulation. Basic two-word fraction declaration and manipulation.
Copyright (C) 1997,1998,1999,2006,2007 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com), Contributed by Richard Henderson (rth@cygnus.com),
Jakub Jelinek (jj@ultra.linux.cz), Jakub Jelinek (jj@ultra.linux.cz),
@ -145,7 +145,7 @@
#define _FP_MAXFRAC_2 (~(_FP_WS_TYPE)0), (~(_FP_WS_TYPE)0) #define _FP_MAXFRAC_2 (~(_FP_WS_TYPE)0), (~(_FP_WS_TYPE)0)
/* /*
* Internals * Internals
*/ */
#define __FP_FRAC_SET_2(X,I1,I0) (X##_f0 = I0, X##_f1 = I1) #define __FP_FRAC_SET_2(X,I1,I0) (X##_f0 = I0, X##_f1 = I1)
@ -348,7 +348,7 @@
point multiplication. This is useful if floating point point multiplication. This is useful if floating point
multiplication has much bigger throughput than integer multiply. multiplication has much bigger throughput than integer multiply.
It is supposed to work for _FP_W_TYPE_SIZE 64 and wfracbits It is supposed to work for _FP_W_TYPE_SIZE 64 and wfracbits
between 106 and 120 only. between 106 and 120 only.
Caller guarantees that X and Y has (1LLL << (wfracbits - 1)) set. Caller guarantees that X and Y has (1LLL << (wfracbits - 1)) set.
SETFETZ is a macro which will disable all FPU exceptions and set rounding SETFETZ is a macro which will disable all FPU exceptions and set rounding
towards zero, RESETFE should optionally reset it back. */ towards zero, RESETFE should optionally reset it back. */
@ -433,10 +433,10 @@
R##_f1 = (_t240 << (128 - (wfracbits - 1))) \ R##_f1 = (_t240 << (128 - (wfracbits - 1))) \
| ((_u240 & 0xffffff) >> ((wfracbits - 1) - 104)); \ | ((_u240 & 0xffffff) >> ((wfracbits - 1) - 104)); \
R##_f0 = ((_u240 & 0xffffff) << (168 - (wfracbits - 1))) \ R##_f0 = ((_u240 & 0xffffff) << (168 - (wfracbits - 1))) \
| ((_v240 & 0xffffff) << (144 - (wfracbits - 1))) \ | ((_v240 & 0xffffff) << (144 - (wfracbits - 1))) \
| ((_w240 & 0xffffff) << (120 - (wfracbits - 1))) \ | ((_w240 & 0xffffff) << (120 - (wfracbits - 1))) \
| ((_x240 & 0xffffff) >> ((wfracbits - 1) - 96)) \ | ((_x240 & 0xffffff) >> ((wfracbits - 1) - 96)) \
| _y240; \ | _y240; \
resetfe; \ resetfe; \
} while (0) } while (0)
@ -544,7 +544,7 @@
* We have just one right now, maybe Newton approximation * We have just one right now, maybe Newton approximation
* should be added for those machines where division is fast. * should be added for those machines where division is fast.
*/ */
#define _FP_SQRT_MEAT_2(R, S, T, X, q) \ #define _FP_SQRT_MEAT_2(R, S, T, X, q) \
do { \ do { \
while (q) \ while (q) \
@ -586,7 +586,7 @@
/* /*
* Assembly/disassembly for converting to/from integral types. * Assembly/disassembly for converting to/from integral types.
* No shifting or overflow handled here. * No shifting or overflow handled here.
*/ */

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Basic four-word fraction declaration and manipulation. Basic four-word fraction declaration and manipulation.
Copyright (C) 1997,1998,1999,2006,2007 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com), Contributed by Richard Henderson (rth@cygnus.com),
Jakub Jelinek (jj@ultra.linux.cz), Jakub Jelinek (jj@ultra.linux.cz),
@ -81,7 +81,7 @@
} while (0) } while (0)
/* Right shift with sticky-lsb. /* Right shift with sticky-lsb.
* What this actually means is that we do a standard right-shift, * What this actually means is that we do a standard right-shift,
* but that if any of the bits that fall off the right hand side * but that if any of the bits that fall off the right hand side
* were one then we always set the LSbit. * were one then we always set the LSbit.
@ -435,7 +435,7 @@
* We have just one right now, maybe Newton approximation * We have just one right now, maybe Newton approximation
* should be added for those machines where division is fast. * should be added for those machines where division is fast.
*/ */
#define _FP_SQRT_MEAT_4(R, S, T, X, q) \ #define _FP_SQRT_MEAT_4(R, S, T, X, q) \
do { \ do { \
while (q) \ while (q) \
@ -481,7 +481,7 @@
S##_f[2] += (T##_f[1] > S##_f[1]); \ S##_f[2] += (T##_f[1] > S##_f[1]); \
S##_f[3] += (T##_f[2] > S##_f[2]); \ S##_f[3] += (T##_f[2] > S##_f[2]); \
__FP_FRAC_DEC_3(X##_f[3], X##_f[2], X##_f[1], \ __FP_FRAC_DEC_3(X##_f[3], X##_f[2], X##_f[1], \
T##_f[3], T##_f[2], T##_f[1]); \ T##_f[3], T##_f[2], T##_f[1]); \
R##_f[1] += q; \ R##_f[1] += q; \
} \ } \
_FP_FRAC_SLL_4(X, 1); \ _FP_FRAC_SLL_4(X, 1); \
@ -516,7 +516,7 @@
/* /*
* Internals * Internals
*/ */
#define __FP_FRAC_SET_4(X,I3,I2,I1,I0) \ #define __FP_FRAC_SET_4(X,I3,I2,I1,I0) \
@ -618,9 +618,9 @@
/* Convert FP values between word sizes. This appears to be more /* Convert FP values between word sizes. This appears to be more
* complicated than I'd have expected it to be, so these might be * complicated than I'd have expected it to be, so these might be
* wrong... These macros are in any case somewhat bogus because they * wrong... These macros are in any case somewhat bogus because they
* use information about what various FRAC_n variables look like * use information about what various FRAC_n variables look like
* internally [eg, that 2 word vars are X_f0 and x_f1]. But so do * internally [eg, that 2 word vars are X_f0 and x_f1]. But so do
* the ones in op-2.h and op-1.h. * the ones in op-2.h and op-1.h.
*/ */
#define _FP_FRAC_COPY_1_4(D, S) (D##_f = S##_f[0]) #define _FP_FRAC_COPY_1_4(D, S) (D##_f = S##_f[0])
@ -630,7 +630,7 @@ do { \
D##_f1 = S##_f[1]; \ D##_f1 = S##_f[1]; \
} while (0) } while (0)
/* Assembly/disassembly for converting to/from integral types. /* Assembly/disassembly for converting to/from integral types.
* No shifting or overflow handled here. * No shifting or overflow handled here.
*/ */
/* Put the FP value X into r, which is an integer of size rsize. */ /* Put the FP value X into r, which is an integer of size rsize. */

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Basic eight-word fraction declaration and manipulation. Basic eight-word fraction declaration and manipulation.
Copyright (C) 1997,1998,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com), Contributed by Richard Henderson (rth@cygnus.com),
Jakub Jelinek (jj@ultra.linux.cz) and Jakub Jelinek (jj@ultra.linux.cz) and
@ -77,7 +77,7 @@
} while (0) } while (0)
/* Right shift with sticky-lsb. /* Right shift with sticky-lsb.
* What this actually means is that we do a standard right-shift, * What this actually means is that we do a standard right-shift,
* but that if any of the bits that fall off the right hand side * but that if any of the bits that fall off the right hand side
* were one then we always set the LSbit. * were one then we always set the LSbit.

View File

@ -1,5 +1,5 @@
/* Software floating-point emulation. Common operations. /* Software floating-point emulation. Common operations.
Copyright (C) 1997,1998,1999,2006,2007,2012 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com), Contributed by Richard Henderson (rth@cygnus.com),
Jakub Jelinek (jj@ultra.linux.cz), Jakub Jelinek (jj@ultra.linux.cz),
@ -29,10 +29,22 @@
License along with the GNU C Library; if not, see License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */ <http://www.gnu.org/licenses/>. */
#define _FP_DECL(wc, X) \ #define _FP_DECL(wc, X) \
_FP_I_TYPE X##_c __attribute__((unused)), X##_s, X##_e; \ _FP_I_TYPE X##_c __attribute__((unused)); \
_FP_I_TYPE X##_s __attribute__((unused)); \
_FP_I_TYPE X##_e; \
_FP_FRAC_DECL_##wc(X) _FP_FRAC_DECL_##wc(X)
/* Test whether the qNaN bit denotes a signaling NaN. */
#define _FP_FRAC_SNANP(fs, X) \
((_FP_QNANNEGATEDP) \
? (_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs) \
: !(_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs))
#define _FP_FRAC_SNANP_SEMIRAW(fs, X) \
((_FP_QNANNEGATEDP) \
? (_FP_FRAC_HIGH_##fs(X) & _FP_QNANBIT_SH_##fs) \
: !(_FP_FRAC_HIGH_##fs(X) & _FP_QNANBIT_SH_##fs))
/* /*
* Finish truely unpacking a native fp value by classifying the kind * Finish truely unpacking a native fp value by classifying the kind
* of fp value and normalizing both the exponent and the fraction. * of fp value and normalizing both the exponent and the fraction.
@ -72,7 +84,7 @@ do { \
{ \ { \
X##_c = FP_CLS_NAN; \ X##_c = FP_CLS_NAN; \
/* Check for signaling NaN */ \ /* Check for signaling NaN */ \
if (!(_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs)) \ if (_FP_FRAC_SNANP(fs, X)) \
FP_SET_EXCEPTION(FP_EX_INVALID); \ FP_SET_EXCEPTION(FP_EX_INVALID); \
} \ } \
break; \ break; \
@ -110,7 +122,7 @@ do { \
do { \ do { \
if (X##_e == _FP_EXPMAX_##fs \ if (X##_e == _FP_EXPMAX_##fs \
&& !_FP_FRAC_ZEROP_##wc(X) \ && !_FP_FRAC_ZEROP_##wc(X) \
&& !(_FP_FRAC_HIGH_##fs(X) & _FP_QNANBIT_SH_##fs)) \ && _FP_FRAC_SNANP_SEMIRAW(fs, X)) \
FP_SET_EXCEPTION(FP_EX_INVALID); \ FP_SET_EXCEPTION(FP_EX_INVALID); \
} while (0) } while (0)
@ -125,6 +137,39 @@ do { \
_FP_FRAC_SLL_##wc(R, _FP_WORKBITS); \ _FP_FRAC_SLL_##wc(R, _FP_WORKBITS); \
} while (0) } while (0)
/* Make the fractional part a quiet NaN, preserving the payload
if possible, otherwise make it the canonical quiet NaN and set
the sign bit accordingly. */
#define _FP_SETQNAN(fs, wc, X) \
do { \
if (_FP_QNANNEGATEDP) \
{ \
_FP_FRAC_HIGH_RAW_##fs(X) &= _FP_QNANBIT_##fs - 1; \
if (_FP_FRAC_ZEROP_##wc(X)) \
{ \
X##_s = _FP_NANSIGN_##fs; \
_FP_FRAC_SET_##wc(X, _FP_NANFRAC_##fs); \
} \
} \
else \
_FP_FRAC_HIGH_RAW_##fs(X) |= _FP_QNANBIT_##fs; \
} while (0)
#define _FP_SETQNAN_SEMIRAW(fs, wc, X) \
do { \
if (_FP_QNANNEGATEDP) \
{ \
_FP_FRAC_HIGH_##fs(X) &= _FP_QNANBIT_SH_##fs - 1; \
if (_FP_FRAC_ZEROP_##wc(X)) \
{ \
X##_s = _FP_NANSIGN_##fs; \
_FP_FRAC_SET_##wc(X, _FP_NANFRAC_##fs); \
_FP_FRAC_SLL_##wc(X, _FP_WORKBITS); \
} \
} \
else \
_FP_FRAC_HIGH_##fs(X) |= _FP_QNANBIT_SH_##fs; \
} while (0)
/* Test whether a biased exponent is normal (not zero or maximum). */ /* Test whether a biased exponent is normal (not zero or maximum). */
#define _FP_EXP_NORMAL(fs, wc, X) (((X##_e + 1) & _FP_EXPMAX_##fs) > 1) #define _FP_EXP_NORMAL(fs, wc, X) (((X##_e + 1) & _FP_EXPMAX_##fs) > 1)
@ -157,7 +202,7 @@ do { \
X##_s = _FP_NANSIGN_##fs; \ X##_s = _FP_NANSIGN_##fs; \
} \ } \
else \ else \
_FP_FRAC_HIGH_RAW_##fs(X) |= _FP_QNANBIT_##fs; \ _FP_SETQNAN(fs, wc, X); \
} \ } \
} while (0) } while (0)
@ -271,7 +316,7 @@ do { \
X##_s = _FP_NANSIGN_##fs; \ X##_s = _FP_NANSIGN_##fs; \
} \ } \
else \ else \
_FP_FRAC_HIGH_RAW_##fs(X) |= _FP_QNANBIT_##fs; \ _FP_SETQNAN(fs, wc, X); \
break; \ break; \
} \ } \
} while (0) } while (0)
@ -285,7 +330,7 @@ do { \
if (X##_e == _FP_EXPMAX_##fs) \ if (X##_e == _FP_EXPMAX_##fs) \
{ \ { \
if (!_FP_FRAC_ZEROP_##wc(X) \ if (!_FP_FRAC_ZEROP_##wc(X) \
&& !(_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs)) \ && _FP_FRAC_SNANP(fs, X)) \
__ret = 1; \ __ret = 1; \
} \ } \
__ret; \ __ret; \
@ -746,11 +791,11 @@ do { \
#define _FP_MUL(fs, wc, R, X, Y) \ #define _FP_MUL(fs, wc, R, X, Y) \
do { \ do { \
R##_s = X##_s ^ Y##_s; \ R##_s = X##_s ^ Y##_s; \
R##_e = X##_e + Y##_e + 1; \
switch (_FP_CLS_COMBINE(X##_c, Y##_c)) \ switch (_FP_CLS_COMBINE(X##_c, Y##_c)) \
{ \ { \
case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_NORMAL): \ case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_NORMAL): \
R##_c = FP_CLS_NORMAL; \ R##_c = FP_CLS_NORMAL; \
R##_e = X##_e + Y##_e + 1; \
\ \
_FP_MUL_MEAT_##fs(R,X,Y); \ _FP_MUL_MEAT_##fs(R,X,Y); \
\ \
@ -809,11 +854,11 @@ do { \
#define _FP_DIV(fs, wc, R, X, Y) \ #define _FP_DIV(fs, wc, R, X, Y) \
do { \ do { \
R##_s = X##_s ^ Y##_s; \ R##_s = X##_s ^ Y##_s; \
R##_e = X##_e - Y##_e; \
switch (_FP_CLS_COMBINE(X##_c, Y##_c)) \ switch (_FP_CLS_COMBINE(X##_c, Y##_c)) \
{ \ { \
case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_NORMAL): \ case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_NORMAL): \
R##_c = FP_CLS_NORMAL; \ R##_c = FP_CLS_NORMAL; \
R##_e = X##_e - Y##_e; \
\ \
_FP_DIV_MEAT_##fs(R,X,Y); \ _FP_DIV_MEAT_##fs(R,X,Y); \
break; \ break; \
@ -947,37 +992,37 @@ do { \
case FP_CLS_NAN: \ case FP_CLS_NAN: \
_FP_FRAC_COPY_##wc(R, X); \ _FP_FRAC_COPY_##wc(R, X); \
R##_s = X##_s; \ R##_s = X##_s; \
R##_c = FP_CLS_NAN; \ R##_c = FP_CLS_NAN; \
break; \ break; \
case FP_CLS_INF: \ case FP_CLS_INF: \
if (X##_s) \ if (X##_s) \
{ \ { \
R##_s = _FP_NANSIGN_##fs; \ R##_s = _FP_NANSIGN_##fs; \
R##_c = FP_CLS_NAN; /* NAN */ \ R##_c = FP_CLS_NAN; /* NAN */ \
_FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \ _FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
FP_SET_EXCEPTION(FP_EX_INVALID); \ FP_SET_EXCEPTION(FP_EX_INVALID); \
} \ } \
else \ else \
{ \ { \
R##_s = 0; \ R##_s = 0; \
R##_c = FP_CLS_INF; /* sqrt(+inf) = +inf */ \ R##_c = FP_CLS_INF; /* sqrt(+inf) = +inf */ \
} \ } \
break; \ break; \
case FP_CLS_ZERO: \ case FP_CLS_ZERO: \
R##_s = X##_s; \ R##_s = X##_s; \
R##_c = FP_CLS_ZERO; /* sqrt(+-0) = +-0 */ \ R##_c = FP_CLS_ZERO; /* sqrt(+-0) = +-0 */ \
break; \ break; \
case FP_CLS_NORMAL: \ case FP_CLS_NORMAL: \
R##_s = 0; \ R##_s = 0; \
if (X##_s) \ if (X##_s) \
{ \ { \
R##_c = FP_CLS_NAN; /* sNAN */ \ R##_c = FP_CLS_NAN; /* NAN */ \
R##_s = _FP_NANSIGN_##fs; \ R##_s = _FP_NANSIGN_##fs; \
_FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \ _FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
FP_SET_EXCEPTION(FP_EX_INVALID); \ FP_SET_EXCEPTION(FP_EX_INVALID); \
break; \ break; \
} \ } \
R##_c = FP_CLS_NORMAL; \ R##_c = FP_CLS_NORMAL; \
if (X##_e & 1) \ if (X##_e & 1) \
_FP_FRAC_SLL_##wc(X, 1); \ _FP_FRAC_SLL_##wc(X, 1); \
R##_e = X##_e >> 1; \ R##_e = X##_e >> 1; \
@ -1118,8 +1163,9 @@ do { \
{ \ { \
/* Exactly representable; shift left. */ \ /* Exactly representable; shift left. */ \
_FP_FRAC_DISASSEMBLE_##wc(X, ur_, rsize); \ _FP_FRAC_DISASSEMBLE_##wc(X, ur_, rsize); \
_FP_FRAC_SLL_##wc(X, (_FP_EXPBIAS_##fs \ if (_FP_EXPBIAS_##fs + _FP_FRACBITS_##fs - 1 - X##_e > 0) \
+ _FP_FRACBITS_##fs - 1 - X##_e)); \ _FP_FRAC_SLL_##wc(X, (_FP_EXPBIAS_##fs \
+ _FP_FRACBITS_##fs - 1 - X##_e)); \
} \ } \
else \ else \
{ \ { \
@ -1197,7 +1243,7 @@ do { \
D##_e = _FP_EXPMAX_##dfs; \ D##_e = _FP_EXPMAX_##dfs; \
if (!_FP_FRAC_ZEROP_##swc(S)) \ if (!_FP_FRAC_ZEROP_##swc(S)) \
{ \ { \
if (!(_FP_FRAC_HIGH_RAW_##sfs(S) & _FP_QNANBIT_##sfs)) \ if (_FP_FRAC_SNANP(sfs, S)) \
FP_SET_EXCEPTION(FP_EX_INVALID); \ FP_SET_EXCEPTION(FP_EX_INVALID); \
_FP_FRAC_SLL_##dwc(D, (_FP_FRACBITS_##dfs \ _FP_FRAC_SLL_##dwc(D, (_FP_FRACBITS_##dfs \
- _FP_FRACBITS_##sfs)); \ - _FP_FRACBITS_##sfs)); \
@ -1284,7 +1330,7 @@ do { \
/* Semi-raw NaN must have all workbits cleared. */ \ /* Semi-raw NaN must have all workbits cleared. */ \
_FP_FRAC_LOW_##dwc(D) \ _FP_FRAC_LOW_##dwc(D) \
&= ~(_FP_W_TYPE) ((1 << _FP_WORKBITS) - 1); \ &= ~(_FP_W_TYPE) ((1 << _FP_WORKBITS) - 1); \
_FP_FRAC_HIGH_##dfs(D) |= _FP_QNANBIT_SH_##dfs; \ _FP_SETQNAN_SEMIRAW(dfs, dwc, D); \
} \ } \
} \ } \
} \ } \

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Definitions for IEEE Quad Precision. Definitions for IEEE Quad Precision.
Copyright (C) 1997,1998,1999,2006,2007,2012 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com), Contributed by Richard Henderson (rth@cygnus.com),
Jakub Jelinek (jj@ultra.linux.cz), Jakub Jelinek (jj@ultra.linux.cz),

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Definitions for IEEE Single Precision. Definitions for IEEE Single Precision.
Copyright (C) 1997,1998,1999,2006,2012 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com), Contributed by Richard Henderson (rth@cygnus.com),
Jakub Jelinek (jj@ultra.linux.cz), Jakub Jelinek (jj@ultra.linux.cz),

View File

@ -1,6 +1,5 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Copyright (C) 1997,1998,1999,2000,2002,2003,2005,2006,2007,2012 Copyright (C) 1997-2013 Free Software Foundation, Inc.
Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com), Contributed by Richard Henderson (rth@cygnus.com),
Jakub Jelinek (jj@ultra.linux.cz), Jakub Jelinek (jj@ultra.linux.cz),

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Return a - b Return a - b
Copyright (C) 1997,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Return a - b Return a - b
Copyright (C) 1997,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Return a - b Return a - b
Copyright (C) 1997,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Truncate IEEE double into IEEE single Truncate IEEE double into IEEE single
Copyright (C) 1997,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Truncate IEEE quad into IEEE double Truncate IEEE quad into IEEE double
Copyright (C) 1997,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Truncate IEEE quad into IEEE single Truncate IEEE quad into IEEE single
Copyright (C) 1997,1999,2006 Free Software Foundation, Inc. Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz). Jakub Jelinek (jj@ultra.linux.cz).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Return 1 iff a or b is a NaN, 0 otherwise. Return 1 iff a or b is a NaN, 0 otherwise.
Copyright (C) 2006,2007 Free Software Foundation, Inc. Copyright (C) 2006-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Joseph Myers (joseph@codesourcery.com). Contributed by Joseph Myers (joseph@codesourcery.com).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Return 1 iff a or b is a NaN, 0 otherwise. Return 1 iff a or b is a NaN, 0 otherwise.
Copyright (C) 2006,2007 Free Software Foundation, Inc. Copyright (C) 2006-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Joseph Myers (joseph@codesourcery.com). Contributed by Joseph Myers (joseph@codesourcery.com).

View File

@ -1,6 +1,6 @@
/* Software floating-point emulation. /* Software floating-point emulation.
Return 1 iff a or b is a NaN, 0 otherwise. Return 1 iff a or b is a NaN, 0 otherwise.
Copyright (C) 2006,2007 Free Software Foundation, Inc. Copyright (C) 2006-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Joseph Myers (joseph@codesourcery.com). Contributed by Joseph Myers (joseph@codesourcery.com).