This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[3.4 patch] Backport and fix various x86_64 failures
- From: "Kaveh R. Ghazi" <ghazi at caipclassic dot rutgers dot edu>
- To: gdr at integrable-solutions dot net
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Sat, 3 Dec 2005 10:23:21 -0500 (EST)
- Subject: [3.4 patch] Backport and fix various x86_64 failures
I'm getting the following errors when running the 3.4 testsuite on
x86_64-unknown-linux-gnu:
FAIL: gcc.dg/20020103-1.c scan-assembler-not LC
FAIL: gcc.dg/i386-local.c scan-assembler magic[^\\\\n]*eax
FAIL: gcc.dg/i386-sse-8.c (test for excess errors)
FAIL: gcc.dg/loop-3.c (test for excess errors)
as shown here:
http://gcc.gnu.org/ml/gcc-testresults/2005-12/msg00083.html
These are all due to problems with the testcases that have been
addressed in later versions of gcc. So I backported the testcases
from 4.0 and/or mainline. In a couple of situations, the testcases
used the effective-target infrastructure to detect ilp32 or lp64.
Since AFAICT the effective target stuff hasn't been backported to 3.4,
in those cases I used dg-dkip-if to avoid the problematic cases of
i686 -m64 or x86_64 -m32 and restricted the testcases to the
appropriate cpu.
Tested on i686-unknown-linux-gnu and x86_64-unknown-linux-gnu via
"make check". The patched testcases no longer fail.
Okay for 3.4?
Thanks,
--Kaveh
2005-12-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* gcc.dg/loop-3.c: Skip if ix86 and -m64.
* gcc.dg/i386-local.c: Likewise. Also skip if x86_64 and -m32.
Backport:
2005-08-25 Alan Modra <amodra@bigpond.net.au>
* gcc.dg/20020103-1.c: Scan for LC[0-9], not LC.
2004-12-09 Richard Henderson <rth@redhat.com>
* gcc.dg/loop-3.c: Don't use i386 tuning for amd64.
2004-11-17 Janis Johnson <janis187@us.ibm.com>
* gcc.dg/i386-sse-8.c: Use dg-skip-if i?86 -m64.
2004-04-06 Jakub Jelinek <jakub@redhat.com>
* gcc.dg/i386-sse-8.c: Don't use -march=pentium3 on x86_64.
* gcc.dg/i386-local.c: Expect %edi, not %eax register on x86_64.
* gcc.dg/20020103-1.c: Add -fno-asynchronous-unwind-tables to options.
diff -rup orig/egcc-3.4-SVN20051202/gcc/testsuite/gcc.dg/20020103-1.c egcc-3.4-SVN20051202/gcc/testsuite/gcc.dg/20020103-1.c
--- orig/egcc-3.4-SVN20051202/gcc/testsuite/gcc.dg/20020103-1.c 2005-11-03 11:01:07.000000000 -0500
+++ egcc-3.4-SVN20051202/gcc/testsuite/gcc.dg/20020103-1.c 2005-12-03 09:55:52.000000000 -0500
@@ -1,8 +1,8 @@
/* Verify that constant equivalences get reloaded properly, either by being
spilled to the stack, or regenerated, but not dropped to memory. */
/* { dg-do compile { target i?86-*-* powerpc-*-* rs6000-*-* alpha*-*-* x86_64-*-*} } */
-/* { dg-options "-O2 -fpic -fno-omit-frame-pointer" } */
-/* { dg-final { scan-assembler-not "LC" } } */
+/* { dg-options "-O2 -fpic -fno-omit-frame-pointer -fno-asynchronous-unwind-tables" } */
+/* { dg-final { scan-assembler-not "LC\[0-9\]" } } */
/* Clobber all call-saved registers that can hold a pointer value. */
#if defined(__i386__)
diff -rup orig/egcc-3.4-SVN20051202/gcc/testsuite/gcc.dg/i386-local.c egcc-3.4-SVN20051202/gcc/testsuite/gcc.dg/i386-local.c
--- orig/egcc-3.4-SVN20051202/gcc/testsuite/gcc.dg/i386-local.c 2005-11-03 11:01:07.000000000 -0500
+++ egcc-3.4-SVN20051202/gcc/testsuite/gcc.dg/i386-local.c 2005-12-03 09:46:26.000000000 -0500
@@ -1,6 +1,9 @@
/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
/* { dg-options "-O2 -funit-at-a-time" } */
-/* { dg-final { scan-assembler "magic\[^\\n\]*eax" } } */
+/* { dg-final { scan-assembler "magic\[^\\n\]*eax" { target i?86-*-* } } } */
+/* { dg-final { scan-assembler "magic\[^\\n\]*edi" { target x86_64-*-* } } } */
+/* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
+/* { dg-skip-if "" { x86_64-*-* } { "-m32" } { "" } } */
/* Verify that local calling convention is used. */
static t(int) __attribute__ ((noinline));
diff -rup orig/egcc-3.4-SVN20051202/gcc/testsuite/gcc.dg/i386-sse-8.c egcc-3.4-SVN20051202/gcc/testsuite/gcc.dg/i386-sse-8.c
--- orig/egcc-3.4-SVN20051202/gcc/testsuite/gcc.dg/i386-sse-8.c 2005-11-03 11:01:07.000000000 -0500
+++ egcc-3.4-SVN20051202/gcc/testsuite/gcc.dg/i386-sse-8.c 2005-12-03 08:51:28.000000000 -0500
@@ -2,7 +2,8 @@
/* Origin: <Pawe Sikora <pluto@ds14.agh.edu.pl> */
/* { dg-do compile } */
-/* { dg-options "-march=pentium3" { target i?86-*-* x86_64-*-* } } */
+/* { dg-options "-march=pentium3" { target i?86-*-* } } */
+/* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
int main()
{
diff -rup orig/egcc-3.4-SVN20051202/gcc/testsuite/gcc.dg/loop-3.c egcc-3.4-SVN20051202/gcc/testsuite/gcc.dg/loop-3.c
--- orig/egcc-3.4-SVN20051202/gcc/testsuite/gcc.dg/loop-3.c 2005-11-03 11:01:07.000000000 -0500
+++ egcc-3.4-SVN20051202/gcc/testsuite/gcc.dg/loop-3.c 2005-12-03 09:11:05.000000000 -0500
@@ -3,7 +3,8 @@
/* { dg-do compile } */
/* { dg-options "-O3" } */
-/* { dg-options "-O3 -mtune=i386" { target i?86-*-* x86_64-*-* } } */
+/* { dg-options "-O3 -mtune=i386" { target i?86-*-* } } */
+/* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
#if defined(STACK_SIZE) && (STACK_SIZE < 65536)
# define BYTEMEM_SIZE 10000L