+2002-02-10 Andrew Cagney <ac131313@redhat.com>
+
+ * valops.c (PUSH_ARGUMENTS): Delete definition.
+ * gdbarch.sh (PUSH_ARGUMENTS): Don't require when multi-arch
+ partial. Default to default_push_arguments.
+ * gdbarch.h, gdbarch.c: Regenerate.
+
2002-02-09 Andrew Cagney <ac131313@redhat.com>
* defs.h (throw_exception): Rename return_to_top_level. Update
if ((GDB_MULTI_ARCH >= 2)
&& (gdbarch->extract_return_value == 0))
fprintf_unfiltered (log, "\n\textract_return_value");
- if ((GDB_MULTI_ARCH >= 1)
- && (gdbarch->push_arguments == 0))
- fprintf_unfiltered (log, "\n\tpush_arguments");
+ if (gdbarch->push_arguments == 0)
+ gdbarch->push_arguments = default_push_arguments;
if ((GDB_MULTI_ARCH >= 2)
&& (gdbarch->push_dummy_frame == 0))
fprintf_unfiltered (log, "\n\tpush_dummy_frame");
#endif
#endif
+/* Default (function) for non- multi-arch platforms. */
+#if (!GDB_MULTI_ARCH) && !defined (PUSH_ARGUMENTS)
+#define PUSH_ARGUMENTS(nargs, args, sp, struct_return, struct_addr) (default_push_arguments (nargs, args, sp, struct_return, struct_addr))
+#endif
+
typedef CORE_ADDR (gdbarch_push_arguments_ftype) (int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr);
extern CORE_ADDR gdbarch_push_arguments (struct gdbarch *gdbarch, int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr);
extern void set_gdbarch_push_arguments (struct gdbarch *gdbarch, gdbarch_push_arguments_ftype *push_arguments);
#
f:2:RETURN_VALUE_ON_STACK:int:return_value_on_stack:struct type *type:type:::generic_return_value_on_stack_not::0
f:2:EXTRACT_RETURN_VALUE:void:extract_return_value:struct type *type, char *regbuf, char *valbuf:type, regbuf, valbuf::0:0
-f:1:PUSH_ARGUMENTS:CORE_ADDR:push_arguments:int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr:nargs, args, sp, struct_return, struct_addr::0:0
+f:2:PUSH_ARGUMENTS:CORE_ADDR:push_arguments:int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr:nargs, args, sp, struct_return, struct_addr::::default_push_arguments
f:2:PUSH_DUMMY_FRAME:void:push_dummy_frame:void:-:::0
F:1:PUSH_RETURN_ADDRESS:CORE_ADDR:push_return_address:CORE_ADDR pc, CORE_ADDR sp:pc, sp:::0
f:2:POP_FRAME:void:pop_frame:void:-:::0
return sp;
}
-#ifndef PUSH_ARGUMENTS
-#define PUSH_ARGUMENTS default_push_arguments
-#endif
-
CORE_ADDR
default_push_arguments (int nargs, struct value **args, CORE_ADDR sp,
int struct_return, CORE_ADDR struct_addr)