aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/pa/pa.md
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/pa/pa.md')
-rw-r--r--gcc/config/pa/pa.md6
1 files changed, 6 insertions, 0 deletions
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;
}")