+++ /dev/null
-/**\r
-University of Illinois/NCSA\r
-Open Source License\r
-\r
-Copyright (c) 2009-2014 by the contributors listed in CREDITS.TXT\r
-\r
-All rights reserved.\r
-\r
-Developed by:\r
-\r
- LLVM Team\r
-\r
- University of Illinois at Urbana-Champaign\r
-\r
- http://llvm.org\r
-\r
-Permission is hereby granted, free of charge, to any person obtaining a copy of\r
-this software and associated documentation files (the "Software"), to deal with\r
-the Software without restriction, including without limitation the rights to\r
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\r
-of the Software, and to permit persons to whom the Software is furnished to do\r
-so, subject to the following conditions:\r
-\r
- * Redistributions of source code must retain the above copyright notice,\r
- this list of conditions and the following disclaimers.\r
-\r
- * Redistributions in binary form must reproduce the above copyright notice,\r
- this list of conditions and the following disclaimers in the\r
- documentation and/or other materials provided with the distribution.\r
-\r
- * Neither the names of the LLVM Team, University of Illinois at\r
- Urbana-Champaign, nor the names of its contributors may be used to\r
- endorse or promote products derived from this Software without specific\r
- prior written permission.\r
-\r
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\r
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
-CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE\r
-SOFTWARE.\r
-**/\r
-\r
-#ifndef INT_TYPES_H\r
-#define INT_TYPES_H\r
-\r
-#include "int_endianness.h"\r
-\r
-typedef int si_int;\r
-typedef unsigned su_int;\r
-\r
-typedef long long di_int;\r
-typedef unsigned long long du_int;\r
-\r
-typedef union\r
-{\r
- di_int all;\r
- struct\r
- {\r
-#if _YUGA_LITTLE_ENDIAN\r
- su_int low;\r
- si_int high;\r
-#else\r
- si_int high;\r
- su_int low;\r
-#endif /* _YUGA_LITTLE_ENDIAN */\r
- }s;\r
-} dwords;\r
-\r
-typedef union\r
-{\r
- du_int all;\r
- struct\r
- {\r
-#if _YUGA_LITTLE_ENDIAN\r
- su_int low;\r
- su_int high;\r
-#else\r
- su_int high;\r
- su_int low;\r
-#endif /* _YUGA_LITTLE_ENDIAN */\r
- }s;\r
-} udwords;\r
-\r
-#if __LP64__\r
-#define CRT_HAS_128BIT\r
-#endif\r
-\r
-#ifdef CRT_HAS_128BIT\r
-typedef int ti_int __attribute__ ((mode (TI)));\r
-typedef unsigned tu_int __attribute__ ((mode (TI)));\r
-\r
-typedef union\r
-{\r
- ti_int all;\r
- struct\r
- {\r
-#if _YUGA_LITTLE_ENDIAN\r
- du_int low;\r
- di_int high;\r
-#else\r
- di_int high;\r
- du_int low;\r
-#endif /* _YUGA_LITTLE_ENDIAN */\r
- }s;\r
-} twords;\r
-\r
-typedef union\r
-{\r
- tu_int all;\r
- struct\r
- {\r
-#if _YUGA_LITTLE_ENDIAN\r
- du_int low;\r
- du_int high;\r
-#else\r
- du_int high;\r
- du_int low;\r
-#endif /* _YUGA_LITTLE_ENDIAN */\r
- }s;\r
-} utwords;\r
-\r
-static inline ti_int make_ti(di_int h, di_int l) {\r
- twords r;\r
- r.s.high = h;\r
- r.s.low = l;\r
- return r.all;\r
-}\r
-\r
-static inline tu_int make_tu(du_int h, du_int l) {\r
- utwords r;\r
- r.s.high = h;\r
- r.s.low = l;\r
- return r.all;\r
-}\r
-\r
-#endif /* CRT_HAS_128BIT */\r
-\r
-typedef union\r
-{\r
- su_int u;\r
- float f;\r
-} float_bits;\r
-\r
-typedef union\r
-{\r
- udwords u;\r
- double f;\r
-} double_bits;\r
-\r
-typedef struct\r
-{\r
-#if _YUGA_LITTLE_ENDIAN\r
- udwords low;\r
- udwords high;\r
-#else\r
- udwords high;\r
- udwords low;\r
-#endif /* _YUGA_LITTLE_ENDIAN */\r
-} uqwords;\r
-\r
-typedef union\r
-{\r
- uqwords u;\r
- long double f;\r
-} long_double_bits;\r
-\r
-#endif /* INT_TYPES_H */\r
-\r