diff options
author | Bernd Schmidt <bernds@codesourcery.com> | 2012-09-28 20:32:55 +0000 |
---|---|---|
committer | Bernd Schmidt <bernds@gcc.gnu.org> | 2012-09-28 20:32:55 +0000 |
commit | 0380c51fefbf548d957595868069e1af09190e69 (patch) | |
tree | 247621f2e57181c9c2fd27754a1407dc19f88749 /gcc | |
parent | 495de4f4cb2e9de61fe73a1000837e2f9001404d (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/sched-deps.c | 14 |
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; } |