diff options
| -rw-r--r-- | gcc/ChangeLog | 3 | ||||
| -rw-r--r-- | gcc/config/alpha/alpha.c | 8 |
2 files changed, 10 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2a56ded..addadd5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -4,6 +4,9 @@ * real.c (exact_real_truncate): Return false if the format cannot represent the number as a normal. + * config/alpha/alpha.c (alpha_rtx_costs) <FLOAT_EXTEND>: Cost 0 + for a memory source. + 2005-09-19 Dorit Nuzman <dorit@il.ibm.com> * tree-ssa-operands.c (swap_tree_operands): Export. diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c index 808116a..1e31db4 100644 --- a/gcc/config/alpha/alpha.c +++ b/gcc/config/alpha/alpha.c @@ -1473,11 +1473,17 @@ alpha_rtx_costs (rtx x, int code, int outer_code, int *total) case UNSIGNED_FLOAT: case FIX: case UNSIGNED_FIX: - case FLOAT_EXTEND: case FLOAT_TRUNCATE: *total = cost_data->fp_add; return false; + case FLOAT_EXTEND: + if (GET_CODE (XEXP (x, 0)) == MEM) + *total = 0; + else + *total = cost_data->fp_add; + return false; + default: return false; } |
