diff options
author | David Edelsohn <edelsohn@gnu.org> | 2001-09-08 02:40:36 +0000 |
---|---|---|
committer | David Edelsohn <dje@gcc.gnu.org> | 2001-09-07 22:40:36 -0400 |
commit | 4e2c1c4484d3407251679a1eb271c9163ee3edfc (patch) | |
tree | 3c4a94e85ed9a4ba96b2f792a4c65cfa54e205b8 | |
parent | 43fe47ca785b524496e2082eddfd00b50b68b281 (diff) | |
download | gcc-4e2c1c4484d3407251679a1eb271c9163ee3edfc.zip gcc-4e2c1c4484d3407251679a1eb271c9163ee3edfc.tar.gz gcc-4e2c1c4484d3407251679a1eb271c9163ee3edfc.tar.bz2 |
rs6000.c (num_insns_constant): Compute number of instructions more accurately.
* rs6000.c (num_insns_constant): Compute number of instructions
more accurately.
From-SVN: r45484
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 3 |
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c3dc8f4..6feb13b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2001-09-07 David Edelsohn <edelsohn@gnu.org> + + * rs6000.c (num_insns_constant): Compute number of instructions + more accurately. + 2001-09-07 Jim Wilson <wilson@redhat.com> * alias.c (clear_reg_alias_info): New. diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index a598f18..8448682 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -880,7 +880,8 @@ num_insns_constant (op, mode) if (GET_CODE (op) == CONST_INT) { #if HOST_BITS_PER_WIDE_INT == 64 - if (mask64_operand (op, mode)) + if ((INTVAL (op) >> 31) != 0 && (INTVAL (op) >> 31) != -1 + && mask64_operand (op, mode)) return 2; else #endif |