This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

PATCH: PR 30777


This patch fixes PR 30777, a testsuite failure on 32-bit Solaris x86.

As the comment I've added says, I don't think this test makes sense on
Solaris x86.  Independent of whatever the standard ABIs might say,
existing practice on Solaris seems to be not to pass v2df values in
xmm0.  I've verified that the test case now passes on Solaris x86 in
both 32-bit and 64-bit modes, though with one more PASS in 64-bit mode
since the dg-final check is skipped in 32-bit mode.

Eric, as a Solaris expert, do you have any opinion?  Is this OK to
commit?

Thanks,

--
Mark Mitchell
CodeSourcery
mark@codesourcery.com
(650) 331-3385 x713

2007-03-26  Mark Mitchell  <mark@codesourcery.com>

	PR target/30777
	* gcc.target/i386/abi-1.c: Do not expect values to be passed in
	xmm0 on Solaris x86 in 32-bit mode.

Index: gcc/testsuite/gcc.target/i386/abi-1.c
===================================================================
--- gcc/testsuite/gcc.target/i386/abi-1.c	(revision 166937)
+++ gcc/testsuite/gcc.target/i386/abi-1.c	(working copy)
@@ -5,4 +5,8 @@
 typedef double v2df __attribute__((vector_size (16)));
 v2df foo (void) { return (v2df){ 1.0, 2.0 }; }
 
-/* { dg-final { scan-assembler "xmm0" } } */
+/* On Solaris 10 x86, the system version of GCC 3.4.3, supplied in
+   /usr/sfw/bin/gcc, crashes on this test case.  GCC 4.1 and later
+   pass the value on the stack.  Therefore we treat the stack-passing
+   approach as the de facto standard ABI for Solaris x86.  */
+/* { dg-final { scan-assembler "xmm0" { target { { ! { *-*-solaris2* } } || { ! ilp32 } } } } } */


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]