diff options
author | Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | 2010-04-08 14:48:46 +0000 |
---|---|---|
committer | Rainer Orth <ro@gcc.gnu.org> | 2010-04-08 14:48:46 +0000 |
commit | 07c60ef701e0fe0c65f0186bd521ee83b6c24c3c (patch) | |
tree | 2c8a2c35bebf2ab5882be552d4f7a157dba3d12d /gcc | |
parent | 3e2f637e5c72b26c1d102f15cdc2f08b5d505401 (diff) | |
download | gcc-07c60ef701e0fe0c65f0186bd521ee83b6c24c3c.zip gcc-07c60ef701e0fe0c65f0186bd521ee83b6c24c3c.tar.gz gcc-07c60ef701e0fe0c65f0186bd521ee83b6c24c3c.tar.bz2 |
re PR target/43643 (gcc -m64 -pg corrupts %rdx / %rcx register)
gcc:
PR target/43643
* config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
gcc/testsuite:
PR target/43643
* gcc.dg/pr43643.c: New test.
From-SVN: r158130
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/i386/gmon-sol2.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr43643.c | 24 |
4 files changed, 35 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e23b3fb..0d9eb6d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2010-04-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + PR target/43643 + * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx. + +2010-04-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar. (Specific, *-*-solaris2*): Likewise. Don't prefer Sun as over GNU as. diff --git a/gcc/config/i386/gmon-sol2.c b/gcc/config/i386/gmon-sol2.c index e0923a0..fb813a1 100644 --- a/gcc/config/i386/gmon-sol2.c +++ b/gcc/config/i386/gmon-sol2.c @@ -275,7 +275,7 @@ asm(".globl _mcount\n" "\tmovq\t0x20(%rsp),%rdi\n" "\tmovq\t0x18(%rsp),%rsi\n" "\tmovq\t0x10(%rsp),%rdx\n" - "\tmovq\t0x08(%rsp),%rdx\n" + "\tmovq\t0x08(%rsp),%rcx\n" "\tmovq\t(%rsp),%rax\n" "\taddq\t$0x38,%rsp\n" "\tretq\n" diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d46f375..738ee29 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2010-04-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + PR target/43643 + * gcc.dg/pr43643.c: New test. + 2010-04-08 Tobias Burnus <burnus@net-b.de> * gfortran.dg/iso_fortran_env_6.f90: Add more checks. diff --git a/gcc/testsuite/gcc.dg/pr43643.c b/gcc/testsuite/gcc.dg/pr43643.c new file mode 100644 index 0000000..7fbbfc2 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr43643.c @@ -0,0 +1,24 @@ +/* Contributed by Jürgen Keil <jrgn.keil@googlemail.com> */ + +/* { dg-do run } */ +/* { dg-require-profiling "-pg" } */ +/* { dg-options "-O2 -pg" } */ + +extern char *strdup (const char *); + +void +func(char *a, char *b, char *c) +{ + strdup(a); + strdup(b); + strdup(c); +} + +int +main(void) +{ + func("a", "b", "c"); + return 0; +} + +/* { dg-final { cleanup-profile-file } } */ |