aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRoger Sayle <roger@eyesopen.com>2004-07-25 00:25:28 +0000
committerRoger Sayle <sayle@gcc.gnu.org>2004-07-25 00:25:28 +0000
commit8b91e18c05ea23e01e786285a7c6725215201384 (patch)
treeae6f659f26b92f154a5b1616ec1d340e36b3a83a /gcc
parentc32118f961c9f3d90441638c2b0be36eee1ffb9c (diff)
downloadgcc-8b91e18c05ea23e01e786285a7c6725215201384.zip
gcc-8b91e18c05ea23e01e786285a7c6725215201384.tar.gz
gcc-8b91e18c05ea23e01e786285a7c6725215201384.tar.bz2
expmed.c (init_expmed): A signed modulus by a power of two is considered cheap if...
* expmed.c (init_expmed): A signed modulus by a power of two is considered cheap if its less than or equal to four instructions. From-SVN: r85134
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/expmed.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index cb9bea2..19dae5d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2004-07-24 Roger Sayle <roger@eyesopen.com>
+
+ * expmed.c (init_expmed): A signed modulus by a power of two is
+ considered cheap if its less than or equal to four instructions.
+
2004-07-25 Bernardo Innocenti <bernie@develer.com>
* ggc.h (GGC_NEW, GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR,
diff --git a/gcc/expmed.c b/gcc/expmed.c
index d93351d..9ceee9f 100644
--- a/gcc/expmed.c
+++ b/gcc/expmed.c
@@ -217,7 +217,7 @@ init_expmed (void)
mul_cost[mode] = rtx_cost (&all.mult, SET);
sdiv_pow2_cheap[mode] = (rtx_cost (&all.div, SET) <= 2 * add_cost[mode]);
- smod_pow2_cheap[mode] = (rtx_cost (&all.mod, SET) <= 2 * add_cost[mode]);
+ smod_pow2_cheap[mode] = (rtx_cost (&all.mod, SET) <= 4 * add_cost[mode]);
wider_mode = GET_MODE_WIDER_MODE (mode);
if (wider_mode != VOIDmode)