aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn David Anglin <dave.anglin@nrc-cnrc.gc.ca>2012-12-25 17:57:35 +0000
committerJohn David Anglin <danglin@gcc.gnu.org>2012-12-25 17:57:35 +0000
commite255044e71508a6cd8023614b0ccd178803e9619 (patch)
treec153fa1c541c6b370522c41960b28ad3ed44de8c
parent1eb4a0c95320d9e1c10bf6b278b3c283b079b1e7 (diff)
downloadgcc-e255044e71508a6cd8023614b0ccd178803e9619.zip
gcc-e255044e71508a6cd8023614b0ccd178803e9619.tar.gz
gcc-e255044e71508a6cd8023614b0ccd178803e9619.tar.bz2
re PR target/53789 (ICE in gen_reg_rtx, at emit-rtl.c:864/865 when compiling GNU MPFR on parisc)
PR target/53789 * config/pa/pa.md (movsi): Reject expansion of TLS symbol references after reload starts. From-SVN: r194714
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/pa/pa.md6
2 files changed, 12 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d625bb1..1c43d8a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2012-12-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR target/53789
+ * config/pa/pa.md (movsi): Reject expansion of TLS symbol references
+ after reload starts.
+
2012-12-22 Jan Hubicka <jh@suse.cz>
PR lto/54728
diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md
index 9c6a361..5cef94b 100644
--- a/gcc/config/pa/pa.md
+++ b/gcc/config/pa/pa.md
@@ -2094,6 +2094,12 @@
""
"
{
+ /* A TLS symbol reference is not a valid move source operand.
+ pa_emit_move_sequence can only handle them prior to reload.
+ There is also no way to reload a TLS symbol reference, so
+ we must reject them after reload starts. */
+ if (PA_SYMBOL_REF_TLS_P (operands[1]) && !can_create_pseudo_p ())
+ FAIL;
if (pa_emit_move_sequence (operands, SImode, 0))
DONE;
}")