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