This fixes a couple of places in pa_emit_move_sequence that should
be using the INT14_OK_STRICT macro.

Tested on hppa-unknown-linux-gnu.  Committed to trunk.

Dave
---

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  <dang...@gcc.gnu.org>

gcc/ChangeLog:

        * config/pa/pa.cc (pa_emit_move_sequence): Use INT14_OK_STRICT
        in a couple of places.

diff --git a/gcc/config/pa/pa.cc b/gcc/config/pa/pa.cc
index 565c948a9e6..2ee987796f6 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.

Attachment: signature.asc
Description: PGP signature

Reply via email to