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> 2008-07-07 Richard Guenther <rguenther@suse.de>
* tree-ssa-structalias.h (set_used_smts): Remove. * 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 This can be done with register operations rather than on the
stack, even if we will store the reconstituted parameter on the stack, even if we will store the reconstituted parameter on the
stack later. */ stack later. */
if (GET_CODE (entry_parm) == PARALLEL if (GET_CODE (entry_parm) == PARALLEL && GET_MODE (entry_parm) != BLKmode)
&& data->passed_mode != BLKmode)
{ {
rtx parmreg = gen_reg_rtx (GET_MODE (entry_parm)); rtx parmreg = gen_reg_rtx (GET_MODE (entry_parm));
emit_group_store (parmreg, entry_parm, NULL_TREE, 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) if (data->nominal_mode == BLKmode)
return true; return true;
if (GET_MODE (data->entry_parm) == BLKmode)
return true;
#ifdef BLOCK_REG_PADDING #ifdef BLOCK_REG_PADDING
/* Only assign_parm_setup_block knows how to deal with register arguments /* Only assign_parm_setup_block knows how to deal with register arguments