/* Target-dependent code for the Motorola 68000 series.
- Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1999, 2000, 2001,
- 2003, 2004, 2007 Free Software Foundation, Inc.
+ Copyright (C) 1990-2022 Free Software Foundation, Inc.
This file is part of GDB.
#ifndef M68K_TDEP_H
#define M68K_TDEP_H
+#include "gdbarch.h"
+
struct frame_info;
/* Register numbers of various important registers. */
/* Target-dependent structure in gdbarch. */
-struct gdbarch_tdep
+struct m68k_gdbarch_tdep : gdbarch_tdep
{
/* Offset to PC value in the jump buffer. If this is negative,
longjmp support will be disabled. */
- int jb_pc;
+ int jb_pc = 0;
/* The size of each entry in the jump buffer. */
- size_t jb_elt_size;
+ size_t jb_elt_size = 0;
/* Register in which the address to store a structure value is
passed to a function. */
- int struct_value_regnum;
+ int struct_value_regnum = 0;
+
+ /* Register in which a pointer value is returned. In the SVR4 ABI,
+ this is %a0, but in GCC's "embedded" ABI, this is %d0. */
+ int pointer_result_regnum = 0;
/* Convention for returning structures. */
- enum struct_return struct_return;
+ enum struct_return struct_return {};
/* Convention for returning floats. zero in int regs, non-zero in float. */
- int float_return;
+ int float_return = 0;
/* The particular flavour of m68k. */
- enum m68k_flavour flavour;
+ enum m68k_flavour flavour {};
/* Flag set if the floating point registers are present, or assumed
to be present. */
- int fpregs_present;
+ int fpregs_present = 0;
+
+ /* ISA-specific data types. */
+ struct type *m68k_ps_type = nullptr;
+ struct type *m68881_ext_type = nullptr;
};
/* Initialize a SVR4 architecture variant. */
extern void m68k_svr4_init_abi (struct gdbarch_info, struct gdbarch *);
\f
-/* Functions exported from m68kbsd-tdep.c. */
+/* Functions exported from m68k-bsd-tdep.c. */
-extern int m68kbsd_fpreg_offset (int regnum);
+extern int m68kbsd_fpreg_offset (struct gdbarch *gdbarch, int regnum);
#endif /* m68k-tdep.h */