function.c (assign_parm_remove_parallels): Check mode of entry_parm.

* function.c (assign_parm_remove_parallels): Check mode of
	entry_parm.
	(assign_parm_setup_block_p): Also check mode of entry_parm.

From-SVN: r137575
This commit is contained in:
Daniel Jacobowitz 2008-07-07 16:05:11 +00:00 committed by Daniel Jacobowitz
parent bf87f41cae
commit 85776d6097
2 changed files with 9 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2008-07-07 Daniel Jacobowitz <dan@codesourcery.com>
* function.c (assign_parm_remove_parallels): Check mode of
entry_parm.
(assign_parm_setup_block_p): Also check mode of entry_parm.
2008-07-07 Richard Guenther <rguenther@suse.de>
* tree-ssa-structalias.h (set_used_smts): Remove.

View File

@ -2364,8 +2364,7 @@ assign_parm_remove_parallels (struct assign_parm_data_one *data)
This can be done with register operations rather than on the
stack, even if we will store the reconstituted parameter on the
stack later. */
if (GET_CODE (entry_parm) == PARALLEL
&& data->passed_mode != BLKmode)
if (GET_CODE (entry_parm) == PARALLEL && GET_MODE (entry_parm) != BLKmode)
{
rtx parmreg = gen_reg_rtx (GET_MODE (entry_parm));
emit_group_store (parmreg, entry_parm, NULL_TREE,
@ -2421,6 +2420,8 @@ assign_parm_setup_block_p (struct assign_parm_data_one *data)
{
if (data->nominal_mode == BLKmode)
return true;
if (GET_MODE (data->entry_parm) == BLKmode)
return true;
#ifdef BLOCK_REG_PADDING
/* Only assign_parm_setup_block knows how to deal with register arguments