I'm preparing a patch to turn gcc.target/mips into a torture-like
testsuite.  This showed up a fair few problems, the first of which is
fixed below.  The code that calculated the size cost of multiplications
was missing a COSTS_N_INSNS call.

Tested on mipsisa64-elf, mips64-elf and mips64-linux-gnu.  Applied.

Richard


gcc/
        * config/mips/mips.c (mips_rtx_costs): Add missing COSTS_N_INSNS
        to the size cost of multiplication.

Index: gcc/config/mips/mips.c
===================================================================
--- gcc/config/mips/mips.c      2012-08-26 11:34:07.000000000 +0100
+++ gcc/config/mips/mips.c      2012-08-26 11:35:15.076810487 +0100
@@ -3841,7 +3841,7 @@ mips_rtx_costs (rtx x, int code, int out
                  ? mips_cost->int_mult_si * 3 + 6
                  : COSTS_N_INSNS (ISA_HAS_MUL3 ? 7 : 9));
       else if (!speed)
-       *total = (ISA_HAS_MUL3 ? 1 : 2);
+       *total = COSTS_N_INSNS (ISA_HAS_MUL3 ? 1 : 2);
       else if (mode == DImode)
        *total = mips_cost->int_mult_di;
       else

Reply via email to