* i386.c (k6_cost): Take into account the decoding time.
authorJan Hubicka <hubicka@freesoft.cz>
Sat, 17 Apr 1999 19:23:54 +0000 (21:23 +0200)
committerRichard Henderson <rth@gcc.gnu.org>
Sat, 17 Apr 1999 19:23:54 +0000 (12:23 -0700)
From-SVN: r26526

gcc/ChangeLog
gcc/config/i386/i386.c

index 84223a74a429bcce18543b7864c157aff642c954..0201f21d1223e81099e996e64183683a1f6865b4 100644 (file)
@@ -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 _.
index 2ac07671ddfabae51dbe33b1e13e84e7192c8665..b5173d6a2cbb08a37b15dc1080d3c9369779c3d8 100644 (file)
@@ -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;