aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/pa/pa.h
diff options
context:
space:
mode:
authorJohn David Anglin <danglin@gcc.gnu.org>2024-03-23 13:47:31 +0000
committerJohn David Anglin <danglin@gcc.gnu.org>2024-03-23 13:47:31 +0000
commit2e4b3374cb7af10e188bb5100526ad3150b9b272 (patch)
tree1f319e28aae80e71cff3f0ccc5c6cecfab0d0db9 /gcc/config/pa/pa.h
parent543585046d17add37c0108b06d2884d0e03cedde (diff)
downloadgcc-2e4b3374cb7af10e188bb5100526ad3150b9b272.zip
gcc-2e4b3374cb7af10e188bb5100526ad3150b9b272.tar.gz
gcc-2e4b3374cb7af10e188bb5100526ad3150b9b272.tar.bz2
hppa: Fix LO_SUM DLTIND14R address support in PRINT_OPERAND_ADDRESS
This bug was hidden since LO_SUM DLTIND14R addresses are normally handled by the A constraint in the move patterns. 2024-03-23 John David Anglin <danglin@gcc.gnu.org> gcc/ChangeLog: * config/pa/pa.cc (pa_output_global_address): Handle UNSPEC_DLTIND14R addresses. * config/pa/pa.h (PRINT_OPERAND_ADDRESS): Output "RT'" for UNSPEC_DLTIND14R address.
Diffstat (limited to 'gcc/config/pa/pa.h')
-rw-r--r--gcc/config/pa/pa.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h
index 403f16c..127a0d1 100644
--- a/gcc/config/pa/pa.h
+++ b/gcc/config/pa/pa.h
@@ -1247,12 +1247,15 @@ do { \
reg_names [REGNO (XEXP (addr, 0))]); \
break; \
case LO_SUM: \
- if (!symbolic_operand (XEXP (addr, 1), VOIDmode)) \
+ if (GET_CODE (XEXP (addr, 1)) == UNSPEC \
+ && XINT (XEXP (addr, 1), 1) == UNSPEC_DLTIND14R) \
+ fputs ("RT'", FILE); \
+ else if (!symbolic_operand (XEXP (addr, 1), VOIDmode)) \
fputs ("R'", FILE); \
else if (flag_pic == 0) \
fputs ("RR'", FILE); \
else \
- fputs ("RT'", FILE); \
+ gcc_unreachable (); \
pa_output_global_address (FILE, XEXP (addr, 1), 0); \
fputs ("(", FILE); \
output_operand (XEXP (addr, 0), 0); \