2000-11-11 Alexandre Oliva <aoliva@redhat.com>
+ * builtins.c (std_expand_builtin_va_start): Take PARM_BOUNDARY
+ into account.
+
* config/sh/sh.h (MODES_TIEABLE_P): Don't tie SFmode to other FP
modes.
the variable. */
void
std_expand_builtin_va_start (stdarg_p, valist, nextarg)
- int stdarg_p ATTRIBUTE_UNUSED;
+ int stdarg_p;
tree valist;
rtx nextarg;
{
tree t;
- if (!stdarg_p)
- nextarg = plus_constant (nextarg, -UNITS_PER_WORD);
+ if (! stdarg_p)
+ {
+ int align = PARM_BOUNDARY / BITS_PER_UNIT;
+ int offset = (((UNITS_PER_WORD + align - 1) / align) * align);
+ nextarg = plus_constant (nextarg, -offset);
+ }
t = build (MODIFY_EXPR, TREE_TYPE (valist), valist,
make_tree (ptr_type_node, nextarg));