OK /Marcus
On 3 April 2013 14:35, Tejas Belagod <tbela...@arm.com> wrote: > Hi, > > The attached patch fixes duplication in a test case for gcc.target/aarch64/. > > Tested on aarch64-none-elf. OK for trunk and branch? > > Thanks, > Tejas Belagod > ARM. > > 2013-04-03 Tejas Belagod <tejas.bela...@arm.com> > > testsuite/ > * gcc.target/aarch64/inc/asm-adder-clobber-lr.c: Remove duplication. > * gcc.target/aarch64/inc/asm-adder-no-clobber-lr.c: Likewise. > * gcc.target/aarch64/test-framepointer-1.c: Likewise. > * gcc.target/aarch64/test-framepointer-2.c: Likewise. > * gcc.target/aarch64/test-framepointer-3.c: Likewise. > * gcc.target/aarch64/test-framepointer-4.c: Likewise. > * gcc.target/aarch64/test-framepointer-5.c: Likewise. > * gcc.target/aarch64/test-framepointer-6.c: Likewise. > * gcc.target/aarch64/test-framepointer-7.c: Likewise. > * gcc.target/aarch64/test-framepointer-8.c: Likewise. > diff --git a/gcc/testsuite/gcc.target/aarch64/asm-adder-clobber-lr.c > b/gcc/testsuite/gcc.target/aarch64/asm-adder-clobber-lr.c > index 8a02abc..540c79b 100644 > --- a/gcc/testsuite/gcc.target/aarch64/asm-adder-clobber-lr.c > +++ b/gcc/testsuite/gcc.target/aarch64/asm-adder-clobber-lr.c > @@ -21,28 +21,3 @@ main (int argc, char** argv) > > return 0; > } > - > -extern void abort (void); > - > -int > -adder (int a, int b) > -{ > - int result; > - __asm__ ("add %w0,%w1,%w2" : "=r"(result) : "r"(a), "r"(b) : "x30"); > - return result; > -} > - > -int > -main (int argc, char** argv) > -{ > - int i; > - int total = argc; > - for (i = 0; i < 20; i++) > - total = adder (total, i); > - > - if (total != (190 + argc)) > - abort (); > - > - return 0; > -} > - > diff --git a/gcc/testsuite/gcc.target/aarch64/asm-adder-no-clobber-lr.c > b/gcc/testsuite/gcc.target/aarch64/asm-adder-no-clobber-lr.c > index f60cfd3..2543d50 100644 > --- a/gcc/testsuite/gcc.target/aarch64/asm-adder-no-clobber-lr.c > +++ b/gcc/testsuite/gcc.target/aarch64/asm-adder-no-clobber-lr.c > @@ -21,28 +21,3 @@ main (int argc, char** argv) > > return 0; > } > - > -extern void abort (void); > - > -int > -adder (int a, int b) > -{ > - int result; > - __asm__ ("add %w0,%w1,%w2" : "=r"(result) : "r"(a), "r"(b) : ); > - return result; > -} > - > -int > -main (int argc, char** argv) > -{ > - int i; > - int total = argc; > - for (i = 0; i < 20; i++) > - total = adder (total, i); > - > - if (total != (190 + argc)) > - abort (); > - > - return 0; > -} > - > diff --git a/gcc/testsuite/gcc.target/aarch64/test-framepointer-1.c > b/gcc/testsuite/gcc.target/aarch64/test-framepointer-1.c > index ae10959..e44ca6d 100644 > --- a/gcc/testsuite/gcc.target/aarch64/test-framepointer-1.c > +++ b/gcc/testsuite/gcc.target/aarch64/test-framepointer-1.c > @@ -13,18 +13,3 @@ > /* { dg-final { scan-assembler-times "stp\tx29, x30, \\\[sp, > -\[0-9\]+\\\]!" 2 } } */ > > /* { dg-final { cleanup-saved-temps } } */ > -/* { dg-do run } */ > -/* { dg-options "-O2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer > -fno-inline --save-temps" } */ > - > -#include "asm-adder-no-clobber-lr.c" > - > -/* omit-frame-pointer is FALSE. > - omit-leaf-frame-pointer is FALSE. > - LR is not being clobbered in the leaf. > - > - With no frame pointer omissions, we expect a frame record > - for main and the leaf. */ > - > -/* { dg-final { scan-assembler-times "stp\tx29, x30, \\\[sp, > -\[0-9\]+\\\]!" 2 } } */ > - > -/* { dg-final { cleanup-saved-temps } } */ > diff --git a/gcc/testsuite/gcc.target/aarch64/test-framepointer-2.c > b/gcc/testsuite/gcc.target/aarch64/test-framepointer-2.c > index 71bc58d..40e4835 100644 > --- a/gcc/testsuite/gcc.target/aarch64/test-framepointer-2.c > +++ b/gcc/testsuite/gcc.target/aarch64/test-framepointer-2.c > @@ -13,18 +13,3 @@ > /* { dg-final { scan-assembler-not "stp\tx29, x30, \\\[sp, -\[0-9\]+\\\]!" > } } */ > > /* { dg-final { cleanup-saved-temps } } */ > -/* { dg-do run } */ > -/* { dg-options "-O2 -fomit-frame-pointer -mno-omit-leaf-frame-pointer > -fno-inline --save-temps" } */ > - > -#include "asm-adder-no-clobber-lr.c" > - > -/* omit-frame-pointer is TRUE. > - omit-leaf-frame-pointer is false, but irrelevant due to > omit-frame-pointer. > - LR is not being clobbered in the leaf. > - > - Since we asked to have no frame pointers anywhere, we expect no frame > - record in main or the leaf. */ > - > -/* { dg-final { scan-assembler-not "stp\tx29, x30, \\\[sp, -\[0-9\]+\\\]!" > } } */ > - > -/* { dg-final { cleanup-saved-temps } } */ > diff --git a/gcc/testsuite/gcc.target/aarch64/test-framepointer-3.c > b/gcc/testsuite/gcc.target/aarch64/test-framepointer-3.c > index de1b32c..98cb2e0 100644 > --- a/gcc/testsuite/gcc.target/aarch64/test-framepointer-3.c > +++ b/gcc/testsuite/gcc.target/aarch64/test-framepointer-3.c > @@ -13,18 +13,3 @@ > /* { dg-final { scan-assembler-not "stp\tx29, x30, \\\[sp, -\[0-9\]+\\\]!" > } } */ > > /* { dg-final { cleanup-saved-temps } } */ > -/* { dg-do run } */ > -/* { dg-options "-O2 -fomit-frame-pointer -momit-leaf-frame-pointer > -fno-inline --save-temps" } */ > - > -#include "asm-adder-no-clobber-lr.c" > - > -/* omit-frame-pointer is TRUE. > - omit-leaf-frame-pointer is true, but irrelevant due to > omit-frame-pointer. > - LR is not being clobbered in the leaf. > - > - Since we asked to have no frame pointers anywhere, we expect no frame > - record in main or the leaf. */ > - > -/* { dg-final { scan-assembler-not "stp\tx29, x30, \\\[sp, -\[0-9\]+\\\]!" > } } */ > - > -/* { dg-final { cleanup-saved-temps } } */ > diff --git a/gcc/testsuite/gcc.target/aarch64/test-framepointer-4.c > b/gcc/testsuite/gcc.target/aarch64/test-framepointer-4.c > index d339263..4143a7a 100644 > --- a/gcc/testsuite/gcc.target/aarch64/test-framepointer-4.c > +++ b/gcc/testsuite/gcc.target/aarch64/test-framepointer-4.c > @@ -14,19 +14,3 @@ > /* { dg-final { scan-assembler-times "stp\tx29, x30, \\\[sp, > -\[0-9\]+\\\]!" 1 } } */ > > /* { dg-final { cleanup-saved-temps } } */ > -/* { dg-do run } */ > -/* { dg-options "-O2 -fno-omit-frame-pointer -momit-leaf-frame-pointer > -fno-inline --save-temps" } */ > - > -#include "asm-adder-no-clobber-lr.c" > - > -/* omit-frame-pointer is FALSE. > - omit-leaf-frame-pointer is TRUE. > - LR is not being clobbered in the leaf. > - > - Unless we are removing all frame records, it's OK to remove the frame > - record for a leaf where LR is not clobbered. Therefore, we expect a > - frame record only in main. */ > - > -/* { dg-final { scan-assembler-times "stp\tx29, x30, \\\[sp, > -\[0-9\]+\\\]!" 1 } } */ > - > -/* { dg-final { cleanup-saved-temps } } */ > diff --git a/gcc/testsuite/gcc.target/aarch64/test-framepointer-5.c > b/gcc/testsuite/gcc.target/aarch64/test-framepointer-5.c > index 4be297a..c22bdc3 100644 > --- a/gcc/testsuite/gcc.target/aarch64/test-framepointer-5.c > +++ b/gcc/testsuite/gcc.target/aarch64/test-framepointer-5.c > @@ -13,18 +13,3 @@ > /* { dg-final { scan-assembler-times "stp\tx29, x30, \\\[sp, > -\[0-9\]+\\\]!" 2 } } */ > > /* { dg-final { cleanup-saved-temps } } */ > -/* { dg-do run } */ > -/* { dg-options "-O2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer > -fno-inline --save-temps" } */ > - > -#include "asm-adder-clobber-lr.c" > - > -/* omit-frame-pointer is FALSE. > - omit-leaf-frame-pointer is FALSE. > - LR is being clobbered in the leaf. > - > - With no frame pointer omissions, we expect a frame record for main > - and the leaf. */ > - > -/* { dg-final { scan-assembler-times "stp\tx29, x30, \\\[sp, > -\[0-9\]+\\\]!" 2 } } */ > - > -/* { dg-final { cleanup-saved-temps } } */ > diff --git a/gcc/testsuite/gcc.target/aarch64/test-framepointer-6.c > b/gcc/testsuite/gcc.target/aarch64/test-framepointer-6.c > index bf53962..e08ee43 100644 > --- a/gcc/testsuite/gcc.target/aarch64/test-framepointer-6.c > +++ b/gcc/testsuite/gcc.target/aarch64/test-framepointer-6.c > @@ -13,18 +13,3 @@ > /* { dg-final { scan-assembler-not "stp\tx29, x30, \\\[sp, -\[0-9\]+\\\]!" > } } */ > > /* { dg-final { cleanup-saved-temps } } */ > -/* { dg-do run } */ > -/* { dg-options "-O2 -fomit-frame-pointer -mno-omit-leaf-frame-pointer > -fno-inline --save-temps" } */ > - > -#include "asm-adder-clobber-lr.c" > - > -/* omit-frame-pointer is TRUE. > - omit-leaf-frame-pointer is false, but irrelevant due to > omit-frame-pointer. > - LR is being clobbered in the leaf. > - > - Since we asked to have no frame pointers anywhere, we expect no frame > - record in main or the leaf. */ > - > -/* { dg-final { scan-assembler-not "stp\tx29, x30, \\\[sp, -\[0-9\]+\\\]!" > } } */ > - > -/* { dg-final { cleanup-saved-temps } } */ > diff --git a/gcc/testsuite/gcc.target/aarch64/test-framepointer-7.c > b/gcc/testsuite/gcc.target/aarch64/test-framepointer-7.c > index 9e88ae3..e8f7cab 100644 > --- a/gcc/testsuite/gcc.target/aarch64/test-framepointer-7.c > +++ b/gcc/testsuite/gcc.target/aarch64/test-framepointer-7.c > @@ -13,18 +13,3 @@ > /* { dg-final { scan-assembler-not "stp\tx29, x30, \\\[sp, -\[0-9\]+\\\]!" > } } */ > > /* { dg-final { cleanup-saved-temps } } */ > -/* { dg-do run } */ > -/* { dg-options "-O2 -fomit-frame-pointer -momit-leaf-frame-pointer > -fno-inline --save-temps" } */ > - > -#include "asm-adder-clobber-lr.c" > - > -/* omit-frame-pointer is TRUE. > - omit-leaf-frame-pointer is true, but irrelevant due to > omit-frame-pointer. > - LR is being clobbered in the leaf. > - > - Since we asked to have no frame pointers anywhere, we expect no frame > - record in main or the leaf. */ > - > -/* { dg-final { scan-assembler-not "stp\tx29, x30, \\\[sp, -\[0-9\]+\\\]!" > } } */ > - > -/* { dg-final { cleanup-saved-temps } } */ > diff --git a/gcc/testsuite/gcc.target/aarch64/test-framepointer-8.c > b/gcc/testsuite/gcc.target/aarch64/test-framepointer-8.c > index 08d7667..c09b687 100644 > --- a/gcc/testsuite/gcc.target/aarch64/test-framepointer-8.c > +++ b/gcc/testsuite/gcc.target/aarch64/test-framepointer-8.c > @@ -14,19 +14,3 @@ > /* { dg-final { scan-assembler-times "stp\tx29, x30, \\\[sp, > -\[0-9\]+\\\]!" 2 } } */ > > /* { dg-final { cleanup-saved-temps } } */ > -/* { dg-do run } */ > -/* { dg-options "-O2 -fno-omit-frame-pointer -momit-leaf-frame-pointer > -fno-inline --save-temps" } */ > - > -#include "asm-adder-clobber-lr.c" > - > -/* omit-frame-pointer is FALSE. > - omit-leaf-frame-pointer is TRUE. > - LR is being clobbered in the leaf. > - > - Unless we are removing all frame records (which we aren't), it's > - not OK to remove the frame record for a leaf where LR is clobbered. > - Therefore, we expect a frame record in main and leaf. */ > - > -/* { dg-final { scan-assembler-times "stp\tx29, x30, \\\[sp, > -\[0-9\]+\\\]!" 2 } } */ > - > -/* { dg-final { cleanup-saved-temps } } */