aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn David Anglin <danglin@gcc.gnu.org>2024-11-08 16:58:49 -0500
committerJohn David Anglin <danglin@gcc.gnu.org>2024-11-08 16:58:49 -0500
commit7175fece7df50326703e4ca8b49d7cc93a5e8dfe (patch)
tree32d703c8d253cd90b9d7bc246557a7d5750d7c82
parentc9db5322ae39a49db0728a0a4cb5003efb6ae668 (diff)
downloadgcc-7175fece7df50326703e4ca8b49d7cc93a5e8dfe.zip
gcc-7175fece7df50326703e4ca8b49d7cc93a5e8dfe.tar.gz
gcc-7175fece7df50326703e4ca8b49d7cc93a5e8dfe.tar.bz2
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.
-rw-r--r--gcc/config/pa/pa64-regs.h7
1 files changed, 2 insertions, 5 deletions
diff --git a/gcc/config/pa/pa64-regs.h b/gcc/config/pa/pa64-regs.h
index 3b9273c..90762e1 100644
--- a/gcc/config/pa/pa64-regs.h
+++ b/gcc/config/pa/pa64-regs.h
@@ -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.