summaryrefslogtreecommitdiff
path: root/gcc/expmed.c
diff options
context:
space:
mode:
authorbonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4>2006-06-08 15:40:48 +0000
committerbonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4>2006-06-08 15:40:48 +0000
commit65801c1c5d0c18501a01e8fef286e25357248b7b (patch)
treefbbdd2212c6d4f150fe51ab35d8f06e6f18863fc /gcc/expmed.c
parent3d203535dfdd2f10c778354292ce6ea04ed8042b (diff)
downloadgcc-65801c1c5d0c18501a01e8fef286e25357248b7b.tar.gz
2006-06-08 Paolo Bonzini <bonzini@gnu.org>
PR middle-end/27733 * expmed.c (struct alg_hash_entry): Fix type of field T to match synth_mult argument. (NUM_ALG_HASH_ENTRIES): Make it bigger for 64-bit HOST_WIDE_INT. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@114488 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/expmed.c')
-rw-r--r--gcc/expmed.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/expmed.c b/gcc/expmed.c
index 56c0d24bd66..2e8906eb7a9 100644
--- a/gcc/expmed.c
+++ b/gcc/expmed.c
@@ -2395,7 +2395,7 @@ struct algorithm
/* The entry for our multiplication cache/hash table. */
struct alg_hash_entry {
/* The number we are multiplying by. */
- unsigned int t;
+ unsigned HOST_WIDE_INT t;
/* The mode in which we are multiplying something by T. */
enum machine_mode mode;
@@ -2410,7 +2410,11 @@ struct alg_hash_entry {
};
/* The number of cache/hash entries. */
+#if HOST_BITS_PER_WIDE_INT == 64
+#define NUM_ALG_HASH_ENTRIES 1031
+#else
#define NUM_ALG_HASH_ENTRIES 307
+#endif
/* Each entry of ALG_HASH caches alg_code for some integer. This is
actually a hash table. If we have a collision, that the older