1d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI/*
2d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI * Copyright (C) 2009 Android Open Source Project, All rights reserved.
3d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI *   Derived from "bionic/libm/arm/_fpmath.h"
4d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI *   Copyright (c) 2002, 2003 David Schultz <das@FreeBSD.ORG>
5d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI *
6d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI * Redistribution and use in source and binary forms, with or without
7d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI * modification, are permitted provided that the following conditions
8d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI * are met:
9d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI *  * Redistributions of source code must retain the above copyright
10d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI *    notice, this list of conditions and the following disclaimer.
11d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI *  * Redistributions in binary form must reproduce the above copyright
12d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI *    notice, this list of conditions and the following disclaimer in
13d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI *    the documentation and/or other materials provided with the
14d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI *    distribution.
15d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI *
16d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
19d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
20d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
21d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
22d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
23d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
24d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
26d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI * SUCH DAMAGE.
28d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI */
29d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI
30d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI/*
31d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI * Assumes that 'long double' on SH-linux is just an alias for 'double'.
32d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI */
33d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKIunion IEEEl2bits {
34d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI	long double	e;
35d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI	struct {
36d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI#if  __BYTE_ORDER == __LITTLE_ENDIAN
37d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI		unsigned int	manl	:32;
38d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI		unsigned int	manh	:20;
39d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI		unsigned int	exp	:11;
40d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI		unsigned int	sign	:1;
41d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI#elif __BYTE_ORDER == __BIG_ENDIAN
42d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI		unsigned int	sign	:1;
43d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI		unsigned int	exp	:11;
44d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI		unsigned int	manh	:20;
45d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI		unsigned int	manl	:32;
46d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI#endif
47d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI	} bits;
48d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI};
49d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI
50d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI/*
51d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI * LDBL_NBIT is a mask indicating the position of the integer
52d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI * bit in a long double.  But SH4 does not support it.
53d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI */
54d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI#define	LDBL_NBIT	0
55d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI#define	mask_nbit_l(u)	((void)0)
56d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI
57d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI#define	LDBL_MANH_SIZE	20
58d87945b4e706dbbacd71f6a3fd2e96162e970094Shin-ichiro KAWASAKI#define	LDBL_MANL_SIZE	32
59