aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorBernd Schmidt <bernds@codesourcery.com>2012-09-28 20:32:55 +0000
committerBernd Schmidt <bernds@gcc.gnu.org>2012-09-28 20:32:55 +0000
commit0380c51fefbf548d957595868069e1af09190e69 (patch)
tree247621f2e57181c9c2fd27754a1407dc19f88749 /gcc
parent495de4f4cb2e9de61fe73a1000837e2f9001404d (diff)
downloadgcc-0380c51fefbf548d957595868069e1af09190e69.zip
gcc-0380c51fefbf548d957595868069e1af09190e69.tar.gz
gcc-0380c51fefbf548d957595868069e1af09190e69.tar.bz2
re PR bootstrap/54688 (violation of implicit restriction "No_Elaboration_Code" on a-ioexce.ads)
PR bootstrap/54688 * sched-deps.c (parse_add_or_inc): Remove MINUS handling. Take STACK_GROWS_DOWNWARD into account. From-SVN: r191838
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/sched-deps.c14
2 files changed, 15 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6f2fb9f..7851337 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2012-09-20 Bernd Schmidt <bernds@codesourcery.com>
+
+ PR bootstrap/54688
+ * sched-deps.c (parse_add_or_inc): Remove MINUS handling. Take
+ STACK_GROWS_DOWNWARD into account.
+
2012-09-28 Jakub Jelinek <jakub@redhat.com>
PR target/54716
diff --git a/gcc/sched-deps.c b/gcc/sched-deps.c
index f53cadd..6625a53 100644
--- a/gcc/sched-deps.c
+++ b/gcc/sched-deps.c
@@ -4600,8 +4600,7 @@ parse_add_or_inc (struct mem_inc_info *mii, rtx insn, bool before_mem)
if (!REG_P (SET_DEST (pat)))
return false;
- if (GET_CODE (SET_SRC (pat)) != PLUS
- && GET_CODE (SET_SRC (pat)) != MINUS)
+ if (GET_CODE (SET_SRC (pat)) != PLUS)
return false;
mii->inc_insn = insn;
@@ -4629,9 +4628,14 @@ parse_add_or_inc (struct mem_inc_info *mii, rtx insn, bool before_mem)
}
if (regs_equal && REGNO (SET_DEST (pat)) == STACK_POINTER_REGNUM)
- /* Note that the sign has already been reversed for !before_mem. */
- return mii->inc_constant > 0;
-
+ {
+ /* Note that the sign has already been reversed for !before_mem. */
+#ifdef STACK_GROWS_DOWNWARD
+ return mii->inc_constant > 0;
+#else
+ return mii->inc_constant < 0;
+#endif
+ }
return true;
}