aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@freesoft.cz>1999-04-17 21:23:54 +0200
committerRichard Henderson <rth@gcc.gnu.org>1999-04-17 12:23:54 -0700
commit73fe76e49623a713bdf92a7c009cbf6e5227871e (patch)
treecb527cb2987c98a40fe1a1dcc4360f193c44634d
parentd119f84ce709de6c2027065de97d2dd13ca57444 (diff)
downloadgcc-73fe76e49623a713bdf92a7c009cbf6e5227871e.zip
gcc-73fe76e49623a713bdf92a7c009cbf6e5227871e.tar.gz
gcc-73fe76e49623a713bdf92a7c009cbf6e5227871e.tar.bz2
* i386.c (k6_cost): Take into account the decoding time.
From-SVN: r26526
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/i386/i386.c9
2 files changed, 11 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 84223a7..0201f21 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+Sat Apr 17 19:22:38 1999 Jan Hubicka <hubicka@freesoft.cz>
+
+ * i386.c (k6_cost): Take into account the decoding time.
+
Sat Apr 17 19:13:22 1999 Donn Terry <donn@interix.com>
* i386.h (PRINT_OPERAND_PUNCT_VALID_P): Allow _.
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 2ac0767..b5173d6 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -100,14 +100,19 @@ struct processor_costs pentiumpro_cost = {
17 /* cost of a divide/mod */
};
+/* We use decoding time together with execution time.
+ To get correct vale add 1 for short decodable, 2 for long decodable
+ and 4 for vector decodable instruction to execution time and divide
+ by two (because CPU is able to do two insns at a time). */
+
struct processor_costs k6_cost = {
1, /* cost of an add instruction */
1, /* cost of a lea instruction */
1, /* variable shift costs */
1, /* constant shift costs */
- 2, /* cost of starting a multiply */
+ 3, /* cost of starting a multiply */
0, /* cost of multiply per each bit set */
- 18 /* cost of a divide/mod */
+ 20 /* cost of a divide/mod */
};
struct processor_costs *ix86_cost = &pentium_cost;