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): Revert previous change.
	* config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
	references.

From-SVN: r194880
This commit is contained in:
John David Anglin 2013-01-04 04:03:18 +00:00 committed by John David Anglin
parent 3a4451c2a7
commit 3b99a733ac
3 changed files with 10 additions and 13 deletions

View File

@ -1,3 +1,10 @@
2013-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR target/53789
* config/pa/pa.md (movsi): Revert previous change.
* config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
references.
2013-01-02 Rainer Emrich <rainer@emrich-ebersheim.de>
PR bootstrap/55707

View File

@ -10328,14 +10328,10 @@ pa_legitimate_constant_p (enum machine_mode mode, rtx x)
return false;
/* TLS_MODEL_GLOBAL_DYNAMIC and TLS_MODEL_LOCAL_DYNAMIC are not
legitimate constants. */
legitimate constants. The other variants can't be handled by
the move patterns after reload starts. */
if (PA_SYMBOL_REF_TLS_P (x))
{
enum tls_model model = SYMBOL_REF_TLS_MODEL (x);
if (model == TLS_MODEL_GLOBAL_DYNAMIC || model == TLS_MODEL_LOCAL_DYNAMIC)
return false;
}
return false;
if (TARGET_64BIT && GET_CODE (x) == CONST_DOUBLE)
return false;

View File

@ -2051,12 +2051,6 @@
""
"
{
/* 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;
}")