#define FUNCTION_ARG(CUM, MODE, TYPE, NAMED) \
(! (NAMED) ? 0 \
- : USE_FP_REG(MODE,CUM) ? gen_rtx(REG, (MODE),(CUM.fregs) + 17) \
- : (CUM).gregs < 4 ? gen_rtx(REG, (MODE), 2 + (CUM).gregs) : 0)
+ : ((TYPE) != 0 && TREE_CODE (TYPE_CODE (TYPE)) != INTEGER_CST) \
+ : USE_FP_REG(MODE,CUM) ? gen_rtx(REG, (MODE),(CUM.fregs) + 17) \
+ : (CUM).gregs < 4 ? gen_rtx(REG, (MODE), 2 + (CUM).gregs) : 0)
/* For an arg passed partly in registers and partly in memory,
this is the number of registers used.
#define FUNCTION_ARG(CUM, MODE, TYPE, NAMED) \
(! (NAMED) ? 0 \
- : USE_FP_FOR_ARG_P (CUM, MODE, TYPE) \
+ : ((TYPE) != 0 && TREE_CODE (TYPE_CODE (TYPE)) != INTEGER_CST) \
+ : USE_FP_FOR_ARG_P (CUM, MODE, TYPE) \
? ((CUM).nargs_prototype > 0 \
? gen_rtx (REG, MODE, (CUM).fregno) \
: ((CUM).words < 8 \
abort ();
}
+ if (sa != 0)
+ sa = validize_mem (sa);
+
if (after)
{
rtx seq;
start_sequence ();
- emit_insn (fcn (validize_mem (sa), stack_pointer_rtx));
+ emit_insn (fcn (sa, stack_pointer_rtx));
seq = gen_sequence ();
end_sequence ();
emit_insn_after (seq, after);
}
else
- emit_insn (fcn (validize_mem (sa), stack_pointer_rtx));
+ emit_insn (fcn (sa, stack_pointer_rtx));
}
/* Restore the stack pointer for the purpose in SAVE_LEVEL. SA is the save
#endif
}
+ if (sa != 0)
+ sa = validize_mem (sa);
+
if (after)
{
rtx seq;
start_sequence ();
- emit_insn (fcn (stack_pointer_rtx, validize_mem (sa)));
+ emit_insn (fcn (stack_pointer_rtx, sa));
seq = gen_sequence ();
end_sequence ();
emit_insn_after (seq, after);
}
else
- emit_insn (fcn (stack_pointer_rtx, validize_mem (sa)));
+ emit_insn (fcn (stack_pointer_rtx, sa));
}
\f
/* Return an rtx representing the address of an area of memory dynamically