Commit ac1605d6 by Richard Sandiford Committed by Richard Sandiford

mips.c (mips_arg_info): If MUST_PASS_IN_STACK, skip any remaining register arguments.

	* config/mips/mips.c (mips_arg_info): If MUST_PASS_IN_STACK,
	skip any remaining register arguments.

From-SVN: r72156
parent 6357135a
2003-10-06 Richard Sandiford <rsandifo@redhat.com>
* config/mips/mips.c (mips_arg_info): If MUST_PASS_IN_STACK,
skip any remaining register arguments.
2003-10-06 Ulrich Weigand <uweigand@de.ibm.com> 2003-10-06 Ulrich Weigand <uweigand@de.ibm.com>
* reload.c (find_reloads_subreg_address): Use correct offset for * reload.c (find_reloads_subreg_address): Use correct offset for
......
...@@ -3644,15 +3644,22 @@ mips_arg_info (const CUMULATIVE_ARGS *cum, enum machine_mode mode, ...@@ -3644,15 +3644,22 @@ mips_arg_info (const CUMULATIVE_ARGS *cum, enum machine_mode mode,
even_reg_p = true; even_reg_p = true;
} }
/* Set REG_OFFSET to the register count we're interested in. if (mips_abi != ABI_EABI && MUST_PASS_IN_STACK (mode, type))
The EABI allocates the floating-point registers separately, /* This argument must be passed on the stack. Eat up all the
but the other ABIs allocate them like integer registers. */ remaining registers. */
info->reg_offset = (mips_abi == ABI_EABI && info->fpr_p info->reg_offset = MAX_ARGS_IN_REGISTERS;
? cum->num_fprs else
: cum->num_gprs); {
/* Set REG_OFFSET to the register count we're interested in.
The EABI allocates the floating-point registers separately,
but the other ABIs allocate them like integer registers. */
info->reg_offset = (mips_abi == ABI_EABI && info->fpr_p
? cum->num_fprs
: cum->num_gprs);
if (even_reg_p) if (even_reg_p)
info->reg_offset += info->reg_offset & 1; info->reg_offset += info->reg_offset & 1;
}
/* The alignment applied to registers is also applied to stack arguments. */ /* The alignment applied to registers is also applied to stack arguments. */
info->stack_offset = cum->stack_words; info->stack_offset = cum->stack_words;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment