GDB (xrefs)
/tmp/gdb-7.10/gdb/m68k-tdep.h
Go to the documentation of this file.
1 /* Target-dependent code for the Motorola 68000 series.
2 
3  Copyright (C) 1990-2015 Free Software Foundation, Inc.
4 
5  This file is part of GDB.
6 
7  This program is free software; you can redistribute it and/or modify
8  it under the terms of the GNU General Public License as published by
9  the Free Software Foundation; either version 3 of the License, or
10  (at your option) any later version.
11 
12  This program is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with this program. If not, see <http://www.gnu.org/licenses/>. */
19 
20 #ifndef M68K_TDEP_H
21 #define M68K_TDEP_H
22 
23 struct frame_info;
24 
25 /* Register numbers of various important registers. */
26 
28 {
36  M68K_FP_REGNUM = 14, /* Address of executing stack frame. */
37  M68K_SP_REGNUM = 15, /* Address of top of stack. */
38  M68K_PS_REGNUM = 16, /* Processor status. */
39  M68K_PC_REGNUM = 17, /* Program counter. */
40  M68K_FP0_REGNUM = 18, /* Floating point register 0. */
41  M68K_FPC_REGNUM = 26, /* 68881 control register. */
42  M68K_FPS_REGNUM = 27, /* 68881 status register. */
44 };
45 
46 /* Number of machine registers. */
47 #define M68K_NUM_REGS (M68K_FPI_REGNUM + 1)
48 
49 /* Size of the largest register. */
50 #define M68K_MAX_REGISTER_SIZE 12
51 
52 /* Convention for returning structures. */
53 
54 enum struct_return
55 {
56  pcc_struct_return, /* Return "short" structures in memory. */
57  reg_struct_return /* Return "short" structures in registers. */
58 };
59 
60 /* Particular flavour of m68k. */
62  {
66  };
67 
68 /* Target-dependent structure in gdbarch. */
69 
70 struct gdbarch_tdep
71 {
72  /* Offset to PC value in the jump buffer. If this is negative,
73  longjmp support will be disabled. */
74  int jb_pc;
75  /* The size of each entry in the jump buffer. */
76  size_t jb_elt_size;
77 
78  /* Register in which the address to store a structure value is
79  passed to a function. */
81 
82  /* Convention for returning structures. */
83  enum struct_return struct_return;
84 
85  /* Convention for returning floats. zero in int regs, non-zero in float. */
87 
88  /* The particular flavour of m68k. */
90 
91  /* Flag set if the floating point registers are present, or assumed
92  to be present. */
94 
95  /* ISA-specific data types. */
96  struct type *m68k_ps_type;
98 };
99 
100 /* Initialize a SVR4 architecture variant. */
101 extern void m68k_svr4_init_abi (struct gdbarch_info, struct gdbarch *);
102 
103 
104 /* Functions exported from m68kbsd-tdep.c. */
105 
106 extern int m68kbsd_fpreg_offset (struct gdbarch *gdbarch, int regnum);
107 
108 #endif /* m68k-tdep.h */
int float_return
Definition: m68k-tdep.h:86
int m68kbsd_fpreg_offset(struct gdbarch *gdbarch, int regnum)
Definition: m68kbsd-tdep.c:42
m68k_flavour
Definition: m68k-tdep.h:61
enum m68k_flavour flavour
Definition: m68k-tdep.h:89
struct_return
Definition: arm-tdep.h:148
m68k_regnum
Definition: m68k-tdep.h:27
Definition: gdbtypes.h:749
int regnum
Definition: aarch64-tdep.c:69
void m68k_svr4_init_abi(struct gdbarch_info, struct gdbarch *)
Definition: m68k-tdep.c:1065
size_t jb_elt_size
Definition: aarch64-tdep.h:83
int fpregs_present
Definition: m68k-tdep.h:93
struct type * m68881_ext_type
Definition: m68k-tdep.h:97
struct type * m68k_ps_type
Definition: m68k-tdep.h:96
int struct_value_regnum
Definition: m68k-tdep.h:80