diff options
author | Alan Modra <amodra@gmail.com> | 2014-02-06 23:55:38 +1030 |
---|---|---|
committer | Alan Modra <amodra@gcc.gnu.org> | 2014-02-06 23:55:38 +1030 |
commit | fdcee33b242a61a3915cac4ed25a43c0d8aa157f (patch) | |
tree | 91069a65de38f742a841b866c79ff38fff7e589e | |
parent | d3ef8c53165ee3bb2adfc7134e61942d8b0a5ca9 (diff) | |
download | gcc-fdcee33b242a61a3915cac4ed25a43c0d8aa157f.zip gcc-fdcee33b242a61a3915cac4ed25a43c0d8aa157f.tar.gz gcc-fdcee33b242a61a3915cac4ed25a43c0d8aa157f.tar.bz2 |
re PR target/60032 (ICE in reload_cse_simplify_operands, at postreload.c:411)
PR target/60032
gcc/
* config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
change SDmode to DDmode when lra_in_progress.
gcc/testsuite/
* gcc.target/powerpc/pr60032.c: New.
From-SVN: r207553
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/powerpc/pr60032.c | 13 |
4 files changed, 24 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2d68ee2..c5f0280 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2014-02-06 Alan Modra <amodra@gmail.com> + + PR target/60032 + * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only + change SDmode to DDmode when lra_in_progress. + 2014-02-06 Jakub Jelinek <jakub@redhat.com> PR middle-end/59150 diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index fd45bd1..10bdf32 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -15581,7 +15581,7 @@ rs6000_secondary_memory_needed_rtx (enum machine_mode mode) enum machine_mode rs6000_secondary_memory_needed_mode (enum machine_mode mode) { - if (mode == SDmode) + if (lra_in_progress && mode == SDmode) return DDmode; return mode; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 552b591..43883ce 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2014-02-06 Alan Modra <amodra@gmail.com> + + * gcc.target/powerpc/pr60032.c: New. + 2014-02-06 Jakub Jelinek <jakub@redhat.com> PR target/60062 diff --git a/gcc/testsuite/gcc.target/powerpc/pr60032.c b/gcc/testsuite/gcc.target/powerpc/pr60032.c new file mode 100644 index 0000000..e1115b8 --- /dev/null +++ b/gcc/testsuite/gcc.target/powerpc/pr60032.c @@ -0,0 +1,13 @@ +/* { dg-do compile { target { powerpc*-*-* } } } */ +/* { dg-require-effective-target dfp } */ +/* { dg-options "-O2" } */ + +void foo (void) +{ + register float __attribute__ ((mode(SD))) r31 __asm__ ("r31"); + register float __attribute__ ((mode(SD))) fr1 __asm__ ("fr1"); + + __asm__ ("#" : "=d" (fr1)); + r31 = fr1; + __asm__ ("#" : : "r" (r31)); +} |