aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/s390
diff options
context:
space:
mode:
authorStefan Schulze Frielinghaus <stefansf@linux.ibm.com>2024-03-13 11:07:03 +0100
committerStefan Schulze Frielinghaus <stefansf@linux.ibm.com>2024-03-13 11:07:03 +0100
commit4d049fadc25585e336c06e6b60b592f40ddbcc12 (patch)
treec030590c31160e05d7f8c5338ac005867469e9bf /gcc/config/s390
parenta63fb786f8564880c91a30b99fda6d8a44adf81d (diff)
downloadgcc-4d049fadc25585e336c06e6b60b592f40ddbcc12.zip
gcc-4d049fadc25585e336c06e6b60b592f40ddbcc12.tar.gz
gcc-4d049fadc25585e336c06e6b60b592f40ddbcc12.tar.bz2
s390: Fix TARGET_SECONDARY_RELOAD for non-SYMBOL_REFs
RTX X need not necessarily be a SYMBOL_REF and may e.g. be an UNSPEC_GOTENT for which SYMBOL_FLAG_NOTALIGN2_P fails. gcc/ChangeLog: * config/s390/s390.cc (s390_secondary_reload): Guard SYMBOL_FLAG_NOTALIGN2_P.
Diffstat (limited to 'gcc/config/s390')
-rw-r--r--gcc/config/s390/s390.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/config/s390/s390.cc b/gcc/config/s390/s390.cc
index c857b20..e639655 100644
--- a/gcc/config/s390/s390.cc
+++ b/gcc/config/s390/s390.cc
@@ -4779,7 +4779,7 @@ s390_secondary_reload (bool in_p, rtx x, reg_class_t rclass_i,
if (in_p
&& s390_loadrelative_operand_p (x, &symref, &offset)
&& mode == Pmode
- && !SYMBOL_FLAG_NOTALIGN2_P (symref)
+ && (!SYMBOL_REF_P (symref) || !SYMBOL_FLAG_NOTALIGN2_P (symref))
&& (offset & 1) == 1)
sri->icode = ((mode == DImode) ? CODE_FOR_reloaddi_larl_odd_addend_z10
: CODE_FOR_reloadsi_larl_odd_addend_z10);