diff options
Diffstat (limited to 'gcc/calls.c')
-rw-r--r-- | gcc/calls.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/calls.c b/gcc/calls.c index 3f32244..96d05ea 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -713,7 +713,8 @@ precompute_register_parameters (int num_actuals, struct arg_data *args, || (GET_CODE (args[i].value) == SUBREG && REG_P (SUBREG_REG (args[i].value))))) && args[i].mode != BLKmode - && rtx_cost (args[i].value, SET) > COSTS_N_INSNS (1) + && rtx_cost (args[i].value, SET, optimize_insn_for_speed_p ()) + > COSTS_N_INSNS (1) && ((SMALL_REGISTER_CLASSES && *reg_parm_seen) || optimize)) args[i].value = copy_to_mode_reg (args[i].mode, args[i].value); |