aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/i386/sol2.h
diff options
context:
space:
mode:
authorRainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>2010-09-28 16:24:11 +0000
committerRainer Orth <ro@gcc.gnu.org>2010-09-28 16:24:11 +0000
commit2770264a75b500cb6b21772223718a2eab620968 (patch)
tree4d012ee0025647ae28c397f525e9ee6ddeb5942d /gcc/config/i386/sol2.h
parent4ed5664e901fff6df3c956154d5dccd8d0ca4e42 (diff)
downloadgcc-2770264a75b500cb6b21772223718a2eab620968.zip
gcc-2770264a75b500cb6b21772223718a2eab620968.tar.gz
gcc-2770264a75b500cb6b21772223718a2eab620968.tar.bz2
re PR target/44452 (gcc.target/i386/abi-2.c and gcc.target/i386/pr22076.c fail on 32-bit Solaris 10+/x86)
gcc/testsuite: PR target/44452 * gcc.target/i386/pr22076.c: Add -mno-vect8-ret-in-mem on i?86-*-solaris2.[89], *-*-vxworks*. * gcc.target/i386/pr22152.c: Likewise. * gcc.target/i386/vect8-ret.c: New test. gcc: PR target/44452 * config/i386/i386.opt (mvect8-ret-in-mem): Define. * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem. (ix86_solaris_return_in_memory): Remove. * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove. * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove. (TARGET_SUBTARGET_DEFAULT): Redefine. * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment. * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove. (TARGET_SUBTARGET_DEFAULT): Redefine. * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add -mvect8-ret-in-mem. (i386 and x86-64 Options): Document -mvect8-ret-in-mem. From-SVN: r164687
Diffstat (limited to 'gcc/config/i386/sol2.h')
-rw-r--r--gcc/config/i386/sol2.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/gcc/config/i386/sol2.h b/gcc/config/i386/sol2.h
index 57f75ea..b86308f 100644
--- a/gcc/config/i386/sol2.h
+++ b/gcc/config/i386/sol2.h
@@ -140,9 +140,15 @@ along with GCC; see the file COPYING3. If not see
/* Register the Solaris-specific #pragma directives. */
#define REGISTER_SUBTARGET_PRAGMAS() solaris_register_pragmas ()
+/* Undo i386/sysv4.h version. */
#undef SUBTARGET_RETURN_IN_MEMORY
-#define SUBTARGET_RETURN_IN_MEMORY(TYPE, FNTYPE) \
- ix86_solaris_return_in_memory (TYPE, FNTYPE)
+
+/* Augment i386/unix.h version to return 8-byte vectors in memory, matching
+ Sun Studio compilers until version 12, the only ones supported on
+ Solaris 8 and 9. */
+#undef TARGET_SUBTARGET_DEFAULT
+#define TARGET_SUBTARGET_DEFAULT \
+ (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_VECT8_RETURNS)
/* Output a simple call for .init/.fini. */
#define ASM_OUTPUT_CALL(FILE, FN) \