Those two changes aren't actually applicable to 5. Sorry for the noise.
Revert:
Backports from trunk:
2017-04-12 Segher Boessenkool <segher@kernel.crashing.org>
PR target/80382
* config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test
for quad_address_p for TImode, instead of just not indexed_address.
2017-06-09 Segher Boessenkool <segher@kernel.crashing.org>
PR target/80966
* config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that
gen_add3_insn did not fail.
* config/rs6000/rs6000.md (add<mode>3): If asked to add a constant to
r0, construct that number in a temporary reg and add that reg to r0.
If asked to put the result in r0 as well, fail.
Revert:
Backport from trunk:
2017-06-09 Segher Boessenkool <segher@kernel.crashing.org>
PR target/80966
* gcc.target/powerpc/stack-limit.c: New testcase.
From-SVN: r249711
+2017-06-27 Segher Boessenkool <segher@kernel.crashing.org>
+
+ Revert:
+ Backports from trunk:
+
+ 2017-04-12 Segher Boessenkool <segher@kernel.crashing.org>
+ PR target/80382
+ * config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test
+ for quad_address_p for TImode, instead of just not indexed_address.
+
+ 2017-06-09 Segher Boessenkool <segher@kernel.crashing.org>
+ PR target/80966
+ * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that
+ gen_add3_insn did not fail.
+ * config/rs6000/rs6000.md (add<mode>3): If asked to add a constant to
+ r0, construct that number in a temporary reg and add that reg to r0.
+ If asked to put the result in r0 as well, fail.
+
2017-06-27 Segher Boessenkool <segher@kernel.crashing.org>
Backports from trunk:
&& REGNO (stack_limit_rtx) > 1
&& REGNO (stack_limit_rtx) <= 31)
{
- rtx_insn *insn
- = gen_add3_insn (tmp_reg, stack_limit_rtx, GEN_INT (size));
- gcc_assert (insn);
- emit_insn (insn);
- emit_insn (gen_cond_trap (LTU, stack_reg, tmp_reg, const0_rtx));
+ emit_insn (gen_add3_insn (tmp_reg, stack_limit_rtx, GEN_INT (size)));
+ emit_insn (gen_cond_trap (LTU, stack_reg, tmp_reg,
+ const0_rtx));
}
else if (GET_CODE (stack_limit_rtx) == SYMBOL_REF
&& TARGET_32BIT
|| rtx_equal_p (operands[0], operands[1]))
? operands[0] : gen_reg_rtx (<MODE>mode));
- /* Adding a constant to r0 is not a valid insn, so use a different
- strategy in that case. */
- if (REGNO (operands[1]) == 0 || REGNO (tmp) == 0)
- {
- if (operands[0] == operands[1])
- FAIL;
- rs6000_emit_move (operands[0], operands[2], <MODE>mode);
- emit_insn (gen_add<mode>3 (operands[0], operands[1], operands[0]));
- DONE;
- }
-
HOST_WIDE_INT val = INTVAL (operands[2]);
HOST_WIDE_INT low = ((val & 0xffff) ^ 0x8000) - 0x8000;
HOST_WIDE_INT rest = trunc_int_for_mode (val - low, <MODE>mode);
rtx op1 = operands[1];
rtx pti_reg = gen_reg_rtx (PTImode);
- if (!quad_address_p (XEXP (op1, 0), TImode, false))
+ // Can't have indexed address for 'lq'
+ if (indexed_address (XEXP (op1, 0), TImode))
{
rtx old_addr = XEXP (op1, 0);
rtx new_addr = force_reg (Pmode, old_addr);
rtx op1 = operands[1];
rtx pti_reg = gen_reg_rtx (PTImode);
- if (!quad_address_p (XEXP (op0, 0), TImode, false))
+ // Can't have indexed address for 'stq'
+ if (indexed_address (XEXP (op0, 0), TImode))
{
rtx old_addr = XEXP (op0, 0);
rtx new_addr = force_reg (Pmode, old_addr);
+2017-06-27 Segher Boessenkool <segher@kernel.crashing.org>
+
+ Revert:
+ Backport from trunk:
+
+ 2017-06-09 Segher Boessenkool <segher@kernel.crashing.org>
+ PR target/80966
+ * gcc.target/powerpc/stack-limit.c: New testcase.
+
2017-06-27 Segher Boessenkool <segher@kernel.crashing.org>
Backports from trunk:
+++ /dev/null
-/* { dg-options "-O0 -fstack-limit-register=r14" } */
-
-// PR80966
-
-int foo (int i)
-{
- char arr[135000];
-
- arr[i] = 0;
-}