Commit 841404cd by Alexandre Oliva Committed by Alexandre Oliva

calls.c (store_one_arg): In the non-BLKmode non-partial case...

* calls.c (store_one_arg): In the non-BLKmode non-partial case,
take padding into account when computing the argument value.

From-SVN: r49675
parent 1d1ade42
2002-02-11 Alexandre Oliva <aoliva@redhat.com>
* calls.c (store_one_arg): In the non-BLKmode non-partial case,
take padding into account when computing the argument value.
* config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
* combine.c (try_combine): Apply substitutions in
......
......@@ -4465,6 +4465,11 @@ store_one_arg (arg, argblock, flags, variable_size, reg_parm_stack_space)
partial, reg, used - size, argblock,
ARGS_SIZE_RTX (arg->offset), reg_parm_stack_space,
ARGS_SIZE_RTX (arg->alignment_pad));
/* Unless this is a partially-in-register argument, the argument is now
in the stack. */
if (partial == 0)
arg->value = arg->stack;
}
else
{
......@@ -4564,16 +4569,18 @@ store_one_arg (arg, argblock, flags, variable_size, reg_parm_stack_space)
argblock, ARGS_SIZE_RTX (arg->offset),
reg_parm_stack_space,
ARGS_SIZE_RTX (arg->alignment_pad));
}
/* Unless this is a partially-in-register argument, the argument is now
in the stack.
/* Unless this is a partially-in-register argument, the argument is now
in the stack.
??? Note that this can change arg->value from arg->stack to
arg->stack_slot and it matters when they are not the same.
It isn't totally clear that this is correct in all cases. */
if (partial == 0)
arg->value = arg->stack_slot;
??? Unlike the case above, in which we want the actual
address of the data, so that we can load it directly into a
register, here we want the address of the stack slot, so that
it's properly aligned for word-by-word copying or something
like that. It's not clear that this is always correct. */
if (partial == 0)
arg->value = arg->stack_slot;
}
/* Once we have pushed something, pops can't safely
be deferred during the rest of the arguments. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment