From a1569a0e15fd6e03a5d52da09cdacd23cee0bc11 Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Sun, 21 Oct 2007 09:13:06 +0000 Subject: [PATCH] mips.c (mips_rtx_costs): Only recognize reciprocals if ISA_HAS_FP4. gcc/ * config/mips/mips.c (mips_rtx_costs): Only recognize reciprocals if ISA_HAS_FP4. From-SVN: r129524 --- gcc/ChangeLog | 5 +++++ gcc/config/mips/mips.c | 26 +++++++++++--------------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cbc431f8e9b6..154bcc84e259 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2007-10-21 Richard Sandiford + + * config/mips/mips.c (mips_rtx_costs): Only recognize reciprocals + if ISA_HAS_FP4. + 2007-10-21 Richard Sandiford * config/mips/mips.h (ISA_HAS_LDC1_SDC1): New macro. diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index 0948832b8ab0..2ddb778462af 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -3305,22 +3305,18 @@ mips_rtx_costs (rtx x, int code, int outer_code, int *total) case DIV: /* Check for a reciprocal. */ - if (float_mode_p && XEXP (x, 0) == CONST1_RTX (mode)) + if (float_mode_p + && ISA_HAS_FP4 + && flag_unsafe_math_optimizations + && XEXP (x, 0) == CONST1_RTX (mode)) { - if (ISA_HAS_FP4 - && flag_unsafe_math_optimizations - && (outer_code == SQRT || GET_CODE (XEXP (x, 1)) == SQRT)) - { - /* An rsqrta or rsqrtb pattern. Count the - division as being free. */ - *total = rtx_cost (XEXP (x, 1), 0); - return true; - } - if (!ISA_MIPS1) - { - *total = mips_fp_div_cost (mode) + rtx_cost (XEXP (x, 1), 0); - return true; - } + if (outer_code == SQRT || GET_CODE (XEXP (x, 1)) == SQRT) + /* An rsqrta or rsqrtb pattern. Count the + division as being free. */ + *total = rtx_cost (XEXP (x, 1), 0); + else + *total = mips_fp_div_cost (mode) + rtx_cost (XEXP (x, 1), 0); + return true; } /* Fall through. */