Hello!

Attached patch adds nonpic target requirement for some (obvious)
cases, where data access or PIC register setup confuses scan-asms.

2015-01-30  Uros Bizjak  <ubiz...@gmail.com>

    * gcc.target/i386/fuse-caller-save-rec.c: Require nonpic target.
    * gcc.target/i386/fuse-caller-save-xmm.c: Ditto.
    * gcc.target/i386/fuse-caller-save.c: Ditto.
    * gcc.target/i386/headmerge-1.c: Ditto.
    * gcc.target/i386/headmerge-2.c: Ditto.
    * gcc.target/i386/sibcall-6.c: Ditto.

Tested on x86_64-linux-gnu {-m32} /-fpic and committed to mainline SVN.

Uros.
Index: gcc.target/i386/fuse-caller-save-rec.c
===================================================================
--- gcc.target/i386/fuse-caller-save-rec.c      (revision 220294)
+++ gcc.target/i386/fuse-caller-save-rec.c      (working copy)
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
+/* { dg-require-effective-target nonpic } */
 /* { dg-options "-O2 -fipa-ra -fomit-frame-pointer 
-fno-optimize-sibling-calls" } */
 /* { dg-additional-options "-mregparm=1" { target ia32 } } */
 
Index: gcc.target/i386/fuse-caller-save-xmm.c
===================================================================
--- gcc.target/i386/fuse-caller-save-xmm.c      (revision 220294)
+++ gcc.target/i386/fuse-caller-save-xmm.c      (working copy)
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
+/* { dg-require-effective-target nonpic } */
 /* { dg-options "-O2 -msse2 -mno-avx -fipa-ra -fomit-frame-pointer" } */
 
 typedef double v2df __attribute__((vector_size (16)));
Index: gcc.target/i386/fuse-caller-save.c
===================================================================
--- gcc.target/i386/fuse-caller-save.c  (revision 220294)
+++ gcc.target/i386/fuse-caller-save.c  (working copy)
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
+/* { dg-require-effective-target nonpic } */
 /* { dg-options "-O2 -fipa-ra -fomit-frame-pointer" } */
 /* { dg-additional-options "-mregparm=1" { target ia32 } } */
 
Index: gcc.target/i386/headmerge-1.c
===================================================================
--- gcc.target/i386/headmerge-1.c       (revision 220294)
+++ gcc.target/i386/headmerge-1.c       (working copy)
@@ -1,4 +1,5 @@
 /* { dg-do compile }  */
+/* { dg-require-effective-target nonpic } */
 /* { dg-options "-O2" }  */
 /* { dg-final { scan-assembler-times "\\\$120|, 120" 1 } } */
 
Index: gcc.target/i386/headmerge-2.c
===================================================================
--- gcc.target/i386/headmerge-2.c       (revision 220294)
+++ gcc.target/i386/headmerge-2.c       (working copy)
@@ -1,4 +1,5 @@
 /* { dg-do compile }  */
+/* { dg-require-effective-target nonpic } */
 /* { dg-options "-O2" }  */
 /* { dg-final { scan-assembler-times "\\\$120|, 120" 1 } } */
 
Index: gcc.target/i386/sibcall-6.c
===================================================================
--- gcc.target/i386/sibcall-6.c (revision 220294)
+++ gcc.target/i386/sibcall-6.c (working copy)
@@ -1,4 +1,5 @@
 /* { dg-do compile { target ia32 } } */
+/* { dg-require-effective-target nonpic } */
 /* { dg-options "-O2" } */
 
 typedef void *ira_loop_tree_node_t;

Reply via email to