aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDavid Edelsohn <dje.gcc@gmail.com>2014-12-08 23:47:39 +0000
committerDavid Edelsohn <dje@gcc.gnu.org>2014-12-08 18:47:39 -0500
commitca9f165c10137135232bbf89f2f0cbd7969e4531 (patch)
tree8840340860d509ce5e64bbce60b4032baa85b108 /gcc
parentbc3518da23383b0e173020a46334fe22b6b67891 (diff)
downloadgcc-ca9f165c10137135232bbf89f2f0cbd7969e4531.zip
gcc-ca9f165c10137135232bbf89f2f0cbd7969e4531.tar.gz
gcc-ca9f165c10137135232bbf89f2f0cbd7969e4531.tar.bz2
re PR target/64226 (Secondary reload incorrect TOC address)
PR target/64226 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner) [SYMBOL_REF]: Do not explicitly call create_TOC_reference for TARGET_TOC. Always use rs6000_emit_move. From-SVN: r218497
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/rs6000/rs6000.c7
2 files changed, 8 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8e8de74..8154a32 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2014-12-08 David Edelsohn <dje.gcc@gmail.com>
+
+ PR target/64226
+ * config/rs6000/rs6000.c (rs6000_secondary_reload_inner)
+ [SYMBOL_REF]: Do not explicitly call create_TOC_reference for
+ TARGET_TOC. Always use rs6000_emit_move.
+
2014-12-08 Mark Wielaard <mjw@redhat.com>
PR debug/60782
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 8c492cc..f3818e6 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -17379,12 +17379,7 @@ rs6000_secondary_reload_inner (rtx reg, rtx mem, rtx scratch, bool store_p)
case SYMBOL_REF:
case CONST:
case LABEL_REF:
- if (TARGET_TOC)
- emit_insn (gen_rtx_SET (VOIDmode, scratch,
- create_TOC_reference (addr, scratch)));
- else
- rs6000_emit_move (scratch, addr, Pmode);
-
+ rs6000_emit_move (scratch, addr, Pmode);
new_addr = scratch;
break;