diff options
Diffstat (limited to 'gcc/config/cr16')
-rw-r--r-- | gcc/config/cr16/cr16.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/gcc/config/cr16/cr16.c b/gcc/config/cr16/cr16.c index 2518521..dc4cb91 100644 --- a/gcc/config/cr16/cr16.c +++ b/gcc/config/cr16/cr16.c @@ -660,34 +660,34 @@ cr16_init_cumulative_args (CUMULATIVE_ARGS * cum, tree fntype, /* Implements the macro FUNCTION_ARG_ADVANCE defined in cr16.h. */ static void -cr16_function_arg_advance (cumulative_args_t cum_v, machine_mode mode, - const_tree type, bool named ATTRIBUTE_UNUSED) +cr16_function_arg_advance (cumulative_args_t cum_v, + const function_arg_info &arg) { CUMULATIVE_ARGS * cum = get_cumulative_args (cum_v); /* l holds the number of registers required. */ - int l = GET_MODE_BITSIZE (mode) / BITS_PER_WORD; + int l = GET_MODE_BITSIZE (arg.mode) / BITS_PER_WORD; /* If the parameter isn't passed on a register don't advance cum. */ if (!cum->last_parm_in_reg) return; - if (targetm.calls.must_pass_in_stack (mode, type) || (cum->ints < 0)) + if (targetm.calls.must_pass_in_stack (arg.mode, arg.type) || (cum->ints < 0)) return; - if ((mode == SImode) || (mode == HImode) - || (mode == QImode) || (mode == DImode)) + if ((arg.mode == SImode) || (arg.mode == HImode) + || (arg.mode == QImode) || (arg.mode == DImode)) { if (l <= 1) cum->ints += 1; else cum->ints += l; } - else if ((mode == SFmode) || (mode == DFmode)) + else if ((arg.mode == SFmode) || (arg.mode == DFmode)) cum->ints += l; - else if ((mode) == BLKmode) + else if (arg.mode == BLKmode) { - if ((l = enough_regs_for_param (cum, type, mode)) != 0) + if ((l = enough_regs_for_param (cum, arg.type, arg.mode)) != 0) cum->ints += l; } return; |