hppa: Don't allow mode size 32 in hard registers

LRA has problems handling spills for OI mode.  There are issues with
SUBREG support as well.

2024-11-08  John David Anglin  <danglin@gcc.gnu.org>

gcc/ChangeLog:

	PR target/117238
	* config/pa/pa64-regs.h (PA_HARD_REGNO_MODE_OK): Don't allow
	mode size 32.
This commit is contained in:
John David Anglin 2024-11-08 16:58:49 -05:00
parent c9db5322ae
commit 7175fece7d

View file

@ -157,13 +157,10 @@ along with GCC; see the file COPYING3. If not see
: FP_REGNO_P (REGNO) \
? (VALID_FP_MODE_P (MODE) \
&& (GET_MODE_SIZE (MODE) <= 8 \
|| (GET_MODE_SIZE (MODE) == 16 && ((REGNO) & 1) == 0) \
|| (GET_MODE_SIZE (MODE) == 32 && ((REGNO) & 3) == 0))) \
|| (GET_MODE_SIZE (MODE) == 16 && ((REGNO) & 1) == 0))) \
: (GET_MODE_SIZE (MODE) <= UNITS_PER_WORD \
|| (GET_MODE_SIZE (MODE) == 2 * UNITS_PER_WORD \
&& ((((REGNO) & 1) == 1 && (REGNO) <= 25) || (REGNO) == 28)) \
|| (GET_MODE_SIZE (MODE) == 4 * UNITS_PER_WORD \
&& ((REGNO) & 3) == 3 && (REGNO) <= 23)))
&& ((((REGNO) & 1) == 1 && (REGNO) <= 25) || (REGNO) == 28))))
/* How to renumber registers for gdb.