diff options
author | Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> | 2024-03-13 11:07:03 +0100 |
---|---|---|
committer | Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> | 2024-03-13 11:07:03 +0100 |
commit | 4d049fadc25585e336c06e6b60b592f40ddbcc12 (patch) | |
tree | c030590c31160e05d7f8c5338ac005867469e9bf | |
parent | a63fb786f8564880c91a30b99fda6d8a44adf81d (diff) | |
download | gcc-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.
-rw-r--r-- | gcc/config/s390/s390.cc | 2 |
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); |