diff options
-rw-r--r-- | gdb/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/gdbarch.c | 5 | ||||
-rw-r--r-- | gdb/gdbarch.h | 5 | ||||
-rwxr-xr-x | gdb/gdbarch.sh | 2 | ||||
-rw-r--r-- | gdb/valops.c | 4 |
5 files changed, 15 insertions, 8 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 4a3ae39..5effe2f 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +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 diff --git a/gdb/gdbarch.c b/gdb/gdbarch.c index 1493c00..96f10dd 100644 --- a/gdb/gdbarch.c +++ b/gdb/gdbarch.c @@ -693,9 +693,8 @@ verify_gdbarch (struct gdbarch *gdbarch) 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"); diff --git a/gdb/gdbarch.h b/gdb/gdbarch.h index f03882a..7a1fa80 100644 --- a/gdb/gdbarch.h +++ b/gdb/gdbarch.h @@ -1368,6 +1368,11 @@ extern void set_gdbarch_extract_return_value (struct gdbarch *gdbarch, gdbarch_e #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); diff --git a/gdb/gdbarch.sh b/gdb/gdbarch.sh index 12c8474..7409508 100755 --- a/gdb/gdbarch.sh +++ b/gdb/gdbarch.sh @@ -498,7 +498,7 @@ F:2:INTEGER_TO_ADDRESS:CORE_ADDR:integer_to_address:struct type *type, void *buf # 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 diff --git a/gdb/valops.c b/gdb/valops.c index 6f7e251..748ba8f 100644 --- a/gdb/valops.c +++ b/gdb/valops.c @@ -1078,10 +1078,6 @@ value_push (register CORE_ADDR sp, struct value *arg) 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) |