diff options
author | Daniel Jacobowitz <dan@codesourcery.com> | 2008-07-07 16:05:11 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@gcc.gnu.org> | 2008-07-07 16:05:11 +0000 |
commit | 85776d6097f9bb01d70bf7da37d14a1210f4cd63 (patch) | |
tree | de7207a6081982f1a8d0a2629ab2852c122367da | |
parent | bf87f41cae86459ab5028a664c737645c9f77bc3 (diff) | |
download | gcc-85776d6097f9bb01d70bf7da37d14a1210f4cd63.zip gcc-85776d6097f9bb01d70bf7da37d14a1210f4cd63.tar.gz gcc-85776d6097f9bb01d70bf7da37d14a1210f4cd63.tar.bz2 |
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
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/function.c | 5 |
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7ae7101..3a74146 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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. diff --git a/gcc/function.c b/gcc/function.c index d8234da3..69c2f68 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -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 |