Use float stack slots for e500 promoted arguments
Steve Ellcey
sje@cup.hp.com
Thu Jul 3 18:35:00 GMT 2008
On Thu, 2008-07-03 at 14:22 -0400, Daniel Jacobowitz wrote:
> That these two differ means I misunderstood what they were for. Looks
> like passed_mode is tree level and entry_parm is calling convention.
> If you replace data->passed_mode with GET_MODE (entry_parm) does it
> work better? I'll build an e500 toolchain and verify that doesn't
> change the original case.
I made this change:
$ svn diff ../src/trunk/gcc/function.c
Index: ../src/trunk/gcc/function.c
===================================================================
--- ../src/trunk/gcc/function.c (revision 137326)
+++ ../src/trunk/gcc/function.c (working copy)
@@ -2365,7 +2365,7 @@ assign_parm_remove_parallels (struct ass
stack, even if we will store the reconstituted parameter on the
stack later. */
if (GET_CODE (entry_parm) == PARALLEL
- && data->passed_mode != BLKmode)
+ && GET_MODE (entry_parm) != BLKmode)
{
rtx parmreg = gen_reg_rtx (GET_MODE (entry_parm));
emit_group_store (parmreg, entry_parm, NULL_TREE,
But it did not help with the test case I sent you. I get the same
error.
Steve Ellcey
sje@cup.hp.com
More information about the Gcc-patches
mailing list