From: Segher Boessenkool Date: Tue, 27 Jun 2017 21:45:45 +0000 (+0200) Subject: Revert: backport PRs 80382, 80966 X-Git-Tag: releases/gcc-5.5.0~181 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7a37c5e1ed1b4a4d265a620ad9505f2dc1a460cb;p=thirdparty%2Fgcc.git Revert: backport PRs 80382, 80966 Those two changes aren't actually applicable to 5. Sorry for the noise. Revert: Backports from trunk: 2017-04-12 Segher Boessenkool PR target/80382 * config/rs6000/sync.md (atomic_load, atomic_store PR target/80966 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that gen_add3_insn did not fail. * config/rs6000/rs6000.md (add3): 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 PR target/80966 * gcc.target/powerpc/stack-limit.c: New testcase. From-SVN: r249711 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ec8b96901b1a..9ac07210cd96 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,21 @@ +2017-06-27 Segher Boessenkool + + Revert: + Backports from trunk: + + 2017-04-12 Segher Boessenkool + PR target/80382 + * config/rs6000/sync.md (atomic_load, atomic_store + PR target/80966 + * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that + gen_add3_insn did not fail. + * config/rs6000/rs6000.md (add3): 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 Backports from trunk: diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index a46729c3f637..a2d4dd6b9307 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -22737,11 +22737,9 @@ rs6000_emit_allocate_stack (HOST_WIDE_INT size, rtx copy_reg, int copy_off) && 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 diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index ef36cf0b0185..6ab47268be5a 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -1504,17 +1504,6 @@ || rtx_equal_p (operands[0], operands[1])) ? operands[0] : gen_reg_rtx (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); - emit_insn (gen_add3 (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); diff --git a/gcc/config/rs6000/sync.md b/gcc/config/rs6000/sync.md index b0da0b8b52c3..8ba30b986581 100644 --- a/gcc/config/rs6000/sync.md +++ b/gcc/config/rs6000/sync.md @@ -160,7 +160,8 @@ 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); @@ -237,7 +238,8 @@ 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); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b5155df10676..7fd2ab61b841 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,12 @@ +2017-06-27 Segher Boessenkool + + Revert: + Backport from trunk: + + 2017-06-09 Segher Boessenkool + PR target/80966 + * gcc.target/powerpc/stack-limit.c: New testcase. + 2017-06-27 Segher Boessenkool Backports from trunk: diff --git a/gcc/testsuite/gcc.target/powerpc/stack-limit.c b/gcc/testsuite/gcc.target/powerpc/stack-limit.c deleted file mode 100644 index e676c96eb8e6..000000000000 --- a/gcc/testsuite/gcc.target/powerpc/stack-limit.c +++ /dev/null @@ -1,10 +0,0 @@ -/* { dg-options "-O0 -fstack-limit-register=r14" } */ - -// PR80966 - -int foo (int i) -{ - char arr[135000]; - - arr[i] = 0; -}