+2017-12-17 John David Anglin <danglin@gcc.gnu.org>
+
+ Backport from mainline
+ 2017-12-03 John David Anglin <danglin@gcc.gnu.org>
+
+ * config/pa/pa.c (pa_legitimate_address_p): For scaled indexing,
+ require base operand is a REG_POINTER prior to reload on targets
+ with non-equivalent space registers.
+
2017-12-15 Eric Botcazou <ebotcazou@adacore.com>
PR target/66488
if (!TARGET_DISABLE_INDEXING
&& GET_CODE (index) == MULT
- && MODE_OK_FOR_SCALED_INDEXING_P (mode)
+ /* Only accept base operands with the REG_POINTER flag prior to
+ reload on targets with non-equivalent space registers. */
+ && (TARGET_NO_SPACE_REGS
+ || (base == XEXP (x, 1)
+ && (reload_completed
+ || (reload_in_progress && HARD_REGISTER_P (base))
+ || REG_POINTER (base))))
&& REG_P (XEXP (index, 0))
&& GET_MODE (XEXP (index, 0)) == Pmode
+ && MODE_OK_FOR_SCALED_INDEXING_P (mode)
&& (strict ? STRICT_REG_OK_FOR_INDEX_P (XEXP (index, 0))
: REG_OK_FOR_INDEX_P (XEXP (index, 0)))
&& GET_CODE (XEXP (index, 1)) == CONST_INT