diff options
author | dje <dje@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-04-04 17:58:55 +0000 |
---|---|---|
committer | dje <dje@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-04-04 17:58:55 +0000 |
commit | bd16f775616dd28891cd9bc17cac2218b51eadaa (patch) | |
tree | beef7d1a7da4bcb6515fc761dc320b822e2b0390 | |
parent | 7c010d6ad7a6483a795d8b89e815db8c0202b013 (diff) | |
download | ppe42-gcc-bd16f775616dd28891cd9bc17cac2218b51eadaa.tar.gz ppe42-gcc-bd16f775616dd28891cd9bc17cac2218b51eadaa.zip |
* config/rs6000/rs6000.c (num_insns_constant_wide): Change
satisfies_constraint_[IL] to explicit tests on value.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112676 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 5 |
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1b34bd3690c..62011292123 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2006-04-04 David Edelsohn <edelsohn@gnu.org> + + * config/rs6000/rs6000.c (num_insns_constant_wide): Change + satisfies_constraint_[IL] to explicit tests on value. + 2006-04-04 Sebastian Pop <pop@cri.ensmp.fr> * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop, diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 9d303c0a97b..63ee622d52e 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -2004,11 +2004,12 @@ int num_insns_constant_wide (HOST_WIDE_INT value) { /* signed constant loadable with {cal|addi} */ - if (satisfies_constraint_I (GEN_INT (value))) + if ((unsigned HOST_WIDE_INT) (value + 0x8000) < 0x10000) return 1; /* constant loadable with {cau|addis} */ - else if (satisfies_constraint_L (GEN_INT (value))) + else if ((value & 0xffff) == 0 + && (value >> 31 == -1 || value >> 31 == 0)) return 1; #if HOST_BITS_PER_WIDE_INT == 64 |