* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120952
138bc75d-0d04-0410-961f-
82ee72b054a4
+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):
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 \
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
#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 \
#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 \
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
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
#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
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