https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124804

--- Comment #29 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Searching for REG_WORDS_BIG_ENDIAN, there are quite a few cases:
ira.cc:       if (REG_WORDS_BIG_ENDIAN)
ira.cc:           if (REG_WORDS_BIG_ENDIAN)
ira-color.cc:             if (REG_WORDS_BIG_ENDIAN)
ira-color.cc:     if (REG_WORDS_BIG_ENDIAN)
ira-color.cc:                     if (REG_WORDS_BIG_ENDIAN)
reload.cc:      /* On a REG_WORDS_BIG_ENDIAN machine, point to the last
register of a
reload.cc:      if (REG_WORDS_BIG_ENDIAN
reload.cc:      if (REG_WORDS_BIG_ENDIAN
reload.cc:  if (REG_WORDS_BIG_ENDIAN)
rtlanal.cc:      if (REG_WORDS_BIG_ENDIAN)
rtlanal.cc:       && WORDS_BIG_ENDIAN == REG_WORDS_BIG_ENDIAN
rtlanal.cc:  if (WORDS_BIG_ENDIAN != REG_WORDS_BIG_ENDIAN)
so I'm afraid just tweaking rtlanal.cc wouldn't be enough.
Guess if we want say introduce a target hook that will handle like
REG_WORDS_BIG_ENDIAN
only some modes or or mode/hard reg pairs and keep others as is it would need
to change all those spots.
And the question is if that can be changed, if there aren't say instructions to
load a pair of general purpose registers (say for TImode loads/stores).
In any case, changing that this late seems to be quite risky, so I think
reverting the patch might be best temporary solution for GCC 16.
Thoughts on that?

Reply via email to