calls.c (load_register_parameters): Move check for zero sized items so that only the call to ...

* calls.c (load_register_parameters): Move check for zero
	sized items so that only the call to 
	mem_overlaps_already_clobbered_arg_p () is protected.

From-SVN: r162402
This commit is contained in:
Iain Sandoe 2010-07-22 07:59:50 +00:00
parent 20b3c24c86
commit 3b2ee1701f
2 changed files with 12 additions and 5 deletions

View File

@ -1,3 +1,9 @@
2010-07-22 Iain Sandoe <iains@gcc.gnu.org>
* calls.c (load_register_parameters): Move check for zero
sized items so that only the call to
mem_overlaps_already_clobbered_arg_p () is protected.
2010-07-22 Jan Hubicka <jh@suse.cz>
* ipa-pure-const.c (varying_state): Break out from ...

View File

@ -1668,15 +1668,16 @@ load_register_parameters (struct arg_data *args, int num_actuals,
emit_move_insn (gen_rtx_REG (word_mode, REGNO (reg) + j),
args[i].aligned_regs[j]);
else if ((partial == 0 || args[i].pass_on_stack)
&& size != 0)
else if (partial == 0 || args[i].pass_on_stack)
{
rtx mem = validize_mem (args[i].value);
/* Check for overlap with already clobbered argument area. */
/* Check for overlap with already clobbered argument area,
providing that this has non-zero size. */
if (is_sibcall
&& mem_overlaps_already_clobbered_arg_p (XEXP (args[i].value, 0),
size))
&& (size == 0
|| mem_overlaps_already_clobbered_arg_p
(XEXP (args[i].value, 0), size)))
*sibcall_failure = 1;
/* Handle a BLKmode that needs shifting. */