forked from Imagelibrary/binutils-gdb
2003-03-26 Andrew Cagney <cagney@redhat.com>
* gdbarch.sh (DEPRECATED_PUSH_ARGUMENTS): Rename PUSH_ARGUMENTS. (push_dummy_call): New pure multi-arch replacement with gdbarch, regcache and dummy_addr parameters. * gdbarch.h, gdbarch.c: Re-generate. * valops.c (hand_function_call): Use gdbarch_push_dummy_call when available; assume it will handle stack alignment and return address issues. Fall back to DEPRECATED_PUSH_ARGUMENTS and legacy_push_arguments. (legacy_push_arguments): Rename default_push_arguments. * value.h (legacy_push_arguments): Rename default_push_arguments. * i386-tdep.c (i386_push_arguments): Call legacy_push_arguments. * config/sparc/tm-sparc.h (DEPRECATED_PUSH_ARGUMENTS): Update. * config/sparc/tm-sp64.h (DEPRECATED_PUSH_ARGUMENTS): Update. * config/pa/tm-hppa.h (DEPRECATED_PUSH_ARGUMENTS): Update. * config/i386/tm-symmetry.h: Update. * xstormy16-tdep.c (xstormy16_gdbarch_init): Update. * x86-64-tdep.c (x86_64_init_abi): Update. * v850-tdep.c (v850_gdbarch_init): Update. * sparc-tdep.c (sparc_gdbarch_init): Update. * sh-tdep.c (sh_gdbarch_init): Update. * s390-tdep.c (s390_gdbarch_init): Update. * rs6000-tdep.c (rs6000_gdbarch_init): Update. * mn10300-tdep.c (mn10300_gdbarch_init): Update. * mips-tdep.c (mips_gdbarch_init): Update. * mcore-tdep.c (mcore_gdbarch_init): Update. * m68hc11-tdep.c (m68hc11_gdbarch_init): Update. * ia64-tdep.c (ia64_gdbarch_init): Update. * i386-tdep.c (i386_gdbarch_init): Update. * hppa-tdep.c (hppa_gdbarch_init): Update. * h8300-tdep.c (h8300_gdbarch_init): Update. * frv-tdep.c (frv_gdbarch_init): Update. * d10v-tdep.c (d10v_gdbarch_init): Update. * cris-tdep.c (cris_gdbarch_init): Update. * avr-tdep.c (avr_gdbarch_init): Update. * arm-tdep.c (arm_gdbarch_init): Update. * arm-linux-tdep.c (arm_linux_init_abi): Update. * alpha-tdep.c (alpha_gdbarch_init): Update. 2003-03-26 Andrew Cagney <cagney@redhat.com> * gdbint.texinfo (Target Architecture Definition): Replace PUSH_ARGUMENTS with push_dummy_call, add gdbarch, regcache and dummy_addr parameters.
This commit is contained in:
@@ -1629,23 +1629,51 @@ extern void set_gdbarch_return_value_on_stack (struct gdbarch *gdbarch, gdbarch_
|
||||
#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))
|
||||
/* Replaced by PUSH_DUMMY_CALL */
|
||||
|
||||
#if defined (DEPRECATED_PUSH_ARGUMENTS)
|
||||
/* Legacy for systems yet to multi-arch DEPRECATED_PUSH_ARGUMENTS */
|
||||
#if !defined (DEPRECATED_PUSH_ARGUMENTS_P)
|
||||
#define DEPRECATED_PUSH_ARGUMENTS_P() (1)
|
||||
#endif
|
||||
#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);
|
||||
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (PUSH_ARGUMENTS)
|
||||
#error "Non multi-arch definition of PUSH_ARGUMENTS"
|
||||
/* Default predicate for non- multi-arch targets. */
|
||||
#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_PUSH_ARGUMENTS_P)
|
||||
#define DEPRECATED_PUSH_ARGUMENTS_P() (0)
|
||||
#endif
|
||||
|
||||
extern int gdbarch_deprecated_push_arguments_p (struct gdbarch *gdbarch);
|
||||
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_PUSH_ARGUMENTS_P)
|
||||
#error "Non multi-arch definition of DEPRECATED_PUSH_ARGUMENTS"
|
||||
#endif
|
||||
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (DEPRECATED_PUSH_ARGUMENTS_P)
|
||||
#define DEPRECATED_PUSH_ARGUMENTS_P() (gdbarch_deprecated_push_arguments_p (current_gdbarch))
|
||||
#endif
|
||||
|
||||
/* Default (function) for non- multi-arch platforms. */
|
||||
#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_PUSH_ARGUMENTS)
|
||||
#define DEPRECATED_PUSH_ARGUMENTS(nargs, args, sp, struct_return, struct_addr) (internal_error (__FILE__, __LINE__, "DEPRECATED_PUSH_ARGUMENTS"), 0)
|
||||
#endif
|
||||
|
||||
typedef CORE_ADDR (gdbarch_deprecated_push_arguments_ftype) (int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr);
|
||||
extern CORE_ADDR gdbarch_deprecated_push_arguments (struct gdbarch *gdbarch, int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr);
|
||||
extern void set_gdbarch_deprecated_push_arguments (struct gdbarch *gdbarch, gdbarch_deprecated_push_arguments_ftype *deprecated_push_arguments);
|
||||
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_PUSH_ARGUMENTS)
|
||||
#error "Non multi-arch definition of DEPRECATED_PUSH_ARGUMENTS"
|
||||
#endif
|
||||
#if GDB_MULTI_ARCH
|
||||
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (PUSH_ARGUMENTS)
|
||||
#define PUSH_ARGUMENTS(nargs, args, sp, struct_return, struct_addr) (gdbarch_push_arguments (current_gdbarch, nargs, args, sp, struct_return, struct_addr))
|
||||
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (DEPRECATED_PUSH_ARGUMENTS)
|
||||
#define DEPRECATED_PUSH_ARGUMENTS(nargs, args, sp, struct_return, struct_addr) (gdbarch_deprecated_push_arguments (current_gdbarch, nargs, args, sp, struct_return, struct_addr))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
extern int gdbarch_push_dummy_call_p (struct gdbarch *gdbarch);
|
||||
|
||||
typedef CORE_ADDR (gdbarch_push_dummy_call_ftype) (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR dummy_addr, int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr);
|
||||
extern CORE_ADDR gdbarch_push_dummy_call (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR dummy_addr, int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr);
|
||||
extern void set_gdbarch_push_dummy_call (struct gdbarch *gdbarch, gdbarch_push_dummy_call_ftype *push_dummy_call);
|
||||
|
||||
#if defined (DEPRECATED_PUSH_DUMMY_FRAME)
|
||||
/* Legacy for systems yet to multi-arch DEPRECATED_PUSH_DUMMY_FRAME */
|
||||
#if !defined (DEPRECATED_PUSH_DUMMY_FRAME_P)
|
||||
|
||||
Reference in New Issue
Block a user