]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Revert: backport PRs 80382, 80966
authorSegher Boessenkool <segher@kernel.crashing.org>
Tue, 27 Jun 2017 21:45:45 +0000 (23:45 +0200)
committerSegher Boessenkool <segher@gcc.gnu.org>
Tue, 27 Jun 2017 21:45:45 +0000 (23:45 +0200)
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

gcc/ChangeLog
gcc/config/rs6000/rs6000.c
gcc/config/rs6000/rs6000.md
gcc/config/rs6000/sync.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/powerpc/stack-limit.c [deleted file]

index ec8b96901b1ac2c7e1e30172b6c4e70ce582529c..9ac07210cd963afd7cab1bf27b7a17853e00d6ef 100644 (file)
@@ -1,3 +1,21 @@
+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:
index a46729c3f637543b3b3770b213e53b5f71642511..a2d4dd6b930764279cd46533f290d47be31c68d7 100644 (file)
@@ -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
index ef36cf0b0185395bb11b5176d45e673f0adf252c..6ab47268be5ab13f23b2a6da8d9aac2f01314662 100644 (file)
                  || 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);
index b0da0b8b52c3e7f9ffb5cb37e426051d30f690e9..8ba30b98658181c52c14b32a7f13c457827916ac 100644 (file)
       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);
index b5155df1067675d5935b6cc8e07fe99b661cf1ac..7fd2ab61b841d5b1e3613cb72e2ad56d65293198 100644 (file)
@@ -1,3 +1,12 @@
+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:
diff --git a/gcc/testsuite/gcc.target/powerpc/stack-limit.c b/gcc/testsuite/gcc.target/powerpc/stack-limit.c
deleted file mode 100644 (file)
index e676c96..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-/* { dg-options "-O0 -fstack-limit-register=r14" } */
-
-// PR80966
-
-int foo (int i)
-{
-  char arr[135000];
-
-  arr[i] = 0;
-}