diff options
author | Richard Guenther <rguenther@suse.de> | 2007-01-19 11:06:56 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2007-01-19 11:06:56 +0000 |
commit | 006339cde4079778a003f75127e5bc7fbcde256d (patch) | |
tree | 9b2970cfe38e303f9d2cf7b3d12347e9babb016e | |
parent | 8ef4f42c93e00dc873de984525712f2aad5b7036 (diff) | |
download | gcc-006339cde4079778a003f75127e5bc7fbcde256d.zip gcc-006339cde4079778a003f75127e5bc7fbcde256d.tar.gz gcc-006339cde4079778a003f75127e5bc7fbcde256d.tar.bz2 |
tm.texi (TARGET_HAS_SINCOS): Document new target macro.
2007-01-19 Richard Guenther <rguenther@suse.de>
* doc/tm.texi (TARGET_HAS_SINCOS): Document new target macro.
* defaults.h (TARGET_HAS_SINCOS): Default to off.
* config/linux.h (TARGET_HAS_SINCOS): Set to on if we have glibc.
* config/alpha/linux.h (TARGET_HAS_SINCOS): Likewise.
* config/sparc/linux.h (TARGET_HAS_SINCOS): Likewise.
* config/sparc/linux64.h (TARGET_HAS_SINCOS): Likewise.
* config/rs6000/linux.h (TARGET_HAS_SINCOS): Likewise.
* config/rs6000/linux64.h (TARGET_HAS_SINCOS): Likewise.
From-SVN: r120952
-rw-r--r-- | gcc/ChangeLog | 11 | ||||
-rw-r--r-- | gcc/config/alpha/linux.h | 3 | ||||
-rw-r--r-- | gcc/config/linux.h | 3 | ||||
-rw-r--r-- | gcc/config/rs6000/linux.h | 4 | ||||
-rw-r--r-- | gcc/config/rs6000/linux64.h | 4 | ||||
-rw-r--r-- | gcc/config/sparc/linux.h | 3 | ||||
-rw-r--r-- | gcc/config/sparc/linux64.h | 3 | ||||
-rw-r--r-- | gcc/defaults.h | 6 | ||||
-rw-r--r-- | gcc/doc/tm.texi | 12 |
9 files changed, 49 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1843e84..bd50a12 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,14 @@ +2007-01-19 Richard Guenther <rguenther@suse.de> + + * doc/tm.texi (TARGET_HAS_SINCOS): Document new target macro. + * defaults.h (TARGET_HAS_SINCOS): Default to off. + * config/linux.h (TARGET_HAS_SINCOS): Set to on if we have glibc. + * config/alpha/linux.h (TARGET_HAS_SINCOS): Likewise. + * config/sparc/linux.h (TARGET_HAS_SINCOS): Likewise. + * config/sparc/linux64.h (TARGET_HAS_SINCOS): Likewise. + * config/rs6000/linux.h (TARGET_HAS_SINCOS): Likewise. + * config/rs6000/linux64.h (TARGET_HAS_SINCOS): Likewise. + 2007-01-19 Uros Bizjak <ubizjak@gmail.com> * config/i386/i386.md (*fpatanxf3_i387, fpatan_extend<mode>xf3_i387): diff --git a/gcc/config/alpha/linux.h b/gcc/config/alpha/linux.h index dcd3c65..a496f40 100644 --- a/gcc/config/alpha/linux.h +++ b/gcc/config/alpha/linux.h @@ -66,6 +66,9 @@ Boston, MA 02110-1301, USA. */ runtime library. */ #define TARGET_C99_FUNCTIONS (OPTION_GLIBC) +/* Whether we have sincos that follows the GNU extension. */ +#define TARGET_HAS_SINCOS (OPTION_GLIBC) + #define TARGET_POSIX_IO #define LINK_GCC_C_SEQUENCE_SPEC \ diff --git a/gcc/config/linux.h b/gcc/config/linux.h index 59e3e85..0907837 100644 --- a/gcc/config/linux.h +++ b/gcc/config/linux.h @@ -126,4 +126,7 @@ Boston, MA 02110-1301, USA. */ is present in the runtime library. */ #define TARGET_C99_FUNCTIONS (OPTION_GLIBC) +/* Whether we have sincos that follows the GNU extension. */ +#define TARGET_HAS_SINCOS (OPTION_GLIBC) + #define TARGET_POSIX_IO diff --git a/gcc/config/rs6000/linux.h b/gcc/config/rs6000/linux.h index 3df356f..c6a6fda 100644 --- a/gcc/config/rs6000/linux.h +++ b/gcc/config/rs6000/linux.h @@ -35,6 +35,10 @@ #undef TARGET_C99_FUNCTIONS #define TARGET_C99_FUNCTIONS (OPTION_GLIBC) +/* Whether we have sincos that follows the GNU extension. */ +#undef TARGET_HAS_SINCOS +#define TARGET_HAS_SINCOS (OPTION_GLIBC) + #undef TARGET_OS_CPP_BUILTINS #define TARGET_OS_CPP_BUILTINS() \ do \ diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h index 5c62a1d..5b954a9 100644 --- a/gcc/config/rs6000/linux64.h +++ b/gcc/config/rs6000/linux64.h @@ -285,6 +285,10 @@ extern int dot_symbols; #undef TARGET_C99_FUNCTIONS #define TARGET_C99_FUNCTIONS (OPTION_GLIBC) +/* Whether we have sincos that follows the GNU extension. */ +#undef TARGET_HAS_SINCOS +#define TARGET_HAS_SINCOS (OPTION_GLIBC) + #undef TARGET_OS_CPP_BUILTINS #define TARGET_OS_CPP_BUILTINS() \ do \ diff --git a/gcc/config/sparc/linux.h b/gcc/config/sparc/linux.h index 5af67a6..7c50d3c 100644 --- a/gcc/config/sparc/linux.h +++ b/gcc/config/sparc/linux.h @@ -215,6 +215,9 @@ do { \ runtime library. */ #define TARGET_C99_FUNCTIONS (OPTION_GLIBC) +/* Whether we have sincos that follows the GNU extension. */ +#define TARGET_HAS_SINCOS (OPTION_GLIBC) + #define TARGET_POSIX_IO #undef LINK_GCC_C_SEQUENCE_SPEC diff --git a/gcc/config/sparc/linux64.h b/gcc/config/sparc/linux64.h index b0ddf4b..60bda62 100644 --- a/gcc/config/sparc/linux64.h +++ b/gcc/config/sparc/linux64.h @@ -347,6 +347,9 @@ do { \ runtime library. */ #define TARGET_C99_FUNCTIONS (OPTION_GLIBC) +/* Whether we have sincos that follows the GNU extension. */ +#define TARGET_HAS_SINCOS (OPTION_GLIBC) + #define TARGET_POSIX_IO #undef LINK_GCC_C_SEQUENCE_SPEC diff --git a/gcc/defaults.h b/gcc/defaults.h index 6af5f17..b17d59e 100644 --- a/gcc/defaults.h +++ b/gcc/defaults.h @@ -796,6 +796,12 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA #define TARGET_C99_FUNCTIONS 0 #endif +/* Determine whether the target runtime library has + a sincos implementation following the GNU extension. */ +#ifndef TARGET_HAS_SINCOS +#define TARGET_HAS_SINCOS 0 +#endif + /* Indicate that CLZ and CTZ are undefined at zero. */ #ifndef CLZ_DEFINED_VALUE_AT_ZERO #define CLZ_DEFINED_VALUE_AT_ZERO(MODE, VALUE) 0 diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi index ad70779..3390575 100644 --- a/gcc/doc/tm.texi +++ b/gcc/doc/tm.texi @@ -5061,6 +5061,18 @@ number of existing systems lacks support for these functions in the runtime so they needs this macro to be redefined to 0. @end defmac +@cindex sincos math function, implicit usage +@defmac TARGET_HAS_SINCOS +When this macro is nonzero, GCC will implicitly optimize calls to @code{sin} +and @code{cos} with the same argument to a call to @code{sincos}. The +default is zero. The target has to provide the following functions: +@smallexample +void sincos(double x, double *sin, double *cos); +void sincosf(float x, float *sin, float *cos); +void sincosl(long double x, long double *sin, long double *cos); +@end smallexample +@end defmac + @defmac NEXT_OBJC_RUNTIME Define this macro to generate code for Objective-C message sending using the calling convention of the NeXT system. This calling convention |