 b6cbf7203b
			
		
	
	
		b6cbf7203b
		
	
	
	
	
		
			
			This patch imports the unmodified current version of NetBSD libc. The NetBSD includes are in /nbsd_include, while the libc code itself is split between lib/nbsd_libc and common/lib/libc.
		
			
				
	
	
		
			40 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*	$NetBSD: infinityl_ieee754.c,v 1.1 2011/01/17 23:53:03 matt Exp $	*/
 | |
| 
 | |
| /*
 | |
|  * IEEE-compatible infinityl.c for 64-bit or 128-bit long double format.
 | |
|  * This is public domain.
 | |
|  */
 | |
| 
 | |
| #include <sys/cdefs.h>
 | |
| #if defined(LIBC_SCCS) && !defined(lint)
 | |
| __RCSID("$NetBSD: infinityl_ieee754.c,v 1.1 2011/01/17 23:53:03 matt Exp $");
 | |
| #endif /* LIBC_SCCS and not lint */
 | |
| 
 | |
| #include <math.h>
 | |
| #include <machine/endian.h>
 | |
| #include <machine/ieee.h>
 | |
| 
 | |
| #ifdef __HAVE_LONG_DOUBLE
 | |
| #define	LDBL_EXPBITS		EXT_EXPBITS
 | |
| #define	LDBL_EXP_INFNAN		EXT_EXP_INFNAN
 | |
| #else
 | |
| #define	LDBL_EXPBITS		DBL_EXPBITS
 | |
| #define	LDBL_EXP_INFNAN		DBL_EXP_INFNAN
 | |
| #endif
 | |
| 
 | |
| #define	EXP_INFNAN		(LDBL_EXP_INFNAN << (31 - LDBL_EXPBITS))
 | |
| 
 | |
| const union __long_double_u __infinityl = { {
 | |
| #if BYTE_ORDER == BIG_ENDIAN
 | |
| 	[0] = (EXP_INFNAN >> 24) & 0x7f,
 | |
| 	[1] = (EXP_INFNAN >> 16) & 0xff,
 | |
| 	[2] = (EXP_INFNAN >>  8) & 0xff,
 | |
| 	[3] = (EXP_INFNAN >>  0) & 0xff,
 | |
| #else
 | |
| 	[sizeof(long double)-4] = (EXP_INFNAN >>  0) & 0xff,
 | |
| 	[sizeof(long double)-3] = (EXP_INFNAN >>  8) & 0xff,
 | |
| 	[sizeof(long double)-2] = (EXP_INFNAN >> 16) & 0xff,
 | |
| 	[sizeof(long double)-1] = (EXP_INFNAN >> 24) & 0x7f,
 | |
| #endif
 | |
| } };
 |