From cf9d76188a45f75f60b307b8a776279d6ad5e630 Mon Sep 17 00:00:00 2001 From: Angel Nunez Mencias Date: Mon, 20 Feb 2006 08:42:27 +0000 Subject: [PATCH] s390.c (legitimize_pic_address): Assertions checking for non tls symbols added. 2006-02-20 Angel Nunez Mencias * 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 --- gcc/ChangeLog | 7 +++++++ gcc/config/s390/s390.c | 12 ++++++++++++ 2 files changed, 19 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 51a0635..ce38f18 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2006-02-20 Angel Nunez Mencias + + * 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 PR bootstrap/25476 diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c index bdf1512..3eeb4ac 100644 --- a/gcc/config/s390/s390.c +++ b/gcc/config/s390/s390.c @@ -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) -- 2.7.4