aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorBernd Schmidt <bernds@redhat.com>2001-08-23 19:27:54 +0000
committerBernd Schmidt <bernds@gcc.gnu.org>2001-08-23 19:27:54 +0000
commit3b63eac49f5f48cfb39de9a79b60754f4a41d659 (patch)
tree842d69c1afc919a2d9c58802eee53fd9bb3ce04b /gcc
parent3e7c78058f36d1400c985a8c318bff624693de28 (diff)
downloadgcc-3b63eac49f5f48cfb39de9a79b60754f4a41d659.zip
gcc-3b63eac49f5f48cfb39de9a79b60754f4a41d659.tar.gz
gcc-3b63eac49f5f48cfb39de9a79b60754f4a41d659.tar.bz2
When moving asms out of the way, don't move all of them to the same place
From-SVN: r45138
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/config/ia64/ia64.c4
2 files changed, 5 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a38da71..f58f86e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -3,6 +3,9 @@
* config/ia64/ia64.c (rws_update): If !pred, set write_count
instead of incrementing it.
+ * config/ia64/ia64.c (ia64_sched_reorder): When there's more than one
+ asm ready, don't try to move them all into the same array element.
+
Thu Aug 23 17:21:43 CEST 2001 Jan Hubicka <jh@suse.cz>
* function.c (thread_prologue_and_epilogue_insns): Avoid
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
index fa73e55..ea1cf10 100644
--- a/gcc/config/ia64/ia64.c
+++ b/gcc/config/ia64/ia64.c
@@ -6153,8 +6153,8 @@ ia64_internal_sched_reorder (dump, sched_verbose, ready, pn_ready,
if (GET_CODE (PATTERN (insn)) == ASM_INPUT
|| asm_noperands (PATTERN (insn)) >= 0)
{
- rtx lowest = ready[0];
- ready[0] = insn;
+ rtx lowest = ready[n_asms];
+ ready[n_asms] = insn;
*insnp = lowest;
n_asms++;
}