#include "insn-flags.h"
/* Decide whether a function's arguments should be processed
#include "insn-flags.h"
/* Decide whether a function's arguments should be processed
- from first to last or from last to first. */
+ from first to last or from last to first.
+
+ They should if the stack and args grow in opposite directions, but
+ only if we have push insns. */
-#ifdef STACK_GROWS_DOWNWARD
+
+#if defined (STACK_GROWS_DOWNWARD) != defined (ARGS_GROW_DOWNARD)
#define PUSH_ARGS_REVERSED /* If it's last to first */
#endif
#define PUSH_ARGS_REVERSED /* If it's last to first */
#endif
#endif
/* Like STACK_BOUNDARY but in units of bytes, not bits. */
#endif
/* Like STACK_BOUNDARY but in units of bytes, not bits. */
#define CEIL(x,y) (((x) + (y) - 1) / (y))
/* Decide whether a function's arguments should be processed
#define CEIL(x,y) (((x) + (y) - 1) / (y))
/* Decide whether a function's arguments should be processed
- from first to last or from last to first. */
+ from first to last or from last to first.
+
+ They should if the stack and args grow in opposite directions, but
+ only if we have push insns. */
-#ifdef STACK_GROWS_DOWNWARD
+
+#if defined (STACK_GROWS_DOWNWARD) != defined (ARGS_GROW_DOWNARD)
#define PUSH_ARGS_REVERSED /* If it's last to first */
#endif
#define PUSH_ARGS_REVERSED /* If it's last to first */
#endif
#endif
#ifndef STACK_PUSH_CODE
#endif
#ifndef STACK_PUSH_CODE