From: Jim Wilson Date: Fri, 7 Jul 2000 23:43:28 +0000 (+0000) Subject: Fix glibc -O2 iso646.i abort. X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=12c2c7aa823ae975e2d5e3cd07af5dfc5ecdb13b;p=platform%2Fupstream%2Fgcc.git Fix glibc -O2 iso646.i abort. * config/ia64/ia64.c (rws_access_reg): New local write_count. If is_predicate_reg, then take max write_count of register pair. From-SVN: r34915 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3174880..33a9e0f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2000-07-07 Jim Wilson + + * config/ia64/ia64.c (rws_access_reg): New local write_count. If + is_predicate_reg, then take max write_count of register pair. + 2000-07-07 Kaveh R. Ghazi * tradcpp.c (main): Rename label `include' to `add_include' to diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c index e6dbd10..1b0e0c3 100644 --- a/gcc/config/ia64/ia64.c +++ b/gcc/config/ia64/ia64.c @@ -2313,6 +2313,8 @@ rws_access_reg (regno, flags, pred) if (flags.is_write) { + int write_count; + /* One insn writes same reg multiple times? */ if (rws_insn[regno].write_count > 0) abort (); @@ -2328,7 +2330,12 @@ rws_access_reg (regno, flags, pred) if (is_predicate_reg) rws_update (rws_insn, regno + 1, flags, pred); - switch (rws_sum[regno].write_count) + /* ??? Likewise. */ + write_count = rws_sum[regno].write_count; + if (is_predicate_reg) + write_count = MAX (write_count, rws_sum[regno + 1].write_count); + + switch (write_count) { case 0: /* The register has not been written yet. */