diff options
author | Jim Wilson <wilson@cygnus.com> | 2000-07-07 23:43:28 +0000 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 2000-07-07 16:43:28 -0700 |
commit | 12c2c7aa823ae975e2d5e3cd07af5dfc5ecdb13b (patch) | |
tree | 804dabaa1e01d58cbe46e1d9fb9b5bf8636bca0b /gcc | |
parent | c4561450e1948c5ffd36e77e72f660292034b8dd (diff) | |
download | gcc-12c2c7aa823ae975e2d5e3cd07af5dfc5ecdb13b.zip gcc-12c2c7aa823ae975e2d5e3cd07af5dfc5ecdb13b.tar.gz gcc-12c2c7aa823ae975e2d5e3cd07af5dfc5ecdb13b.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/ia64/ia64.c | 9 |
2 files changed, 13 insertions, 1 deletions
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 <wilson@cygnus.com> + + * 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 <ghazi@caip.rutgers.edu> * 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. */ |