From 73fe76e49623a713bdf92a7c009cbf6e5227871e Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Sat, 17 Apr 1999 21:23:54 +0200 Subject: [PATCH] * i386.c (k6_cost): Take into account the decoding time. From-SVN: r26526 --- gcc/ChangeLog | 4 ++++ gcc/config/i386/i386.c | 9 +++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 84223a74a42..0201f21d122 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +Sat Apr 17 19:22:38 1999 Jan Hubicka + + * i386.c (k6_cost): Take into account the decoding time. + Sat Apr 17 19:13:22 1999 Donn Terry * i386.h (PRINT_OPERAND_PUNCT_VALID_P): Allow _. diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 2ac07671ddf..b5173d6a2cb 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; -- 2.30.2