aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn David Anglin <danglin@gcc.gnu.org>2023-11-24 17:25:47 +0000
committerJohn David Anglin <danglin@gcc.gnu.org>2023-11-24 17:25:47 +0000
commit23dc62599a8c90823be0139827261cc64ddb99ed (patch)
tree535eb1b61437966a5127f58f3765c2c09f170d2a
parentc2dcfb6ba6e9a84a16e63ae73a822ae2a843170c (diff)
downloadgcc-23dc62599a8c90823be0139827261cc64ddb99ed.zip
gcc-23dc62599a8c90823be0139827261cc64ddb99ed.tar.gz
gcc-23dc62599a8c90823be0139827261cc64ddb99ed.tar.bz2
hppa: Use INT14_OK_STRICT in a couple of places in pa_emit_move_sequence
64-bit Linux target has relocation issue and can't use 14-bit offsets. 2023-11-22 John David Anglin <danglin@gcc.gnu.org> gcc/ChangeLog: * config/pa/pa.cc (pa_emit_move_sequence): Use INT14_OK_STRICT in a couple of places.
-rw-r--r--gcc/config/pa/pa.cc8
1 files changed, 2 insertions, 6 deletions
diff --git a/gcc/config/pa/pa.cc b/gcc/config/pa/pa.cc
index 565c948..2ee9877 100644
--- a/gcc/config/pa/pa.cc
+++ b/gcc/config/pa/pa.cc
@@ -1872,9 +1872,7 @@ pa_emit_move_sequence (rtx *operands, machine_mode mode, rtx scratch_reg)
if (reg_plus_base_memory_operand (op1, GET_MODE (op1)))
{
- if (!(TARGET_PA_20
- && !TARGET_ELF32
- && INT_14_BITS (XEXP (XEXP (op1, 0), 1)))
+ if (!(INT14_OK_STRICT && INT_14_BITS (XEXP (XEXP (op1, 0), 1)))
&& !INT_5_BITS (XEXP (XEXP (op1, 0), 1)))
{
/* SCRATCH_REG will hold an address and maybe the actual data.
@@ -1923,9 +1921,7 @@ pa_emit_move_sequence (rtx *operands, machine_mode mode, rtx scratch_reg)
if (reg_plus_base_memory_operand (op0, GET_MODE (op0)))
{
- if (!(TARGET_PA_20
- && !TARGET_ELF32
- && INT_14_BITS (XEXP (XEXP (op0, 0), 1)))
+ if (!(INT14_OK_STRICT && INT_14_BITS (XEXP (XEXP (op0, 0), 1)))
&& !INT_5_BITS (XEXP (XEXP (op0, 0), 1)))
{
/* SCRATCH_REG will hold an address and maybe the actual data.