diff options
author | Richard Sandiford <richard@codesourcery.com> | 2007-03-21 09:11:25 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2007-03-21 09:11:25 +0000 |
commit | 39a39c8504a4188f5fea639e1c0ddc8cb57a4281 (patch) | |
tree | d58ec84bf1bdeb8d7d5b711c284bfb58697097f0 /gcc | |
parent | 2a450639801b638f5b28d00b1ba0b560d8a2c271 (diff) | |
download | gcc-39a39c8504a4188f5fea639e1c0ddc8cb57a4281.zip gcc-39a39c8504a4188f5fea639e1c0ddc8cb57a4281.tar.gz gcc-39a39c8504a4188f5fea639e1c0ddc8cb57a4281.tar.bz2 |
target-supports.exp (check_effective_target_nonpic): New procedure.
gcc/testsuite/
* lib/target-supports.exp (check_effective_target_nonpic): New
procedure.
* gcc.target/i386/20020616-1.c: Use an alternative to %ebx
when compiling PIC.
* gcc.target/i386/asm-4.c: Require nonpic.
* gcc.target/i386/cmov1.c: Likewise.
* gcc.target/i386/mul.c: Likewise.
* gcc.target/i386/pr21291.c: Require nonpic or ! ilp32.
* gcc.target/i386/ssetype-1.c: Require nonpic.
* gcc.target/i386/ssetype-3.c: Likewise.
* gcc.target/i386/ssetype-5.c: Likewise.
From-SVN: r123107
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 14 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/20020616-1.c | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/asm-4.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/cmov1.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/mul.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/pr21291.c | 7 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/ssetype-1.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/ssetype-3.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/ssetype-5.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/lib/target-supports.exp | 10 |
10 files changed, 48 insertions, 1 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 8be2829..656d05b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,19 @@ 2007-03-21 Richard Sandiford <richard@codesourcery.com> + * lib/target-supports.exp (check_effective_target_nonpic): New + procedure. + * gcc.target/i386/20020616-1.c: Use an alternative to %ebx + when compiling PIC. + * gcc.target/i386/asm-4.c: Require nonpic. + * gcc.target/i386/cmov1.c: Likewise. + * gcc.target/i386/mul.c: Likewise. + * gcc.target/i386/pr21291.c: Require nonpic or ! ilp32. + * gcc.target/i386/ssetype-1.c: Require nonpic. + * gcc.target/i386/ssetype-3.c: Likewise. + * gcc.target/i386/ssetype-5.c: Likewise. + +2007-03-21 Richard Sandiford <richard@codesourcery.com> + * gcc.c-torture/execute/builtins/chk.h (LOCAL): Define. * gcc.c-torture/execute/builtins/sprintf-chk.c (s1): Make LOCAL. * gcc.c-torture/execute/builtins/stpcpy-chk.c (s1): Likewise. diff --git a/gcc/testsuite/gcc.target/i386/20020616-1.c b/gcc/testsuite/gcc.target/i386/20020616-1.c index 6db7842..5946770 100644 --- a/gcc/testsuite/gcc.target/i386/20020616-1.c +++ b/gcc/testsuite/gcc.target/i386/20020616-1.c @@ -2,7 +2,13 @@ /* { dg-do run { target i?86-*-* x86_64-*-* } } */ /* { dg-options "-O2" } */ +#if !__PIC__ register int k asm("%ebx"); +#elif __amd64 +register int k asm("%r12"); +#else +register int k asm("%esi"); +#endif void __attribute__((noinline)) foo() diff --git a/gcc/testsuite/gcc.target/i386/asm-4.c b/gcc/testsuite/gcc.target/i386/asm-4.c index d077e3a..7ca0c1b 100644 --- a/gcc/testsuite/gcc.target/i386/asm-4.c +++ b/gcc/testsuite/gcc.target/i386/asm-4.c @@ -2,6 +2,8 @@ taken in C code, don't use alternate calling convention for local functions on IA-32. */ /* { dg-do run { target i?86-*-* x86_64-*-* } } */ +/* The asm in this test uses an absolute address. */ +/* { dg-require-effective-target nonpic } */ /* { dg-options "-O2" } */ extern void abort (void); diff --git a/gcc/testsuite/gcc.target/i386/cmov1.c b/gcc/testsuite/gcc.target/i386/cmov1.c index 9252d86..a20b213 100644 --- a/gcc/testsuite/gcc.target/i386/cmov1.c +++ b/gcc/testsuite/gcc.target/i386/cmov1.c @@ -1,4 +1,6 @@ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */ +/* This test checks for absolute memory operands. */ +/* { dg-require-effective-target nonpic } */ /* { dg-options "-O2 -march=k8" } */ /* { dg-final { scan-assembler "sar\[^\\n\]*magic_namea" } } */ /* { dg-final { scan-assembler "sar\[^\\n\]*magic_nameb" } } */ diff --git a/gcc/testsuite/gcc.target/i386/mul.c b/gcc/testsuite/gcc.target/i386/mul.c index 72069fe..d6e378d4 100644 --- a/gcc/testsuite/gcc.target/i386/mul.c +++ b/gcc/testsuite/gcc.target/i386/mul.c @@ -1,4 +1,6 @@ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */ +/* This test checks for absolute memory operands. */ +/* { dg-require-effective-target nonpic } */ /* { dg-options "-O2 -march=k8" } */ /* { dg-final { scan-assembler "and\[^\\n\]*magic" } } */ diff --git a/gcc/testsuite/gcc.target/i386/pr21291.c b/gcc/testsuite/gcc.target/i386/pr21291.c index acfc43d..f7348bd 100644 --- a/gcc/testsuite/gcc.target/i386/pr21291.c +++ b/gcc/testsuite/gcc.target/i386/pr21291.c @@ -1,4 +1,9 @@ -/* { dg-do compile } */ +/* The asm has 2 "r" in/out operands, 1 earlyclobber "r" output, 1 "r" + input and 2 fixed "r" clobbers (eax and edx), so there are a total of + 6 registers that must not conflict. Add to that the PIC register, + the frame pointer, and the stack pointer, and we've run out of + registers on 32-bit targets. */ +/* { dg-do compile { target { { ! ilp32 } || nonpic } } } */ /* { dg-options "-O" } */ typedef unsigned long bngdigit; diff --git a/gcc/testsuite/gcc.target/i386/ssetype-1.c b/gcc/testsuite/gcc.target/i386/ssetype-1.c index 47a6891..bd6dbbe 100644 --- a/gcc/testsuite/gcc.target/i386/ssetype-1.c +++ b/gcc/testsuite/gcc.target/i386/ssetype-1.c @@ -1,4 +1,6 @@ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */ +/* This test checks for absolute memory operands. */ +/* { dg-require-effective-target nonpic } */ /* { dg-options "-O2 -msse2 -march=k8" } */ /* { dg-final { scan-assembler "andpd\[^\\n\]*magic" } } */ /* { dg-final { scan-assembler "andnpd\[^\\n\]*magic" } } */ diff --git a/gcc/testsuite/gcc.target/i386/ssetype-3.c b/gcc/testsuite/gcc.target/i386/ssetype-3.c index cae79e5..3799896 100644 --- a/gcc/testsuite/gcc.target/i386/ssetype-3.c +++ b/gcc/testsuite/gcc.target/i386/ssetype-3.c @@ -1,4 +1,6 @@ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */ +/* This test checks for absolute memory operands. */ +/* { dg-require-effective-target nonpic } */ /* { dg-options "-O2 -msse2 -march=k8" } */ /* { dg-final { scan-assembler "andps\[^\\n\]*magic" } } */ /* { dg-final { scan-assembler "andnps\[^\\n\]*magic" } } */ diff --git a/gcc/testsuite/gcc.target/i386/ssetype-5.c b/gcc/testsuite/gcc.target/i386/ssetype-5.c index b03c83b..f9c257a 100644 --- a/gcc/testsuite/gcc.target/i386/ssetype-5.c +++ b/gcc/testsuite/gcc.target/i386/ssetype-5.c @@ -1,4 +1,6 @@ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */ +/* This test checks for absolute memory operands. */ +/* { dg-require-effective-target nonpic } */ /* { dg-options "-O2 -msse2 -march=k8" } */ /* { dg-final { scan-assembler "pand\[^\\n\]*magic" } } */ /* { dg-final { scan-assembler "pandn\[^\\n\]*magic" } } */ diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index 0215bf9..4e80b91 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -527,6 +527,16 @@ proc check_effective_target_mpaired_single { } { } "-mpaired-single"] } +# Return 1 if the current multilib does not generate PIC by default. + +proc check_effective_target_nonpic { } { + return [check_no_compiler_messages nonpic assembly { + #if __PIC__ + #error FOO + #endif + }] +} + # Return 1 if the target does not use a status wrapper. proc check_effective_target_unwrapped { } { |