s390.c (legitimize_pic_address): Assertions checking for non tls symbols added.

2006-02-20  Angel Nunez Mencias  <anunez@de.ibm.com>

	* config/s390/s390.c (legitimize_pic_address): Assertions checking
	for non tls symbols added.
	(legitimize_address): Do nothing for PLUS expressions if one of the
	addends is a tls symbol reference.

From-SVN: r111296
This commit is contained in:
Angel Nunez Mencias 2006-02-20 08:42:27 +00:00 committed by Andreas Krebbel
parent cc11cc9b0f
commit cf9d76188a
2 changed files with 19 additions and 0 deletions

View File

@ -1,3 +1,10 @@
2006-02-20 Angel Nunez Mencias <anunez@de.ibm.com>
* config/s390/s390.c (legitimize_pic_address): Assertions checking
for non tls symbols added.
(legitimize_address): Do nothing for PLUS expressions if one of the
addends is a tls symbol reference.
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/25476

View File

@ -2821,6 +2821,8 @@ legitimize_pic_address (rtx orig, rtx reg)
rtx new = orig;
rtx base;
gcc_assert (!TLS_SYMBOLIC_CONST (addr));
if (GET_CODE (addr) == LABEL_REF
|| (GET_CODE (addr) == SYMBOL_REF && SYMBOL_REF_LOCAL_P (addr)))
{
@ -2973,6 +2975,10 @@ legitimize_pic_address (rtx orig, rtx reg)
if (GET_CODE (addr) == PLUS)
{
rtx op0 = XEXP (addr, 0), op1 = XEXP (addr, 1);
gcc_assert (!TLS_SYMBOLIC_CONST (op0));
gcc_assert (!TLS_SYMBOLIC_CONST (op1));
/* Check first to see if this is a constant offset
from a local symbol reference. */
if ((GET_CODE (op0) == LABEL_REF
@ -3345,6 +3351,12 @@ legitimize_address (rtx x, rtx oldx ATTRIBUTE_UNUSED,
if (legitimate_address_p (mode, x, FALSE))
return x;
}
else if (GET_CODE (x) == PLUS
&& (TLS_SYMBOLIC_CONST (XEXP (x, 0))
|| TLS_SYMBOLIC_CONST (XEXP (x, 1))))
{
return x;
}
else if (flag_pic)
{
if (SYMBOLIC_CONST (x)