diff options
author | James Lemke <jim@wasabisystems.com> | 2003-12-16 22:38:58 +0000 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 2003-12-16 14:38:58 -0800 |
commit | 6d43c524dd8eb5db820457d828749406c66d1f0a (patch) | |
tree | 1a2a553faf55d16bdd3d4e470832137ff3a4a0d6 /gcc | |
parent | 9e129d901c529cf5fa99f0ae678932cad0df2ce1 (diff) | |
download | gcc-6d43c524dd8eb5db820457d828749406c66d1f0a.zip gcc-6d43c524dd8eb5db820457d828749406c66d1f0a.tar.gz gcc-6d43c524dd8eb5db820457d828749406c66d1f0a.tar.bz2 |
xscale testcases from James Lemke
xscale testcases from James Lemke
* gcc.dg/arm-scd42-[123].c: New tests.
From-SVN: r74712
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/arm-scd42-1.c | 15 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/arm-scd42-2.c | 17 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/arm-scd42-3.c | 15 |
4 files changed, 51 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index a2d9eaf..3bb7afc 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2003-12-16 James Lemke <jim@wasabisystems.com> + + * gcc.dg/arm-scd42-[123].c: New tests. + 2003-12-16 Nathan Sidwell <nathan@codesourcery.com> PR c++/9043 diff --git a/gcc/testsuite/gcc.dg/arm-scd42-1.c b/gcc/testsuite/gcc.dg/arm-scd42-1.c new file mode 100644 index 0000000..70b34de --- /dev/null +++ b/gcc/testsuite/gcc.dg/arm-scd42-1.c @@ -0,0 +1,15 @@ +/* Verify that mov is preferred on XScale for loading a 1 byte constant. */ +/* { dg-do compile { target xscale-*-* } } */ +/* { dg-options "-mcpu=xscale -O" } */ + +unsigned load1(void) __attribute__ ((naked)); +unsigned load1(void) +{ + /* Best code would be: + mov r0, =17 + mov pc, lr */ + + return 17; +} + +/* { dg-final { scan-assembler "mov\[ ].*17" } } */ diff --git a/gcc/testsuite/gcc.dg/arm-scd42-2.c b/gcc/testsuite/gcc.dg/arm-scd42-2.c new file mode 100644 index 0000000..75e7274 --- /dev/null +++ b/gcc/testsuite/gcc.dg/arm-scd42-2.c @@ -0,0 +1,17 @@ +/* Verify that mov is preferred on XScale for loading a 2 byte constant. */ +/* { dg-do compile { target xscale-*-* } } */ +/* { dg-options "-mcpu=xscale -O" } */ + +unsigned load2(void) __attribute__ ((naked)); +unsigned load2(void) +{ + /* Best code would be: + mov r0, =272 + add r0, r0, =1 + mov pc, lr */ + + return 273; +} + +/* We want to suppress running for -mthumb but not for -mthumb-interwork. */ +/* { dg-final { global compiler_flags; if ![string match "*-mthumb *" $compiler_flags] { scan-assembler "mov\[ ].*272" } } } */ diff --git a/gcc/testsuite/gcc.dg/arm-scd42-3.c b/gcc/testsuite/gcc.dg/arm-scd42-3.c new file mode 100644 index 0000000..80a4ba8 --- /dev/null +++ b/gcc/testsuite/gcc.dg/arm-scd42-3.c @@ -0,0 +1,15 @@ +/* Verify that ldr is preferred on XScale for loading a 3 or 4 byte constant. */ +/* { dg-do compile { target xscale-*-* } } */ +/* { dg-options "-mcpu=xscale -O" } */ + +unsigned load4(void) __attribute__ ((naked)); +unsigned load4(void) +{ + /* Best code would be: + ldr r0, =65809 + mov pc, lr */ + + return 65809; +} + +/* { dg-final { scan-assembler "ldr\[ ].*" } } */ |