_fpmath.h (110566) | _fpmath.h (111555) |
---|---|
1/*- 2 * Copyright (c) 2003 Mike Barcroft <mike@FreeBSD.org> 3 * Copyright (c) 2002, 2003 David Schultz <dschultz@uclink.Berkeley.EDU> 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 10 unchanged lines hidden (view full) --- 19 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25 * SUCH DAMAGE. 26 * | 1/*- 2 * Copyright (c) 2003 Mike Barcroft <mike@FreeBSD.org> 3 * Copyright (c) 2002, 2003 David Schultz <dschultz@uclink.Berkeley.EDU> 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 10 unchanged lines hidden (view full) --- 19 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25 * SUCH DAMAGE. 26 * |
27 * $FreeBSD: head/lib/libc/ia64/_fpmath.h 110566 2003-02-08 20:37:55Z mike $ | 27 * $FreeBSD: head/lib/libc/ia64/_fpmath.h 111555 2003-02-26 16:04:34Z mike $ |
28 */ 29 | 28 */ 29 |
30#include <sys/endian.h> 31 |
|
30union IEEEl2bits { 31 long double e; 32 struct { | 32union IEEEl2bits { 33 long double e; 34 struct { |
33 unsigned long manl :64; 34 unsigned long manh :48; | 35#if _BYTE_ORDER == _LITTLE_ENDIAN 36 unsigned int manl :32; 37 unsigned int manh :32; |
35 unsigned int exp :15; 36 unsigned int sign :1; | 38 unsigned int exp :15; 39 unsigned int sign :1; |
40 unsigned long junk :48; 41#else /* _BIG_ENDIAN */ 42 unsigned long junk :48; 43 unsigned int sign :1; 44 unsigned int exp :15; 45 unsigned int manh :32; 46 unsigned int manl :32; 47#endif |
|
37 } bits; 38}; 39 | 48 } bits; 49}; 50 |
40#define mask_nbit_l(u) ((u).bits.manl &= 0x7fffffffffffffff) | 51#if _BYTE_ORDER == _LITTLE_ENDIAN 52#define mask_nbit_l(u) ((u).bits.manh &= 0x7fffffff) 53#else /* _BIG_ENDIAN */ 54#define mask_nbit_l(u) ((u).bits.manh &= 0xffffff7f) 55#endif |