URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
Compare Revisions
- This comparison shows the changes necessary to convert path
/
- from Rev 712 to Rev 713
- ↔ Reverse comparison
Rev 712 → Rev 713
/openrisc/trunk/gnu-dev/or1k-gcc/gcc/ginclude/stddef.h
0,0 → 1,433
/* Copyright (C) 1989, 1997, 1998, 1999, 2000, 2002, 2004, 2009, 2011 |
Free Software Foundation, Inc. |
|
This file is part of GCC. |
|
GCC is free software; you can redistribute it and/or modify |
it under the terms of the GNU General Public License as published by |
the Free Software Foundation; either version 3, or (at your option) |
any later version. |
|
GCC is distributed in the hope that it will be useful, |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
GNU General Public License for more details. |
|
Under Section 7 of GPL version 3, you are granted additional |
permissions described in the GCC Runtime Library Exception, version |
3.1, as published by the Free Software Foundation. |
|
You should have received a copy of the GNU General Public License and |
a copy of the GCC Runtime Library Exception along with this program; |
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see |
<http://www.gnu.org/licenses/>. */ |
|
/* |
* ISO C Standard: 7.17 Common definitions <stddef.h> |
*/ |
#if (!defined(_STDDEF_H) && !defined(_STDDEF_H_) && !defined(_ANSI_STDDEF_H) \ |
&& !defined(__STDDEF_H__)) \ |
|| defined(__need_wchar_t) || defined(__need_size_t) \ |
|| defined(__need_ptrdiff_t) || defined(__need_NULL) \ |
|| defined(__need_wint_t) |
|
/* Any one of these symbols __need_* means that GNU libc |
wants us just to define one data type. So don't define |
the symbols that indicate this file's entire job has been done. */ |
#if (!defined(__need_wchar_t) && !defined(__need_size_t) \ |
&& !defined(__need_ptrdiff_t) && !defined(__need_NULL) \ |
&& !defined(__need_wint_t)) |
#define _STDDEF_H |
#define _STDDEF_H_ |
/* snaroff@next.com says the NeXT needs this. */ |
#define _ANSI_STDDEF_H |
/* Irix 5.1 needs this. */ |
#define __STDDEF_H__ |
#endif |
|
#ifndef __sys_stdtypes_h |
/* This avoids lossage on SunOS but only if stdtypes.h comes first. |
There's no way to win with the other order! Sun lossage. */ |
|
/* On 4.3bsd-net2, make sure ansi.h is included, so we have |
one less case to deal with in the following. */ |
#if defined (__BSD_NET2__) || defined (____386BSD____) || (defined (__FreeBSD__) && (__FreeBSD__ < 5)) || defined(__NetBSD__) |
#include <machine/ansi.h> |
#endif |
/* On FreeBSD 5, machine/ansi.h does not exist anymore... */ |
#if defined (__FreeBSD__) && (__FreeBSD__ >= 5) |
#include <sys/_types.h> |
#endif |
|
/* In 4.3bsd-net2, machine/ansi.h defines these symbols, which are |
defined if the corresponding type is *not* defined. |
FreeBSD-2.1 defines _MACHINE_ANSI_H_ instead of _ANSI_H_. |
NetBSD defines _I386_ANSI_H_ and _X86_64_ANSI_H_ instead of _ANSI_H_ */ |
#if defined(_ANSI_H_) || defined(_MACHINE_ANSI_H_) || defined(_X86_64_ANSI_H_) || defined(_I386_ANSI_H_) |
#if !defined(_SIZE_T_) && !defined(_BSD_SIZE_T_) |
#define _SIZE_T |
#endif |
#if !defined(_PTRDIFF_T_) && !defined(_BSD_PTRDIFF_T_) |
#define _PTRDIFF_T |
#endif |
/* On BSD/386 1.1, at least, machine/ansi.h defines _BSD_WCHAR_T_ |
instead of _WCHAR_T_. */ |
#if !defined(_WCHAR_T_) && !defined(_BSD_WCHAR_T_) |
#ifndef _BSD_WCHAR_T_ |
#define _WCHAR_T |
#endif |
#endif |
/* Undef _FOO_T_ if we are supposed to define foo_t. */ |
#if defined (__need_ptrdiff_t) || defined (_STDDEF_H_) |
#undef _PTRDIFF_T_ |
#undef _BSD_PTRDIFF_T_ |
#endif |
#if defined (__need_size_t) || defined (_STDDEF_H_) |
#undef _SIZE_T_ |
#undef _BSD_SIZE_T_ |
#endif |
#if defined (__need_wchar_t) || defined (_STDDEF_H_) |
#undef _WCHAR_T_ |
#undef _BSD_WCHAR_T_ |
#endif |
#endif /* defined(_ANSI_H_) || defined(_MACHINE_ANSI_H_) || defined(_X86_64_ANSI_H_) || defined(_I386_ANSI_H_) */ |
|
/* Sequent's header files use _PTRDIFF_T_ in some conflicting way. |
Just ignore it. */ |
#if defined (__sequent__) && defined (_PTRDIFF_T_) |
#undef _PTRDIFF_T_ |
#endif |
|
/* On VxWorks, <type/vxTypesBase.h> may have defined macros like |
_TYPE_size_t which will typedef size_t. fixincludes patched the |
vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is |
not defined, and so that defining this macro defines _GCC_SIZE_T. |
If we find that the macros are still defined at this point, we must |
invoke them so that the type is defined as expected. */ |
#if defined (_TYPE_ptrdiff_t) && (defined (__need_ptrdiff_t) || defined (_STDDEF_H_)) |
_TYPE_ptrdiff_t; |
#undef _TYPE_ptrdiff_t |
#endif |
#if defined (_TYPE_size_t) && (defined (__need_size_t) || defined (_STDDEF_H_)) |
_TYPE_size_t; |
#undef _TYPE_size_t |
#endif |
#if defined (_TYPE_wchar_t) && (defined (__need_wchar_t) || defined (_STDDEF_H_)) |
_TYPE_wchar_t; |
#undef _TYPE_wchar_t |
#endif |
|
/* In case nobody has defined these types, but we aren't running under |
GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and |
__WCHAR_TYPE__ have reasonable values. This can happen if the |
parts of GCC is compiled by an older compiler, that actually |
include gstddef.h, such as collect2. */ |
|
/* Signed type of difference of two pointers. */ |
|
/* Define this type if we are doing the whole job, |
or if we want this type in particular. */ |
#if defined (_STDDEF_H) || defined (__need_ptrdiff_t) |
#ifndef _PTRDIFF_T /* in case <sys/types.h> has defined it. */ |
#ifndef _T_PTRDIFF_ |
#ifndef _T_PTRDIFF |
#ifndef __PTRDIFF_T |
#ifndef _PTRDIFF_T_ |
#ifndef _BSD_PTRDIFF_T_ |
#ifndef ___int_ptrdiff_t_h |
#ifndef _GCC_PTRDIFF_T |
#define _PTRDIFF_T |
#define _T_PTRDIFF_ |
#define _T_PTRDIFF |
#define __PTRDIFF_T |
#define _PTRDIFF_T_ |
#define _BSD_PTRDIFF_T_ |
#define ___int_ptrdiff_t_h |
#define _GCC_PTRDIFF_T |
#ifndef __PTRDIFF_TYPE__ |
#define __PTRDIFF_TYPE__ long int |
#endif |
typedef __PTRDIFF_TYPE__ ptrdiff_t; |
#endif /* _GCC_PTRDIFF_T */ |
#endif /* ___int_ptrdiff_t_h */ |
#endif /* _BSD_PTRDIFF_T_ */ |
#endif /* _PTRDIFF_T_ */ |
#endif /* __PTRDIFF_T */ |
#endif /* _T_PTRDIFF */ |
#endif /* _T_PTRDIFF_ */ |
#endif /* _PTRDIFF_T */ |
|
/* If this symbol has done its job, get rid of it. */ |
#undef __need_ptrdiff_t |
|
#endif /* _STDDEF_H or __need_ptrdiff_t. */ |
|
/* Unsigned type of `sizeof' something. */ |
|
/* Define this type if we are doing the whole job, |
or if we want this type in particular. */ |
#if defined (_STDDEF_H) || defined (__need_size_t) |
#ifndef __size_t__ /* BeOS */ |
#ifndef __SIZE_T__ /* Cray Unicos/Mk */ |
#ifndef _SIZE_T /* in case <sys/types.h> has defined it. */ |
#ifndef _SYS_SIZE_T_H |
#ifndef _T_SIZE_ |
#ifndef _T_SIZE |
#ifndef __SIZE_T |
#ifndef _SIZE_T_ |
#ifndef _BSD_SIZE_T_ |
#ifndef _SIZE_T_DEFINED_ |
#ifndef _SIZE_T_DEFINED |
#ifndef _BSD_SIZE_T_DEFINED_ /* Darwin */ |
#ifndef _SIZE_T_DECLARED /* FreeBSD 5 */ |
#ifndef ___int_size_t_h |
#ifndef _GCC_SIZE_T |
#ifndef _SIZET_ |
#ifndef __size_t |
#define __size_t__ /* BeOS */ |
#define __SIZE_T__ /* Cray Unicos/Mk */ |
#define _SIZE_T |
#define _SYS_SIZE_T_H |
#define _T_SIZE_ |
#define _T_SIZE |
#define __SIZE_T |
#define _SIZE_T_ |
#define _BSD_SIZE_T_ |
#define _SIZE_T_DEFINED_ |
#define _SIZE_T_DEFINED |
#define _BSD_SIZE_T_DEFINED_ /* Darwin */ |
#define _SIZE_T_DECLARED /* FreeBSD 5 */ |
#define ___int_size_t_h |
#define _GCC_SIZE_T |
#define _SIZET_ |
#if (defined (__FreeBSD__) && (__FreeBSD__ >= 5)) \ |
|| defined(__FreeBSD_kernel__) |
/* __size_t is a typedef on FreeBSD 5, must not trash it. */ |
#else |
#define __size_t |
#endif |
#ifndef __SIZE_TYPE__ |
#define __SIZE_TYPE__ long unsigned int |
#endif |
#if !(defined (__GNUG__) && defined (size_t)) |
typedef __SIZE_TYPE__ size_t; |
#ifdef __BEOS__ |
typedef long ssize_t; |
#endif /* __BEOS__ */ |
#endif /* !(defined (__GNUG__) && defined (size_t)) */ |
#endif /* __size_t */ |
#endif /* _SIZET_ */ |
#endif /* _GCC_SIZE_T */ |
#endif /* ___int_size_t_h */ |
#endif /* _SIZE_T_DECLARED */ |
#endif /* _BSD_SIZE_T_DEFINED_ */ |
#endif /* _SIZE_T_DEFINED */ |
#endif /* _SIZE_T_DEFINED_ */ |
#endif /* _BSD_SIZE_T_ */ |
#endif /* _SIZE_T_ */ |
#endif /* __SIZE_T */ |
#endif /* _T_SIZE */ |
#endif /* _T_SIZE_ */ |
#endif /* _SYS_SIZE_T_H */ |
#endif /* _SIZE_T */ |
#endif /* __SIZE_T__ */ |
#endif /* __size_t__ */ |
#undef __need_size_t |
#endif /* _STDDEF_H or __need_size_t. */ |
|
|
/* Wide character type. |
Locale-writers should change this as necessary to |
be big enough to hold unique values not between 0 and 127, |
and not (wchar_t) -1, for each defined multibyte character. */ |
|
/* Define this type if we are doing the whole job, |
or if we want this type in particular. */ |
#if defined (_STDDEF_H) || defined (__need_wchar_t) |
#ifndef __wchar_t__ /* BeOS */ |
#ifndef __WCHAR_T__ /* Cray Unicos/Mk */ |
#ifndef _WCHAR_T |
#ifndef _T_WCHAR_ |
#ifndef _T_WCHAR |
#ifndef __WCHAR_T |
#ifndef _WCHAR_T_ |
#ifndef _BSD_WCHAR_T_ |
#ifndef _BSD_WCHAR_T_DEFINED_ /* Darwin */ |
#ifndef _BSD_RUNE_T_DEFINED_ /* Darwin */ |
#ifndef _WCHAR_T_DECLARED /* FreeBSD 5 */ |
#ifndef _WCHAR_T_DEFINED_ |
#ifndef _WCHAR_T_DEFINED |
#ifndef _WCHAR_T_H |
#ifndef ___int_wchar_t_h |
#ifndef __INT_WCHAR_T_H |
#ifndef _GCC_WCHAR_T |
#define __wchar_t__ /* BeOS */ |
#define __WCHAR_T__ /* Cray Unicos/Mk */ |
#define _WCHAR_T |
#define _T_WCHAR_ |
#define _T_WCHAR |
#define __WCHAR_T |
#define _WCHAR_T_ |
#define _BSD_WCHAR_T_ |
#define _WCHAR_T_DEFINED_ |
#define _WCHAR_T_DEFINED |
#define _WCHAR_T_H |
#define ___int_wchar_t_h |
#define __INT_WCHAR_T_H |
#define _GCC_WCHAR_T |
#define _WCHAR_T_DECLARED |
|
/* On BSD/386 1.1, at least, machine/ansi.h defines _BSD_WCHAR_T_ |
instead of _WCHAR_T_, and _BSD_RUNE_T_ (which, unlike the other |
symbols in the _FOO_T_ family, stays defined even after its |
corresponding type is defined). If we define wchar_t, then we |
must undef _WCHAR_T_; for BSD/386 1.1 (and perhaps others), if |
we undef _WCHAR_T_, then we must also define rune_t, since |
headers like runetype.h assume that if machine/ansi.h is included, |
and _BSD_WCHAR_T_ is not defined, then rune_t is available. |
machine/ansi.h says, "Note that _WCHAR_T_ and _RUNE_T_ must be of |
the same type." */ |
#ifdef _BSD_WCHAR_T_ |
#undef _BSD_WCHAR_T_ |
#ifdef _BSD_RUNE_T_ |
#if !defined (_ANSI_SOURCE) && !defined (_POSIX_SOURCE) |
typedef _BSD_RUNE_T_ rune_t; |
#define _BSD_WCHAR_T_DEFINED_ |
#define _BSD_RUNE_T_DEFINED_ /* Darwin */ |
#if defined (__FreeBSD__) && (__FreeBSD__ < 5) |
/* Why is this file so hard to maintain properly? In contrast to |
the comment above regarding BSD/386 1.1, on FreeBSD for as long |
as the symbol has existed, _BSD_RUNE_T_ must not stay defined or |
redundant typedefs will occur when stdlib.h is included after this file. */ |
#undef _BSD_RUNE_T_ |
#endif |
#endif |
#endif |
#endif |
/* FreeBSD 5 can't be handled well using "traditional" logic above |
since it no longer defines _BSD_RUNE_T_ yet still desires to export |
rune_t in some cases... */ |
#if defined (__FreeBSD__) && (__FreeBSD__ >= 5) |
#if !defined (_ANSI_SOURCE) && !defined (_POSIX_SOURCE) |
#if __BSD_VISIBLE |
#ifndef _RUNE_T_DECLARED |
typedef __rune_t rune_t; |
#define _RUNE_T_DECLARED |
#endif |
#endif |
#endif |
#endif |
|
#ifndef __WCHAR_TYPE__ |
#define __WCHAR_TYPE__ int |
#endif |
#ifndef __cplusplus |
typedef __WCHAR_TYPE__ wchar_t; |
#endif |
#endif |
#endif |
#endif |
#endif |
#endif |
#endif |
#endif /* _WCHAR_T_DECLARED */ |
#endif /* _BSD_RUNE_T_DEFINED_ */ |
#endif |
#endif |
#endif |
#endif |
#endif |
#endif |
#endif |
#endif /* __WCHAR_T__ */ |
#endif /* __wchar_t__ */ |
#undef __need_wchar_t |
#endif /* _STDDEF_H or __need_wchar_t. */ |
|
#if defined (__need_wint_t) |
#ifndef _WINT_T |
#define _WINT_T |
|
#ifndef __WINT_TYPE__ |
#define __WINT_TYPE__ unsigned int |
#endif |
typedef __WINT_TYPE__ wint_t; |
#endif |
#undef __need_wint_t |
#endif |
|
/* In 4.3bsd-net2, leave these undefined to indicate that size_t, etc. |
are already defined. */ |
/* BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here. */ |
/* NetBSD 5 requires the I386_ANSI_H and X86_64_ANSI_H checks here. */ |
#if defined(_ANSI_H_) || defined(_MACHINE_ANSI_H_) || defined(_X86_64_ANSI_H_) || defined(_I386_ANSI_H_) |
/* The references to _GCC_PTRDIFF_T_, _GCC_SIZE_T_, and _GCC_WCHAR_T_ |
are probably typos and should be removed before 2.8 is released. */ |
#ifdef _GCC_PTRDIFF_T_ |
#undef _PTRDIFF_T_ |
#undef _BSD_PTRDIFF_T_ |
#endif |
#ifdef _GCC_SIZE_T_ |
#undef _SIZE_T_ |
#undef _BSD_SIZE_T_ |
#endif |
#ifdef _GCC_WCHAR_T_ |
#undef _WCHAR_T_ |
#undef _BSD_WCHAR_T_ |
#endif |
/* The following ones are the real ones. */ |
#ifdef _GCC_PTRDIFF_T |
#undef _PTRDIFF_T_ |
#undef _BSD_PTRDIFF_T_ |
#endif |
#ifdef _GCC_SIZE_T |
#undef _SIZE_T_ |
#undef _BSD_SIZE_T_ |
#endif |
#ifdef _GCC_WCHAR_T |
#undef _WCHAR_T_ |
#undef _BSD_WCHAR_T_ |
#endif |
#endif /* _ANSI_H_ || _MACHINE_ANSI_H_ || _X86_64_ANSI_H_ || _I386_ANSI_H_ */ |
|
#endif /* __sys_stdtypes_h */ |
|
/* A null pointer constant. */ |
|
#if defined (_STDDEF_H) || defined (__need_NULL) |
#undef NULL /* in case <stdio.h> has defined it. */ |
#ifdef __GNUG__ |
#define NULL __null |
#else /* G++ */ |
#ifndef __cplusplus |
#define NULL ((void *)0) |
#else /* C++ */ |
#define NULL 0 |
#endif /* C++ */ |
#endif /* G++ */ |
#endif /* NULL not defined and <stddef.h> or need NULL. */ |
#undef __need_NULL |
|
#ifdef _STDDEF_H |
|
/* Offset of member MEMBER in a struct of type TYPE. */ |
#define offsetof(TYPE, MEMBER) __builtin_offsetof (TYPE, MEMBER) |
|
#if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) \ |
|| (defined(__cplusplus) && __cplusplus >= 201103L) |
#ifndef _GCC_MAX_ALIGN_T |
#define _GCC_MAX_ALIGN_T |
/* Type whose alignment is supported in every context and is at least |
as great as that of any standard type not using alignment |
specifiers. */ |
typedef struct { |
long long __max_align_ll __attribute__((__aligned__(__alignof__(long long)))); |
long double __max_align_ld __attribute__((__aligned__(__alignof__(long double)))); |
} max_align_t; |
#endif |
#endif /* C11 or C++11. */ |
|
#endif /* _STDDEF_H was defined this time */ |
|
#endif /* !_STDDEF_H && !_STDDEF_H_ && !_ANSI_STDDEF_H && !__STDDEF_H__ |
|| __need_XXX was not defined before */ |
/openrisc/trunk/gnu-dev/or1k-gcc/gcc/ginclude/iso646.h
0,0 → 1,45
/* Copyright (C) 1997, 1999, 2009 Free Software Foundation, Inc. |
|
This file is part of GCC. |
|
GCC is free software; you can redistribute it and/or modify |
it under the terms of the GNU General Public License as published by |
the Free Software Foundation; either version 3, or (at your option) |
any later version. |
|
GCC is distributed in the hope that it will be useful, |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
GNU General Public License for more details. |
|
Under Section 7 of GPL version 3, you are granted additional |
permissions described in the GCC Runtime Library Exception, version |
3.1, as published by the Free Software Foundation. |
|
You should have received a copy of the GNU General Public License and |
a copy of the GCC Runtime Library Exception along with this program; |
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see |
<http://www.gnu.org/licenses/>. */ |
|
/* |
* ISO C Standard: 7.9 Alternative spellings <iso646.h> |
*/ |
|
#ifndef _ISO646_H |
#define _ISO646_H |
|
#ifndef __cplusplus |
#define and && |
#define and_eq &= |
#define bitand & |
#define bitor | |
#define compl ~ |
#define not ! |
#define not_eq != |
#define or || |
#define or_eq |= |
#define xor ^ |
#define xor_eq ^= |
#endif |
|
#endif |
/openrisc/trunk/gnu-dev/or1k-gcc/gcc/ginclude/stdint-wrap.h
0,0 → 1,8
#ifndef _GCC_WRAP_STDINT_H |
#if __STDC_HOSTED__ |
# include_next <stdint.h> |
#else |
# include "stdint-gcc.h" |
#endif |
#define _GCC_WRAP_STDINT_H |
#endif |
/openrisc/trunk/gnu-dev/or1k-gcc/gcc/ginclude/stdint-gcc.h
0,0 → 1,259
/* Copyright (C) 2008, 2009 Free Software Foundation, Inc. |
|
This file is part of GCC. |
|
GCC is free software; you can redistribute it and/or modify |
it under the terms of the GNU General Public License as published by |
the Free Software Foundation; either version 3, or (at your option) |
any later version. |
|
GCC is distributed in the hope that it will be useful, |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
GNU General Public License for more details. |
|
Under Section 7 of GPL version 3, you are granted additional |
permissions described in the GCC Runtime Library Exception, version |
3.1, as published by the Free Software Foundation. |
|
You should have received a copy of the GNU General Public License and |
a copy of the GCC Runtime Library Exception along with this program; |
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see |
<http://www.gnu.org/licenses/>. */ |
|
/* |
* ISO C Standard: 7.18 Integer types <stdint.h> |
*/ |
|
#ifndef _GCC_STDINT_H |
#define _GCC_STDINT_H |
|
/* 7.8.1.1 Exact-width integer types */ |
|
#ifdef __INT8_TYPE__ |
typedef __INT8_TYPE__ int8_t; |
#endif |
#ifdef __INT16_TYPE__ |
typedef __INT16_TYPE__ int16_t; |
#endif |
#ifdef __INT32_TYPE__ |
typedef __INT32_TYPE__ int32_t; |
#endif |
#ifdef __INT64_TYPE__ |
typedef __INT64_TYPE__ int64_t; |
#endif |
#ifdef __UINT8_TYPE__ |
typedef __UINT8_TYPE__ uint8_t; |
#endif |
#ifdef __UINT16_TYPE__ |
typedef __UINT16_TYPE__ uint16_t; |
#endif |
#ifdef __UINT32_TYPE__ |
typedef __UINT32_TYPE__ uint32_t; |
#endif |
#ifdef __UINT64_TYPE__ |
typedef __UINT64_TYPE__ uint64_t; |
#endif |
|
/* 7.8.1.2 Minimum-width integer types */ |
|
typedef __INT_LEAST8_TYPE__ int_least8_t; |
typedef __INT_LEAST16_TYPE__ int_least16_t; |
typedef __INT_LEAST32_TYPE__ int_least32_t; |
typedef __INT_LEAST64_TYPE__ int_least64_t; |
typedef __UINT_LEAST8_TYPE__ uint_least8_t; |
typedef __UINT_LEAST16_TYPE__ uint_least16_t; |
typedef __UINT_LEAST32_TYPE__ uint_least32_t; |
typedef __UINT_LEAST64_TYPE__ uint_least64_t; |
|
/* 7.8.1.3 Fastest minimum-width integer types */ |
|
typedef __INT_FAST8_TYPE__ int_fast8_t; |
typedef __INT_FAST16_TYPE__ int_fast16_t; |
typedef __INT_FAST32_TYPE__ int_fast32_t; |
typedef __INT_FAST64_TYPE__ int_fast64_t; |
typedef __UINT_FAST8_TYPE__ uint_fast8_t; |
typedef __UINT_FAST16_TYPE__ uint_fast16_t; |
typedef __UINT_FAST32_TYPE__ uint_fast32_t; |
typedef __UINT_FAST64_TYPE__ uint_fast64_t; |
|
/* 7.8.1.4 Integer types capable of holding object pointers */ |
|
#ifdef __INTPTR_TYPE__ |
typedef __INTPTR_TYPE__ intptr_t; |
#endif |
#ifdef __UINTPTR_TYPE__ |
typedef __UINTPTR_TYPE__ uintptr_t; |
#endif |
|
/* 7.8.1.5 Greatest-width integer types */ |
|
typedef __INTMAX_TYPE__ intmax_t; |
typedef __UINTMAX_TYPE__ uintmax_t; |
|
#if !defined __cplusplus || defined __STDC_LIMIT_MACROS |
|
/* 7.18.2 Limits of specified-width integer types */ |
|
#ifdef __INT8_MAX__ |
# undef INT8_MAX |
# define INT8_MAX __INT8_MAX__ |
# undef INT8_MIN |
# define INT8_MIN (-INT8_MAX - 1) |
#endif |
#ifdef __UINT8_MAX__ |
# undef UINT8_MAX |
# define UINT8_MAX __UINT8_MAX__ |
#endif |
#ifdef __INT16_MAX__ |
# undef INT16_MAX |
# define INT16_MAX __INT16_MAX__ |
# undef INT16_MIN |
# define INT16_MIN (-INT16_MAX - 1) |
#endif |
#ifdef __UINT16_MAX__ |
# undef UINT16_MAX |
# define UINT16_MAX __UINT16_MAX__ |
#endif |
#ifdef __INT32_MAX__ |
# undef INT32_MAX |
# define INT32_MAX __INT32_MAX__ |
# undef INT32_MIN |
# define INT32_MIN (-INT32_MAX - 1) |
#endif |
#ifdef __UINT32_MAX__ |
# undef UINT32_MAX |
# define UINT32_MAX __UINT32_MAX__ |
#endif |
#ifdef __INT64_MAX__ |
# undef INT64_MAX |
# define INT64_MAX __INT64_MAX__ |
# undef INT64_MIN |
# define INT64_MIN (-INT64_MAX - 1) |
#endif |
#ifdef __UINT64_MAX__ |
# undef UINT64_MAX |
# define UINT64_MAX __UINT64_MAX__ |
#endif |
|
#undef INT_LEAST8_MAX |
#define INT_LEAST8_MAX __INT_LEAST8_MAX__ |
#undef INT_LEAST8_MIN |
#define INT_LEAST8_MIN (-INT_LEAST8_MAX - 1) |
#undef UINT_LEAST8_MAX |
#define UINT_LEAST8_MAX __UINT_LEAST8_MAX__ |
#undef INT_LEAST16_MAX |
#define INT_LEAST16_MAX __INT_LEAST16_MAX__ |
#undef INT_LEAST16_MIN |
#define INT_LEAST16_MIN (-INT_LEAST16_MAX - 1) |
#undef UINT_LEAST16_MAX |
#define UINT_LEAST16_MAX __UINT_LEAST16_MAX__ |
#undef INT_LEAST32_MAX |
#define INT_LEAST32_MAX __INT_LEAST32_MAX__ |
#undef INT_LEAST32_MIN |
#define INT_LEAST32_MIN (-INT_LEAST32_MAX - 1) |
#undef UINT_LEAST32_MAX |
#define UINT_LEAST32_MAX __UINT_LEAST32_MAX__ |
#undef INT_LEAST64_MAX |
#define INT_LEAST64_MAX __INT_LEAST64_MAX__ |
#undef INT_LEAST64_MIN |
#define INT_LEAST64_MIN (-INT_LEAST64_MAX - 1) |
#undef UINT_LEAST64_MAX |
#define UINT_LEAST64_MAX __UINT_LEAST64_MAX__ |
|
#undef INT_FAST8_MAX |
#define INT_FAST8_MAX __INT_FAST8_MAX__ |
#undef INT_FAST8_MIN |
#define INT_FAST8_MIN (-INT_FAST8_MAX - 1) |
#undef UINT_FAST8_MAX |
#define UINT_FAST8_MAX __UINT_FAST8_MAX__ |
#undef INT_FAST16_MAX |
#define INT_FAST16_MAX __INT_FAST16_MAX__ |
#undef INT_FAST16_MIN |
#define INT_FAST16_MIN (-INT_FAST16_MAX - 1) |
#undef UINT_FAST16_MAX |
#define UINT_FAST16_MAX __UINT_FAST16_MAX__ |
#undef INT_FAST32_MAX |
#define INT_FAST32_MAX __INT_FAST32_MAX__ |
#undef INT_FAST32_MIN |
#define INT_FAST32_MIN (-INT_FAST32_MAX - 1) |
#undef UINT_FAST32_MAX |
#define UINT_FAST32_MAX __UINT_FAST32_MAX__ |
#undef INT_FAST64_MAX |
#define INT_FAST64_MAX __INT_FAST64_MAX__ |
#undef INT_FAST64_MIN |
#define INT_FAST64_MIN (-INT_FAST64_MAX - 1) |
#undef UINT_FAST64_MAX |
#define UINT_FAST64_MAX __UINT_FAST64_MAX__ |
|
#ifdef __INTPTR_MAX__ |
# undef INTPTR_MAX |
# define INTPTR_MAX __INTPTR_MAX__ |
# undef INTPTR_MIN |
# define INTPTR_MIN (-INTPTR_MAX - 1) |
#endif |
#ifdef __UINTPTR_MAX__ |
# undef UINTPTR_MAX |
# define UINTPTR_MAX __UINTPTR_MAX__ |
#endif |
|
#undef INTMAX_MAX |
#define INTMAX_MAX __INTMAX_MAX__ |
#undef INTMAX_MIN |
#define INTMAX_MIN (-INTMAX_MAX - 1) |
#undef UINTMAX_MAX |
#define UINTMAX_MAX __UINTMAX_MAX__ |
|
/* 7.18.3 Limits of other integer types */ |
|
#undef PTRDIFF_MAX |
#define PTRDIFF_MAX __PTRDIFF_MAX__ |
#undef PTRDIFF_MIN |
#define PTRDIFF_MIN (-PTRDIFF_MAX - 1) |
|
#undef SIG_ATOMIC_MAX |
#define SIG_ATOMIC_MAX __SIG_ATOMIC_MAX__ |
#undef SIG_ATOMIC_MIN |
#define SIG_ATOMIC_MIN __SIG_ATOMIC_MIN__ |
|
#undef SIZE_MAX |
#define SIZE_MAX __SIZE_MAX__ |
|
#undef WCHAR_MAX |
#define WCHAR_MAX __WCHAR_MAX__ |
#undef WCHAR_MIN |
#define WCHAR_MIN __WCHAR_MIN__ |
|
#undef WINT_MAX |
#define WINT_MAX __WINT_MAX__ |
#undef WINT_MIN |
#define WINT_MIN __WINT_MIN__ |
|
#endif /* !defined __cplusplus || defined __STDC_LIMIT_MACROS */ |
|
#if !defined __cplusplus || defined __STDC_CONSTANT_MACROS |
|
#undef INT8_C |
#define INT8_C(c) __INT8_C(c) |
#undef INT16_C |
#define INT16_C(c) __INT16_C(c) |
#undef INT32_C |
#define INT32_C(c) __INT32_C(c) |
#undef INT64_C |
#define INT64_C(c) __INT64_C(c) |
#undef UINT8_C |
#define UINT8_C(c) __UINT8_C(c) |
#undef UINT16_C |
#define UINT16_C(c) __UINT16_C(c) |
#undef UINT32_C |
#define UINT32_C(c) __UINT32_C(c) |
#undef UINT64_C |
#define UINT64_C(c) __UINT64_C(c) |
#undef INTMAX_C |
#define INTMAX_C(c) __INTMAX_C(c) |
#undef UINTMAX_C |
#define UINTMAX_C(c) __UINTMAX_C(c) |
|
#endif /* !defined __cplusplus || defined __STDC_CONSTANT_MACROS */ |
|
#endif /* _GCC_STDINT_H */ |
/openrisc/trunk/gnu-dev/or1k-gcc/gcc/ginclude/stdfix.h
0,0 → 1,204
/* Copyright (C) 2007, 2009 Free Software Foundation, Inc. |
|
This file is part of GCC. |
|
GCC is free software; you can redistribute it and/or modify |
it under the terms of the GNU General Public License as published by |
the Free Software Foundation; either version 3, or (at your option) |
any later version. |
|
GCC is distributed in the hope that it will be useful, |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
GNU General Public License for more details. |
|
Under Section 7 of GPL version 3, you are granted additional |
permissions described in the GCC Runtime Library Exception, version |
3.1, as published by the Free Software Foundation. |
|
You should have received a copy of the GNU General Public License and |
a copy of the GCC Runtime Library Exception along with this program; |
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see |
<http://www.gnu.org/licenses/>. */ |
|
/* ISO/IEC JTC1 SC22 WG14 N1169 |
* Date: 2006-04-04 |
* ISO/IEC TR 18037 |
* Programming languages - C - Extensions to support embedded processors |
*/ |
|
#ifndef _STDFIX_H |
#define _STDFIX_H |
|
/* 7.18a.1 Introduction. */ |
|
#undef fract |
#undef accum |
#undef sat |
#define fract _Fract |
#define accum _Accum |
#define sat _Sat |
|
/* 7.18a.3 Precision macros. */ |
|
#undef SFRACT_FBIT |
#undef SFRACT_MIN |
#undef SFRACT_MAX |
#undef SFRACT_EPSILON |
#define SFRACT_FBIT __SFRACT_FBIT__ |
#define SFRACT_MIN __SFRACT_MIN__ |
#define SFRACT_MAX __SFRACT_MAX__ |
#define SFRACT_EPSILON __SFRACT_EPSILON__ |
|
#undef USFRACT_FBIT |
#undef USFRACT_MIN |
#undef USFRACT_MAX |
#undef USFRACT_EPSILON |
#define USFRACT_FBIT __USFRACT_FBIT__ |
#define USFRACT_MIN __USFRACT_MIN__ /* GCC extension. */ |
#define USFRACT_MAX __USFRACT_MAX__ |
#define USFRACT_EPSILON __USFRACT_EPSILON__ |
|
#undef FRACT_FBIT |
#undef FRACT_MIN |
#undef FRACT_MAX |
#undef FRACT_EPSILON |
#define FRACT_FBIT __FRACT_FBIT__ |
#define FRACT_MIN __FRACT_MIN__ |
#define FRACT_MAX __FRACT_MAX__ |
#define FRACT_EPSILON __FRACT_EPSILON__ |
|
#undef UFRACT_FBIT |
#undef UFRACT_MIN |
#undef UFRACT_MAX |
#undef UFRACT_EPSILON |
#define UFRACT_FBIT __UFRACT_FBIT__ |
#define UFRACT_MIN __UFRACT_MIN__ /* GCC extension. */ |
#define UFRACT_MAX __UFRACT_MAX__ |
#define UFRACT_EPSILON __UFRACT_EPSILON__ |
|
#undef LFRACT_FBIT |
#undef LFRACT_MIN |
#undef LFRACT_MAX |
#undef LFRACT_EPSILON |
#define LFRACT_FBIT __LFRACT_FBIT__ |
#define LFRACT_MIN __LFRACT_MIN__ |
#define LFRACT_MAX __LFRACT_MAX__ |
#define LFRACT_EPSILON __LFRACT_EPSILON__ |
|
#undef ULFRACT_FBIT |
#undef ULFRACT_MIN |
#undef ULFRACT_MAX |
#undef ULFRACT_EPSILON |
#define ULFRACT_FBIT __ULFRACT_FBIT__ |
#define ULFRACT_MIN __ULFRACT_MIN__ /* GCC extension. */ |
#define ULFRACT_MAX __ULFRACT_MAX__ |
#define ULFRACT_EPSILON __ULFRACT_EPSILON__ |
|
#undef LLFRACT_FBIT |
#undef LLFRACT_MIN |
#undef LLFRACT_MAX |
#undef LLFRACT_EPSILON |
#define LLFRACT_FBIT __LLFRACT_FBIT__ /* GCC extension. */ |
#define LLFRACT_MIN __LLFRACT_MIN__ /* GCC extension. */ |
#define LLFRACT_MAX __LLFRACT_MAX__ /* GCC extension. */ |
#define LLFRACT_EPSILON __LLFRACT_EPSILON__ /* GCC extension. */ |
|
#undef ULLFRACT_FBIT |
#undef ULLFRACT_MIN |
#undef ULLFRACT_MAX |
#undef ULLFRACT_EPSILON |
#define ULLFRACT_FBIT __ULLFRACT_FBIT__ /* GCC extension. */ |
#define ULLFRACT_MIN __ULLFRACT_MIN__ /* GCC extension. */ |
#define ULLFRACT_MAX __ULLFRACT_MAX__ /* GCC extension. */ |
#define ULLFRACT_EPSILON __ULLFRACT_EPSILON__ /* GCC extension. */ |
|
#undef SACCUM_FBIT |
#undef SACCUM_IBIT |
#undef SACCUM_MIN |
#undef SACCUM_MAX |
#undef SACCUM_EPSILON |
#define SACCUM_FBIT __SACCUM_FBIT__ |
#define SACCUM_IBIT __SACCUM_IBIT__ |
#define SACCUM_MIN __SACCUM_MIN__ |
#define SACCUM_MAX __SACCUM_MAX__ |
#define SACCUM_EPSILON __SACCUM_EPSILON__ |
|
#undef USACCUM_FBIT |
#undef USACCUM_IBIT |
#undef USACCUM_MIN |
#undef USACCUM_MAX |
#undef USACCUM_EPSILON |
#define USACCUM_FBIT __USACCUM_FBIT__ |
#define USACCUM_IBIT __USACCUM_IBIT__ |
#define USACCUM_MIN __USACCUM_MIN__ /* GCC extension. */ |
#define USACCUM_MAX __USACCUM_MAX__ |
#define USACCUM_EPSILON __USACCUM_EPSILON__ |
|
#undef ACCUM_FBIT |
#undef ACCUM_IBIT |
#undef ACCUM_MIN |
#undef ACCUM_MAX |
#undef ACCUM_EPSILON |
#define ACCUM_FBIT __ACCUM_FBIT__ |
#define ACCUM_IBIT __ACCUM_IBIT__ |
#define ACCUM_MIN __ACCUM_MIN__ |
#define ACCUM_MAX __ACCUM_MAX__ |
#define ACCUM_EPSILON __ACCUM_EPSILON__ |
|
#undef UACCUM_FBIT |
#undef UACCUM_IBIT |
#undef UACCUM_MIN |
#undef UACCUM_MAX |
#undef UACCUM_EPSILON |
#define UACCUM_FBIT __UACCUM_FBIT__ |
#define UACCUM_IBIT __UACCUM_IBIT__ |
#define UACCUM_MIN __UACCUM_MIN__ /* GCC extension. */ |
#define UACCUM_MAX __UACCUM_MAX__ |
#define UACCUM_EPSILON __UACCUM_EPSILON__ |
|
#undef LACCUM_FBIT |
#undef LACCUM_IBIT |
#undef LACCUM_MIN |
#undef LACCUM_MAX |
#undef LACCUM_EPSILON |
#define LACCUM_FBIT __LACCUM_FBIT__ |
#define LACCUM_IBIT __LACCUM_IBIT__ |
#define LACCUM_MIN __LACCUM_MIN__ |
#define LACCUM_MAX __LACCUM_MAX__ |
#define LACCUM_EPSILON __LACCUM_EPSILON__ |
|
#undef ULACCUM_FBIT |
#undef ULACCUM_IBIT |
#undef ULACCUM_MIN |
#undef ULACCUM_MAX |
#undef ULACCUM_EPSILON |
#define ULACCUM_FBIT __ULACCUM_FBIT__ |
#define ULACCUM_IBIT __ULACCUM_IBIT__ |
#define ULACCUM_MIN __ULACCUM_MIN__ /* GCC extension. */ |
#define ULACCUM_MAX __ULACCUM_MAX__ |
#define ULACCUM_EPSILON __ULACCUM_EPSILON__ |
|
#undef LLACCUM_FBIT |
#undef LLACCUM_IBIT |
#undef LLACCUM_MIN |
#undef LLACCUM_MAX |
#undef LLACCUM_EPSILON |
#define LLACCUM_FBIT __LLACCUM_FBIT__ /* GCC extension. */ |
#define LLACCUM_IBIT __LLACCUM_IBIT__ /* GCC extension. */ |
#define LLACCUM_MIN __LLACCUM_MIN__ /* GCC extension. */ |
#define LLACCUM_MAX __LLACCUM_MAX__ /* GCC extension. */ |
#define LLACCUM_EPSILON __LLACCUM_EPSILON__ /* GCC extension. */ |
|
#undef ULLACCUM_FBIT |
#undef ULLACCUM_IBIT |
#undef ULLACCUM_MIN |
#undef ULLACCUM_MAX |
#undef ULLACCUM_EPSILON |
#define ULLACCUM_FBIT __ULLACCUM_FBIT__ /* GCC extension. */ |
#define ULLACCUM_IBIT __ULLACCUM_IBIT__ /* GCC extension. */ |
#define ULLACCUM_MIN __ULLACCUM_MIN__ /* GCC extension. */ |
#define ULLACCUM_MAX __ULLACCUM_MAX__ /* GCC extension. */ |
#define ULLACCUM_EPSILON __ULLACCUM_EPSILON__ /* GCC extension. */ |
|
#endif /* _STDFIX_H */ |
/openrisc/trunk/gnu-dev/or1k-gcc/gcc/ginclude/stdarg.h
0,0 → 1,130
/* Copyright (C) 1989, 1997, 1998, 1999, 2000, 2009 Free Software Foundation, Inc. |
|
This file is part of GCC. |
|
GCC is free software; you can redistribute it and/or modify |
it under the terms of the GNU General Public License as published by |
the Free Software Foundation; either version 3, or (at your option) |
any later version. |
|
GCC is distributed in the hope that it will be useful, |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
GNU General Public License for more details. |
|
Under Section 7 of GPL version 3, you are granted additional |
permissions described in the GCC Runtime Library Exception, version |
3.1, as published by the Free Software Foundation. |
|
You should have received a copy of the GNU General Public License and |
a copy of the GCC Runtime Library Exception along with this program; |
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see |
<http://www.gnu.org/licenses/>. */ |
|
/* |
* ISO C Standard: 7.15 Variable arguments <stdarg.h> |
*/ |
|
#ifndef _STDARG_H |
#ifndef _ANSI_STDARG_H_ |
#ifndef __need___va_list |
#define _STDARG_H |
#define _ANSI_STDARG_H_ |
#endif /* not __need___va_list */ |
#undef __need___va_list |
|
/* Define __gnuc_va_list. */ |
|
#ifndef __GNUC_VA_LIST |
#define __GNUC_VA_LIST |
typedef __builtin_va_list __gnuc_va_list; |
#endif |
|
/* Define the standard macros for the user, |
if this invocation was from the user program. */ |
#ifdef _STDARG_H |
|
#define va_start(v,l) __builtin_va_start(v,l) |
#define va_end(v) __builtin_va_end(v) |
#define va_arg(v,l) __builtin_va_arg(v,l) |
#if !defined(__STRICT_ANSI__) || __STDC_VERSION__ + 0 >= 199900L || defined(__GXX_EXPERIMENTAL_CXX0X__) |
#define va_copy(d,s) __builtin_va_copy(d,s) |
#endif |
#define __va_copy(d,s) __builtin_va_copy(d,s) |
|
/* Define va_list, if desired, from __gnuc_va_list. */ |
/* We deliberately do not define va_list when called from |
stdio.h, because ANSI C says that stdio.h is not supposed to define |
va_list. stdio.h needs to have access to that data type, |
but must not use that name. It should use the name __gnuc_va_list, |
which is safe because it is reserved for the implementation. */ |
|
#ifdef _HIDDEN_VA_LIST /* On OSF1, this means varargs.h is "half-loaded". */ |
#undef _VA_LIST |
#endif |
|
#ifdef _BSD_VA_LIST |
#undef _BSD_VA_LIST |
#endif |
|
#if defined(__svr4__) || (defined(_SCO_DS) && !defined(__VA_LIST)) |
/* SVR4.2 uses _VA_LIST for an internal alias for va_list, |
so we must avoid testing it and setting it here. |
SVR4 uses _VA_LIST as a flag in stdarg.h, but we should |
have no conflict with that. */ |
#ifndef _VA_LIST_ |
#define _VA_LIST_ |
#ifdef __i860__ |
#ifndef _VA_LIST |
#define _VA_LIST va_list |
#endif |
#endif /* __i860__ */ |
typedef __gnuc_va_list va_list; |
#ifdef _SCO_DS |
#define __VA_LIST |
#endif |
#endif /* _VA_LIST_ */ |
#else /* not __svr4__ || _SCO_DS */ |
|
/* The macro _VA_LIST_ is the same thing used by this file in Ultrix. |
But on BSD NET2 we must not test or define or undef it. |
(Note that the comments in NET 2's ansi.h |
are incorrect for _VA_LIST_--see stdio.h!) */ |
#if !defined (_VA_LIST_) || defined (__BSD_NET2__) || defined (____386BSD____) || defined (__bsdi__) || defined (__sequent__) || defined (__FreeBSD__) || defined(WINNT) |
/* The macro _VA_LIST_DEFINED is used in Windows NT 3.5 */ |
#ifndef _VA_LIST_DEFINED |
/* The macro _VA_LIST is used in SCO Unix 3.2. */ |
#ifndef _VA_LIST |
/* The macro _VA_LIST_T_H is used in the Bull dpx2 */ |
#ifndef _VA_LIST_T_H |
/* The macro __va_list__ is used by BeOS. */ |
#ifndef __va_list__ |
typedef __gnuc_va_list va_list; |
#endif /* not __va_list__ */ |
#endif /* not _VA_LIST_T_H */ |
#endif /* not _VA_LIST */ |
#endif /* not _VA_LIST_DEFINED */ |
#if !(defined (__BSD_NET2__) || defined (____386BSD____) || defined (__bsdi__) || defined (__sequent__) || defined (__FreeBSD__)) |
#define _VA_LIST_ |
#endif |
#ifndef _VA_LIST |
#define _VA_LIST |
#endif |
#ifndef _VA_LIST_DEFINED |
#define _VA_LIST_DEFINED |
#endif |
#ifndef _VA_LIST_T_H |
#define _VA_LIST_T_H |
#endif |
#ifndef __va_list__ |
#define __va_list__ |
#endif |
|
#endif /* not _VA_LIST_, except on certain systems */ |
|
#endif /* not __svr4__ */ |
|
#endif /* _STDARG_H */ |
|
#endif /* not _ANSI_STDARG_H_ */ |
#endif /* not _STDARG_H */ |
/openrisc/trunk/gnu-dev/or1k-gcc/gcc/ginclude/tgmath.h
0,0 → 1,171
/* Copyright (C) 2004, 2005, 2009 Free Software Foundation, Inc. |
Contributed by Apple, Inc. |
|
This file is part of GCC. |
|
GCC is free software; you can redistribute it and/or modify |
it under the terms of the GNU General Public License as published by |
the Free Software Foundation; either version 3, or (at your option) |
any later version. |
|
GCC is distributed in the hope that it will be useful, |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
GNU General Public License for more details. |
|
Under Section 7 of GPL version 3, you are granted additional |
permissions described in the GCC Runtime Library Exception, version |
3.1, as published by the Free Software Foundation. |
|
You should have received a copy of the GNU General Public License and |
a copy of the GCC Runtime Library Exception along with this program; |
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see |
<http://www.gnu.org/licenses/>. */ |
|
/* |
* ISO C Standard: 7.22 Type-generic math <tgmath.h> |
*/ |
|
#ifndef _TGMATH_H |
#define _TGMATH_H |
|
#include <math.h> |
|
#ifndef __cplusplus |
#include <complex.h> |
|
/* Naming convention: generic macros are defining using |
__TGMATH_CPLX*, __TGMATH_REAL*, and __TGMATH_CPLX_ONLY. _CPLX |
means the generic argument(s) may be real or complex, _REAL means |
real only, _CPLX means complex only. If there is no suffix, we are |
defining a function of one generic argument. If the suffix is _n |
it is a function of n generic arguments. If the suffix is _m_n it |
is a function of n arguments, the first m of which are generic. We |
only define these macros for values of n and/or m that are needed. */ |
|
/* The general rules for generic macros are given in 7.22 paragraphs 1 and 2. |
If any generic parameter is complex, we use a complex version. Otherwise |
we use a real version. If the real part of any generic parameter is long |
double, we use the long double version. Otherwise if the real part of any |
generic parameter is double or of integer type, we use the double version. |
Otherwise we use the float version. */ |
|
#define __tg_cplx(expr) \ |
__builtin_classify_type(expr) == 9 |
|
#define __tg_ldbl(expr) \ |
__builtin_types_compatible_p(__typeof__(expr), long double) |
|
#define __tg_dbl(expr) \ |
(__builtin_types_compatible_p(__typeof__(expr), double) \ |
|| __builtin_classify_type(expr) == 1) |
|
#define __tg_choose(x,f,d,l) \ |
__builtin_choose_expr(__tg_ldbl(x), l, \ |
__builtin_choose_expr(__tg_dbl(x), d, \ |
f)) |
|
#define __tg_choose_2(x,y,f,d,l) \ |
__builtin_choose_expr(__tg_ldbl(x) || __tg_ldbl(y), l, \ |
__builtin_choose_expr(__tg_dbl(x) || __tg_dbl(y), d, \ |
f)) |
|
#define __tg_choose_3(x,y,z,f,d,l) \ |
__builtin_choose_expr(__tg_ldbl(x) || __tg_ldbl(y) || __tg_ldbl(z), l, \ |
__builtin_choose_expr(__tg_dbl(x) || __tg_dbl(y) \ |
|| __tg_dbl(z), d, \ |
f)) |
|
#define __TGMATH_CPLX(z,R,C) \ |
__builtin_choose_expr (__tg_cplx(z), \ |
__tg_choose (__real__(z), C##f(z), (C)(z), C##l(z)), \ |
__tg_choose (z, R##f(z), (R)(z), R##l(z))) |
|
#define __TGMATH_CPLX_2(z1,z2,R,C) \ |
__builtin_choose_expr (__tg_cplx(z1) || __tg_cplx(z2), \ |
__tg_choose_2 (__real__(z1), __real__(z2), \ |
C##f(z1,z2), (C)(z1,z2), C##l(z1,z2)), \ |
__tg_choose_2 (z1, z2, \ |
R##f(z1,z2), (R)(z1,z2), R##l(z1,z2))) |
|
#define __TGMATH_REAL(x,R) \ |
__tg_choose (x, R##f(x), (R)(x), R##l(x)) |
#define __TGMATH_REAL_2(x,y,R) \ |
__tg_choose_2 (x, y, R##f(x,y), (R)(x,y), R##l(x,y)) |
#define __TGMATH_REAL_3(x,y,z,R) \ |
__tg_choose_3 (x, y, z, R##f(x,y,z), (R)(x,y,z), R##l(x,y,z)) |
#define __TGMATH_REAL_1_2(x,y,R) \ |
__tg_choose (x, R##f(x,y), (R)(x,y), R##l(x,y)) |
#define __TGMATH_REAL_2_3(x,y,z,R) \ |
__tg_choose_2 (x, y, R##f(x,y,z), (R)(x,y,z), R##l(x,y,z)) |
#define __TGMATH_CPLX_ONLY(z,C) \ |
__tg_choose (__real__(z), C##f(z), (C)(z), C##l(z)) |
|
/* Functions defined in both <math.h> and <complex.h> (7.22p4) */ |
#define acos(z) __TGMATH_CPLX(z, acos, cacos) |
#define asin(z) __TGMATH_CPLX(z, asin, casin) |
#define atan(z) __TGMATH_CPLX(z, atan, catan) |
#define acosh(z) __TGMATH_CPLX(z, acosh, cacosh) |
#define asinh(z) __TGMATH_CPLX(z, asinh, casinh) |
#define atanh(z) __TGMATH_CPLX(z, atanh, catanh) |
#define cos(z) __TGMATH_CPLX(z, cos, ccos) |
#define sin(z) __TGMATH_CPLX(z, sin, csin) |
#define tan(z) __TGMATH_CPLX(z, tan, ctan) |
#define cosh(z) __TGMATH_CPLX(z, cosh, ccosh) |
#define sinh(z) __TGMATH_CPLX(z, sinh, csinh) |
#define tanh(z) __TGMATH_CPLX(z, tanh, ctanh) |
#define exp(z) __TGMATH_CPLX(z, exp, cexp) |
#define log(z) __TGMATH_CPLX(z, log, clog) |
#define pow(z1,z2) __TGMATH_CPLX_2(z1, z2, pow, cpow) |
#define sqrt(z) __TGMATH_CPLX(z, sqrt, csqrt) |
#define fabs(z) __TGMATH_CPLX(z, fabs, cabs) |
|
/* Functions defined in <math.h> only (7.22p5) */ |
#define atan2(x,y) __TGMATH_REAL_2(x, y, atan2) |
#define cbrt(x) __TGMATH_REAL(x, cbrt) |
#define ceil(x) __TGMATH_REAL(x, ceil) |
#define copysign(x,y) __TGMATH_REAL_2(x, y, copysign) |
#define erf(x) __TGMATH_REAL(x, erf) |
#define erfc(x) __TGMATH_REAL(x, erfc) |
#define exp2(x) __TGMATH_REAL(x, exp2) |
#define expm1(x) __TGMATH_REAL(x, expm1) |
#define fdim(x,y) __TGMATH_REAL_2(x, y, fdim) |
#define floor(x) __TGMATH_REAL(x, floor) |
#define fma(x,y,z) __TGMATH_REAL_3(x, y, z, fma) |
#define fmax(x,y) __TGMATH_REAL_2(x, y, fmax) |
#define fmin(x,y) __TGMATH_REAL_2(x, y, fmin) |
#define fmod(x,y) __TGMATH_REAL_2(x, y, fmod) |
#define frexp(x,y) __TGMATH_REAL_1_2(x, y, frexp) |
#define hypot(x,y) __TGMATH_REAL_2(x, y, hypot) |
#define ilogb(x) __TGMATH_REAL(x, ilogb) |
#define ldexp(x,y) __TGMATH_REAL_1_2(x, y, ldexp) |
#define lgamma(x) __TGMATH_REAL(x, lgamma) |
#define llrint(x) __TGMATH_REAL(x, llrint) |
#define llround(x) __TGMATH_REAL(x, llround) |
#define log10(x) __TGMATH_REAL(x, log10) |
#define log1p(x) __TGMATH_REAL(x, log1p) |
#define log2(x) __TGMATH_REAL(x, log2) |
#define logb(x) __TGMATH_REAL(x, logb) |
#define lrint(x) __TGMATH_REAL(x, lrint) |
#define lround(x) __TGMATH_REAL(x, lround) |
#define nearbyint(x) __TGMATH_REAL(x, nearbyint) |
#define nextafter(x,y) __TGMATH_REAL_2(x, y, nextafter) |
#define nexttoward(x,y) __TGMATH_REAL_1_2(x, y, nexttoward) |
#define remainder(x,y) __TGMATH_REAL_2(x, y, remainder) |
#define remquo(x,y,z) __TGMATH_REAL_2_3(x, y, z, remquo) |
#define rint(x) __TGMATH_REAL(x, rint) |
#define round(x) __TGMATH_REAL(x, round) |
#define scalbn(x,y) __TGMATH_REAL_1_2(x, y, scalbn) |
#define scalbln(x,y) __TGMATH_REAL_1_2(x, y, scalbln) |
#define tgamma(x) __TGMATH_REAL(x, tgamma) |
#define trunc(x) __TGMATH_REAL(x, trunc) |
|
/* Functions defined in <complex.h> only (7.22p6) */ |
#define carg(z) __TGMATH_CPLX_ONLY(z, carg) |
#define cimag(z) __TGMATH_CPLX_ONLY(z, cimag) |
#define conj(z) __TGMATH_CPLX_ONLY(z, conj) |
#define cproj(z) __TGMATH_CPLX_ONLY(z, cproj) |
#define creal(z) __TGMATH_CPLX_ONLY(z, creal) |
|
#endif /* __cplusplus */ |
#endif /* _TGMATH_H */ |
/openrisc/trunk/gnu-dev/or1k-gcc/gcc/ginclude/float.h
0,0 → 1,278
/* Copyright (C) 2002, 2007, 2008, 2009, 2010, 2011 |
Free Software Foundation, Inc. |
|
This file is part of GCC. |
|
GCC is free software; you can redistribute it and/or modify |
it under the terms of the GNU General Public License as published by |
the Free Software Foundation; either version 3, or (at your option) |
any later version. |
|
GCC is distributed in the hope that it will be useful, |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
GNU General Public License for more details. |
|
Under Section 7 of GPL version 3, you are granted additional |
permissions described in the GCC Runtime Library Exception, version |
3.1, as published by the Free Software Foundation. |
|
You should have received a copy of the GNU General Public License and |
a copy of the GCC Runtime Library Exception along with this program; |
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see |
<http://www.gnu.org/licenses/>. */ |
|
/* |
* ISO C Standard: 5.2.4.2.2 Characteristics of floating types <float.h> |
*/ |
|
#ifndef _FLOAT_H___ |
#define _FLOAT_H___ |
|
/* Radix of exponent representation, b. */ |
#undef FLT_RADIX |
#define FLT_RADIX __FLT_RADIX__ |
|
/* Number of base-FLT_RADIX digits in the significand, p. */ |
#undef FLT_MANT_DIG |
#undef DBL_MANT_DIG |
#undef LDBL_MANT_DIG |
#define FLT_MANT_DIG __FLT_MANT_DIG__ |
#define DBL_MANT_DIG __DBL_MANT_DIG__ |
#define LDBL_MANT_DIG __LDBL_MANT_DIG__ |
|
/* Number of decimal digits, q, such that any floating-point number with q |
decimal digits can be rounded into a floating-point number with p radix b |
digits and back again without change to the q decimal digits, |
|
p * log10(b) if b is a power of 10 |
floor((p - 1) * log10(b)) otherwise |
*/ |
#undef FLT_DIG |
#undef DBL_DIG |
#undef LDBL_DIG |
#define FLT_DIG __FLT_DIG__ |
#define DBL_DIG __DBL_DIG__ |
#define LDBL_DIG __LDBL_DIG__ |
|
/* Minimum int x such that FLT_RADIX**(x-1) is a normalized float, emin */ |
#undef FLT_MIN_EXP |
#undef DBL_MIN_EXP |
#undef LDBL_MIN_EXP |
#define FLT_MIN_EXP __FLT_MIN_EXP__ |
#define DBL_MIN_EXP __DBL_MIN_EXP__ |
#define LDBL_MIN_EXP __LDBL_MIN_EXP__ |
|
/* Minimum negative integer such that 10 raised to that power is in the |
range of normalized floating-point numbers, |
|
ceil(log10(b) * (emin - 1)) |
*/ |
#undef FLT_MIN_10_EXP |
#undef DBL_MIN_10_EXP |
#undef LDBL_MIN_10_EXP |
#define FLT_MIN_10_EXP __FLT_MIN_10_EXP__ |
#define DBL_MIN_10_EXP __DBL_MIN_10_EXP__ |
#define LDBL_MIN_10_EXP __LDBL_MIN_10_EXP__ |
|
/* Maximum int x such that FLT_RADIX**(x-1) is a representable float, emax. */ |
#undef FLT_MAX_EXP |
#undef DBL_MAX_EXP |
#undef LDBL_MAX_EXP |
#define FLT_MAX_EXP __FLT_MAX_EXP__ |
#define DBL_MAX_EXP __DBL_MAX_EXP__ |
#define LDBL_MAX_EXP __LDBL_MAX_EXP__ |
|
/* Maximum integer such that 10 raised to that power is in the range of |
representable finite floating-point numbers, |
|
floor(log10((1 - b**-p) * b**emax)) |
*/ |
#undef FLT_MAX_10_EXP |
#undef DBL_MAX_10_EXP |
#undef LDBL_MAX_10_EXP |
#define FLT_MAX_10_EXP __FLT_MAX_10_EXP__ |
#define DBL_MAX_10_EXP __DBL_MAX_10_EXP__ |
#define LDBL_MAX_10_EXP __LDBL_MAX_10_EXP__ |
|
/* Maximum representable finite floating-point number, |
|
(1 - b**-p) * b**emax |
*/ |
#undef FLT_MAX |
#undef DBL_MAX |
#undef LDBL_MAX |
#define FLT_MAX __FLT_MAX__ |
#define DBL_MAX __DBL_MAX__ |
#define LDBL_MAX __LDBL_MAX__ |
|
/* The difference between 1 and the least value greater than 1 that is |
representable in the given floating point type, b**1-p. */ |
#undef FLT_EPSILON |
#undef DBL_EPSILON |
#undef LDBL_EPSILON |
#define FLT_EPSILON __FLT_EPSILON__ |
#define DBL_EPSILON __DBL_EPSILON__ |
#define LDBL_EPSILON __LDBL_EPSILON__ |
|
/* Minimum normalized positive floating-point number, b**(emin - 1). */ |
#undef FLT_MIN |
#undef DBL_MIN |
#undef LDBL_MIN |
#define FLT_MIN __FLT_MIN__ |
#define DBL_MIN __DBL_MIN__ |
#define LDBL_MIN __LDBL_MIN__ |
|
/* Addition rounds to 0: zero, 1: nearest, 2: +inf, 3: -inf, -1: unknown. */ |
/* ??? This is supposed to change with calls to fesetround in <fenv.h>. */ |
#undef FLT_ROUNDS |
#define FLT_ROUNDS 1 |
|
#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L |
/* The floating-point expression evaluation method. |
-1 indeterminate |
0 evaluate all operations and constants just to the range and |
precision of the type |
1 evaluate operations and constants of type float and double |
to the range and precision of the double type, evaluate |
long double operations and constants to the range and |
precision of the long double type |
2 evaluate all operations and constants to the range and |
precision of the long double type |
|
??? This ought to change with the setting of the fp control word; |
the value provided by the compiler assumes the widest setting. */ |
#undef FLT_EVAL_METHOD |
#define FLT_EVAL_METHOD __FLT_EVAL_METHOD__ |
|
/* Number of decimal digits, n, such that any floating-point number in the |
widest supported floating type with pmax radix b digits can be rounded |
to a floating-point number with n decimal digits and back again without |
change to the value, |
|
pmax * log10(b) if b is a power of 10 |
ceil(1 + pmax * log10(b)) otherwise |
*/ |
#undef DECIMAL_DIG |
#define DECIMAL_DIG __DECIMAL_DIG__ |
|
#endif /* C99 */ |
|
#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L |
/* Versions of DECIMAL_DIG for each floating-point type. */ |
#undef FLT_DECIMAL_DIG |
#undef DBL_DECIMAL_DIG |
#undef LDBL_DECIMAL_DIG |
#define FLT_DECIMAL_DIG __FLT_DECIMAL_DIG__ |
#define DBL_DECIMAL_DIG __DBL_DECIMAL_DIG__ |
#define LDBL_DECIMAL_DIG __DECIMAL_DIG__ |
|
/* Whether types support subnormal numbers. */ |
#undef FLT_HAS_SUBNORM |
#undef DBL_HAS_SUBNORM |
#undef LDBL_HAS_SUBNORM |
#define FLT_HAS_SUBNORM __FLT_HAS_DENORM__ |
#define DBL_HAS_SUBNORM __DBL_HAS_DENORM__ |
#define LDBL_HAS_SUBNORM __LDBL_HAS_DENORM__ |
|
/* Minimum positive values, including subnormals. */ |
#undef FLT_TRUE_MIN |
#undef DBL_TRUE_MIN |
#undef LDBL_TRUE_MIN |
#if __FLT_HAS_DENORM__ |
#define FLT_TRUE_MIN __FLT_DENORM_MIN__ |
#else |
#define FLT_TRUE_MIN __FLT_MIN__ |
#endif |
#if __DBL_HAS_DENORM__ |
#define DBL_TRUE_MIN __DBL_DENORM_MIN__ |
#else |
#define DBL_TRUE_MIN __DBL_MIN__ |
#endif |
#if __LDBL_HAS_DENORM__ |
#define LDBL_TRUE_MIN __LDBL_DENORM_MIN__ |
#else |
#define LDBL_TRUE_MIN __LDBL_MIN__ |
#endif |
|
#endif /* C11 */ |
|
#ifdef __STDC_WANT_DEC_FP__ |
/* Draft Technical Report 24732, extension for decimal floating-point |
arithmetic: Characteristic of decimal floating types <float.h>. */ |
|
/* Number of base-FLT_RADIX digits in the significand, p. */ |
#undef DEC32_MANT_DIG |
#undef DEC64_MANT_DIG |
#undef DEC128_MANT_DIG |
#define DEC32_MANT_DIG __DEC32_MANT_DIG__ |
#define DEC64_MANT_DIG __DEC64_MANT_DIG__ |
#define DEC128_MANT_DIG __DEC128_MANT_DIG__ |
|
/* Minimum exponent. */ |
#undef DEC32_MIN_EXP |
#undef DEC64_MIN_EXP |
#undef DEC128_MIN_EXP |
#define DEC32_MIN_EXP __DEC32_MIN_EXP__ |
#define DEC64_MIN_EXP __DEC64_MIN_EXP__ |
#define DEC128_MIN_EXP __DEC128_MIN_EXP__ |
|
/* Maximum exponent. */ |
#undef DEC32_MAX_EXP |
#undef DEC64_MAX_EXP |
#undef DEC128_MAX_EXP |
#define DEC32_MAX_EXP __DEC32_MAX_EXP__ |
#define DEC64_MAX_EXP __DEC64_MAX_EXP__ |
#define DEC128_MAX_EXP __DEC128_MAX_EXP__ |
|
/* Maximum representable finite decimal floating-point number |
(there are 6, 15, and 33 9s after the decimal points respectively). */ |
#undef DEC32_MAX |
#undef DEC64_MAX |
#undef DEC128_MAX |
#define DEC32_MAX __DEC32_MAX__ |
#define DEC64_MAX __DEC64_MAX__ |
#define DEC128_MAX __DEC128_MAX__ |
|
/* The difference between 1 and the least value greater than 1 that is |
representable in the given floating point type. */ |
#undef DEC32_EPSILON |
#undef DEC64_EPSILON |
#undef DEC128_EPSILON |
#define DEC32_EPSILON __DEC32_EPSILON__ |
#define DEC64_EPSILON __DEC64_EPSILON__ |
#define DEC128_EPSILON __DEC128_EPSILON__ |
|
/* Minimum normalized positive floating-point number. */ |
#undef DEC32_MIN |
#undef DEC64_MIN |
#undef DEC128_MIN |
#define DEC32_MIN __DEC32_MIN__ |
#define DEC64_MIN __DEC64_MIN__ |
#define DEC128_MIN __DEC128_MIN__ |
|
/* Minimum subnormal positive floating-point number. */ |
#undef DEC32_SUBNORMAL_MIN |
#undef DEC64_SUBNORMAL_MIN |
#undef DEC128_SUBNORMAL_MIN |
#define DEC32_SUBNORMAL_MIN __DEC32_SUBNORMAL_MIN__ |
#define DEC64_SUBNORMAL_MIN __DEC64_SUBNORMAL_MIN__ |
#define DEC128_SUBNORMAL_MIN __DEC128_SUBNORMAL_MIN__ |
|
/* The floating-point expression evaluation method. |
-1 indeterminate |
0 evaluate all operations and constants just to the range and |
precision of the type |
1 evaluate operations and constants of type _Decimal32 |
and _Decimal64 to the range and precision of the _Decimal64 |
type, evaluate _Decimal128 operations and constants to the |
range and precision of the _Decimal128 type; |
2 evaluate all operations and constants to the range and |
precision of the _Decimal128 type. */ |
|
#undef DEC_EVAL_METHOD |
#define DEC_EVAL_METHOD __DEC_EVAL_METHOD__ |
|
#endif /* __STDC_WANT_DEC_FP__ */ |
|
#endif /* _FLOAT_H___ */ |
/openrisc/trunk/gnu-dev/or1k-gcc/gcc/ginclude/stdalign.h
0,0 → 1,39
/* Copyright (C) 2011 Free Software Foundation, Inc. |
|
This file is part of GCC. |
|
GCC is free software; you can redistribute it and/or modify |
it under the terms of the GNU General Public License as published by |
the Free Software Foundation; either version 3, or (at your option) |
any later version. |
|
GCC is distributed in the hope that it will be useful, |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
GNU General Public License for more details. |
|
Under Section 7 of GPL version 3, you are granted additional |
permissions described in the GCC Runtime Library Exception, version |
3.1, as published by the Free Software Foundation. |
|
You should have received a copy of the GNU General Public License and |
a copy of the GCC Runtime Library Exception along with this program; |
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see |
<http://www.gnu.org/licenses/>. */ |
|
/* ISO C1X: 7.15 Alignment <stdalign.h>. */ |
|
#ifndef _STDALIGN_H |
#define _STDALIGN_H |
|
#ifndef __cplusplus |
|
#define alignas _Alignas |
#define alignof _Alignof |
|
#define __alignas_is_defined 1 |
#define __alignof_is_defined 1 |
|
#endif |
|
#endif /* stdalign.h */ |
/openrisc/trunk/gnu-dev/or1k-gcc/gcc/ginclude/varargs.h
0,0 → 1,7
#ifndef _VARARGS_H |
#define _VARARGS_H |
|
#error "GCC no longer implements <varargs.h>." |
#error "Revise your code to use <stdarg.h>." |
|
#endif |
/openrisc/trunk/gnu-dev/or1k-gcc/gcc/ginclude/stdbool.h
0,0 → 1,50
/* Copyright (C) 1998, 1999, 2000, 2009 Free Software Foundation, Inc. |
|
This file is part of GCC. |
|
GCC is free software; you can redistribute it and/or modify |
it under the terms of the GNU General Public License as published by |
the Free Software Foundation; either version 3, or (at your option) |
any later version. |
|
GCC is distributed in the hope that it will be useful, |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
GNU General Public License for more details. |
|
Under Section 7 of GPL version 3, you are granted additional |
permissions described in the GCC Runtime Library Exception, version |
3.1, as published by the Free Software Foundation. |
|
You should have received a copy of the GNU General Public License and |
a copy of the GCC Runtime Library Exception along with this program; |
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see |
<http://www.gnu.org/licenses/>. */ |
|
/* |
* ISO C Standard: 7.16 Boolean type and values <stdbool.h> |
*/ |
|
#ifndef _STDBOOL_H |
#define _STDBOOL_H |
|
#ifndef __cplusplus |
|
#define bool _Bool |
#define true 1 |
#define false 0 |
|
#else /* __cplusplus */ |
|
/* Supporting <stdbool.h> in C++ is a GCC extension. */ |
#define _Bool bool |
#define bool bool |
#define false false |
#define true true |
|
#endif /* __cplusplus */ |
|
/* Signal that all the definitions are present. */ |
#define __bool_true_false_are_defined 1 |
|
#endif /* stdbool.h */ |
/openrisc/trunk/gnu-dev/or1k-gcc/gcc/ginclude/stdnoreturn.h
0,0 → 1,35
/* Copyright (C) 2011 Free Software Foundation, Inc. |
|
This file is part of GCC. |
|
GCC is free software; you can redistribute it and/or modify |
it under the terms of the GNU General Public License as published by |
the Free Software Foundation; either version 3, or (at your option) |
any later version. |
|
GCC is distributed in the hope that it will be useful, |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
GNU General Public License for more details. |
|
Under Section 7 of GPL version 3, you are granted additional |
permissions described in the GCC Runtime Library Exception, version |
3.1, as published by the Free Software Foundation. |
|
You should have received a copy of the GNU General Public License and |
a copy of the GCC Runtime Library Exception along with this program; |
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see |
<http://www.gnu.org/licenses/>. */ |
|
/* ISO C1X: 7.23 _Noreturn <stdnoreturn.h>. */ |
|
#ifndef _STDNORETURN_H |
#define _STDNORETURN_H |
|
#ifndef __cplusplus |
|
#define noreturn _Noreturn |
|
#endif |
|
#endif /* stdnoreturn.h */ |
/openrisc/trunk/gnu-dev/or1k-gcc/gcc/ginclude/unwind-arm-common.h
0,0 → 1,251
/* Header file for the ARM EABI and C6X unwinders |
Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2011 |
Free Software Foundation, Inc. |
Contributed by Paul Brook |
|
This file is free software; you can redistribute it and/or modify it |
under the terms of the GNU General Public License as published by the |
Free Software Foundation; either version 3, or (at your option) any |
later version. |
|
This file is distributed in the hope that it will be useful, but |
WITHOUT ANY WARRANTY; without even the implied warranty of |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
General Public License for more details. |
|
Under Section 7 of GPL version 3, you are granted additional |
permissions described in the GCC Runtime Library Exception, version |
3.1, as published by the Free Software Foundation. |
|
You should have received a copy of the GNU General Public License and |
a copy of the GCC Runtime Library Exception along with this program; |
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see |
<http://www.gnu.org/licenses/>. */ |
|
/* Language-independent unwinder header public defines. This contains both |
ABI defined objects, and GNU support routines. */ |
|
#ifndef UNWIND_ARM_COMMON_H |
#define UNWIND_ARM_COMMON_H |
|
#define __ARM_EABI_UNWINDER__ 1 |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
typedef unsigned _Unwind_Word __attribute__((__mode__(__word__))); |
typedef signed _Unwind_Sword __attribute__((__mode__(__word__))); |
typedef unsigned _Unwind_Ptr __attribute__((__mode__(__pointer__))); |
typedef unsigned _Unwind_Internal_Ptr __attribute__((__mode__(__pointer__))); |
typedef _Unwind_Word _uw; |
typedef unsigned _uw64 __attribute__((mode(__DI__))); |
typedef unsigned _uw16 __attribute__((mode(__HI__))); |
typedef unsigned _uw8 __attribute__((mode(__QI__))); |
|
typedef enum |
{ |
_URC_OK = 0, /* operation completed successfully */ |
_URC_FOREIGN_EXCEPTION_CAUGHT = 1, |
_URC_END_OF_STACK = 5, |
_URC_HANDLER_FOUND = 6, |
_URC_INSTALL_CONTEXT = 7, |
_URC_CONTINUE_UNWIND = 8, |
_URC_FAILURE = 9 /* unspecified failure of some kind */ |
} |
_Unwind_Reason_Code; |
|
typedef enum |
{ |
_US_VIRTUAL_UNWIND_FRAME = 0, |
_US_UNWIND_FRAME_STARTING = 1, |
_US_UNWIND_FRAME_RESUME = 2, |
_US_ACTION_MASK = 3, |
_US_FORCE_UNWIND = 8, |
_US_END_OF_STACK = 16 |
} |
_Unwind_State; |
|
/* Provided only for compatibility with existing code. */ |
typedef int _Unwind_Action; |
#define _UA_SEARCH_PHASE 1 |
#define _UA_CLEANUP_PHASE 2 |
#define _UA_HANDLER_FRAME 4 |
#define _UA_FORCE_UNWIND 8 |
#define _UA_END_OF_STACK 16 |
#define _URC_NO_REASON _URC_OK |
|
typedef struct _Unwind_Control_Block _Unwind_Control_Block; |
typedef struct _Unwind_Context _Unwind_Context; |
typedef _uw _Unwind_EHT_Header; |
|
|
/* UCB: */ |
|
struct _Unwind_Control_Block |
{ |
char exception_class[8]; |
void (*exception_cleanup)(_Unwind_Reason_Code, _Unwind_Control_Block *); |
/* Unwinder cache, private fields for the unwinder's use */ |
struct |
{ |
_uw reserved1; /* Forced unwind stop fn, 0 if not forced */ |
_uw reserved2; /* Personality routine address */ |
_uw reserved3; /* Saved callsite address */ |
_uw reserved4; /* Forced unwind stop arg */ |
_uw reserved5; |
} |
unwinder_cache; |
/* Propagation barrier cache (valid after phase 1): */ |
struct |
{ |
_uw sp; |
_uw bitpattern[5]; |
} |
barrier_cache; |
/* Cleanup cache (preserved over cleanup): */ |
struct |
{ |
_uw bitpattern[4]; |
} |
cleanup_cache; |
/* Pr cache (for pr's benefit): */ |
struct |
{ |
_uw fnstart; /* function start address */ |
_Unwind_EHT_Header *ehtp; /* pointer to EHT entry header word */ |
_uw additional; /* additional data */ |
_uw reserved1; |
} |
pr_cache; |
long long int :0; /* Force alignment to 8-byte boundary */ |
}; |
|
/* Virtual Register Set*/ |
|
typedef enum |
{ |
_UVRSC_CORE = 0, /* integer register */ |
_UVRSC_VFP = 1, /* vfp */ |
_UVRSC_FPA = 2, /* fpa */ |
_UVRSC_WMMXD = 3, /* Intel WMMX data register */ |
_UVRSC_WMMXC = 4 /* Intel WMMX control register */ |
} |
_Unwind_VRS_RegClass; |
|
typedef enum |
{ |
_UVRSD_UINT32 = 0, |
_UVRSD_VFPX = 1, |
_UVRSD_FPAX = 2, |
_UVRSD_UINT64 = 3, |
_UVRSD_FLOAT = 4, |
_UVRSD_DOUBLE = 5 |
} |
_Unwind_VRS_DataRepresentation; |
|
typedef enum |
{ |
_UVRSR_OK = 0, |
_UVRSR_NOT_IMPLEMENTED = 1, |
_UVRSR_FAILED = 2 |
} |
_Unwind_VRS_Result; |
|
/* Frame unwinding state. */ |
typedef struct |
{ |
/* The current word (bytes packed msb first). */ |
_uw data; |
/* Pointer to the next word of data. */ |
_uw *next; |
/* The number of bytes left in this word. */ |
_uw8 bytes_left; |
/* The number of words pointed to by ptr. */ |
_uw8 words_left; |
} |
__gnu_unwind_state; |
|
typedef _Unwind_Reason_Code (*personality_routine) (_Unwind_State, |
_Unwind_Control_Block *, _Unwind_Context *); |
|
_Unwind_VRS_Result _Unwind_VRS_Set(_Unwind_Context *, _Unwind_VRS_RegClass, |
_uw, _Unwind_VRS_DataRepresentation, |
void *); |
|
_Unwind_VRS_Result _Unwind_VRS_Get(_Unwind_Context *, _Unwind_VRS_RegClass, |
_uw, _Unwind_VRS_DataRepresentation, |
void *); |
|
_Unwind_VRS_Result _Unwind_VRS_Pop(_Unwind_Context *, _Unwind_VRS_RegClass, |
_uw, _Unwind_VRS_DataRepresentation); |
|
|
/* Support functions for the PR. */ |
#define _Unwind_Exception _Unwind_Control_Block |
typedef char _Unwind_Exception_Class[8]; |
|
void * _Unwind_GetLanguageSpecificData (_Unwind_Context *); |
_Unwind_Ptr _Unwind_GetRegionStart (_Unwind_Context *); |
|
_Unwind_Ptr _Unwind_GetDataRelBase (_Unwind_Context *); |
/* This should never be used. */ |
_Unwind_Ptr _Unwind_GetTextRelBase (_Unwind_Context *); |
|
/* Interface functions: */ |
_Unwind_Reason_Code _Unwind_RaiseException(_Unwind_Control_Block *ucbp); |
void __attribute__((noreturn)) _Unwind_Resume(_Unwind_Control_Block *ucbp); |
_Unwind_Reason_Code _Unwind_Resume_or_Rethrow (_Unwind_Control_Block *ucbp); |
|
typedef _Unwind_Reason_Code (*_Unwind_Stop_Fn) |
(int, _Unwind_Action, _Unwind_Exception_Class, |
_Unwind_Control_Block *, struct _Unwind_Context *, void *); |
_Unwind_Reason_Code _Unwind_ForcedUnwind (_Unwind_Control_Block *, |
_Unwind_Stop_Fn, void *); |
/* @@@ Use unwind data to perform a stack backtrace. The trace callback |
is called for every stack frame in the call chain, but no cleanup |
actions are performed. */ |
typedef _Unwind_Reason_Code (*_Unwind_Trace_Fn) (_Unwind_Context *, void *); |
_Unwind_Reason_Code _Unwind_Backtrace(_Unwind_Trace_Fn, |
void*); |
|
_Unwind_Word _Unwind_GetCFA (struct _Unwind_Context *); |
void _Unwind_Complete(_Unwind_Control_Block *ucbp); |
void _Unwind_DeleteException (_Unwind_Exception *); |
|
_Unwind_Reason_Code __gnu_unwind_frame (_Unwind_Control_Block *, |
_Unwind_Context *); |
_Unwind_Reason_Code __gnu_unwind_execute (_Unwind_Context *, |
__gnu_unwind_state *); |
|
static inline _Unwind_Word |
_Unwind_GetGR (_Unwind_Context *context, int regno) |
{ |
_uw val; |
_Unwind_VRS_Get (context, _UVRSC_CORE, regno, _UVRSD_UINT32, &val); |
return val; |
} |
|
#define _Unwind_GetIPInfo(context, ip_before_insn) \ |
(*ip_before_insn = 0, _Unwind_GetIP (context)) |
|
static inline void |
_Unwind_SetGR (_Unwind_Context *context, int regno, _Unwind_Word val) |
{ |
_Unwind_VRS_Set (context, _UVRSC_CORE, regno, _UVRSD_UINT32, &val); |
} |
|
_Unwind_Ptr _Unwind_GetRegionStart (_Unwind_Context *); |
void * _Unwind_GetLanguageSpecificData (_Unwind_Context *); |
|
/* leb128 type numbers have a potentially unlimited size. |
The target of the following definitions of _sleb128_t and _uleb128_t |
is to have efficient data types large enough to hold the leb128 type |
numbers used in the unwind code. */ |
typedef long _sleb128_t; |
typedef unsigned long _uleb128_t; |
|
#ifdef __cplusplus |
} /* extern "C" */ |
#endif |
|
#endif /* defined UNWIND_ARM_COMMON_H */ |