gdb: add target_ops::supports_displaced_step
[deliverable/binutils-gdb.git] / gdb / m68k-tdep.h
CommitLineData
748894bf
MK
1/* Target-dependent code for the Motorola 68000 series.
2
b811d2c2 3 Copyright (C) 1990-2020 Free Software Foundation, Inc.
32eeb91a
AS
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
a9762ec7 9 the Free Software Foundation; either version 3 of the License, or
32eeb91a
AS
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
a9762ec7 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
32eeb91a
AS
19
20#ifndef M68K_TDEP_H
21#define M68K_TDEP_H
22
8de307e0
AS
23struct frame_info;
24
748894bf 25/* Register numbers of various important registers. */
32eeb91a 26
748894bf 27enum m68k_regnum
32eeb91a
AS
28{
29 M68K_D0_REGNUM = 0,
8de307e0 30 M68K_D1_REGNUM = 1,
c0c2b0db
MK
31 M68K_D2_REGNUM = 2,
32 M68K_D7_REGNUM = 7,
32eeb91a
AS
33 M68K_A0_REGNUM = 8,
34 M68K_A1_REGNUM = 9,
c0c2b0db 35 M68K_A2_REGNUM = 10,
748894bf
MK
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. */
32eeb91a
AS
43 M68K_FPI_REGNUM = 28
44};
45
748894bf
MK
46/* Number of machine registers. */
47#define M68K_NUM_REGS (M68K_FPI_REGNUM + 1)
8de307e0
AS
48
49/* Size of the largest register. */
50#define M68K_MAX_REGISTER_SIZE 12
51
c481dac7
AS
52/* Convention for returning structures. */
53
54enum struct_return
55{
56 pcc_struct_return, /* Return "short" structures in memory. */
57 reg_struct_return /* Return "short" structures in registers. */
58};
59
8ed86d01
VP
60/* Particular flavour of m68k. */
61enum m68k_flavour
62 {
63 m68k_no_flavour,
64 m68k_coldfire_flavour,
65 m68k_fido_flavour
66 };
67
eb2e12d7 68/* Target-dependent structure in gdbarch. */
748894bf 69
eb2e12d7
AS
70struct 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;
8de307e0 77
f595cb19
MK
78 /* Register in which the address to store a structure value is
79 passed to a function. */
80 int struct_value_regnum;
81
c481dac7
AS
82 /* Convention for returning structures. */
83 enum struct_return struct_return;
8ed86d01
VP
84
85 /* Convention for returning floats. zero in int regs, non-zero in float. */
86 int float_return;
87
88 /* The particular flavour of m68k. */
89 enum m68k_flavour flavour;
90
91 /* Flag set if the floating point registers are present, or assumed
92 to be present. */
93 int fpregs_present;
27067745
UW
94
95 /* ISA-specific data types. */
209bd28e 96 struct type *m68k_ps_type;
27067745 97 struct type *m68881_ext_type;
eb2e12d7
AS
98};
99
f595cb19
MK
100/* Initialize a SVR4 architecture variant. */
101extern void m68k_svr4_init_abi (struct gdbarch_info, struct gdbarch *);
102\f
103
03b62bbb 104/* Functions exported from m68k-bsd-tdep.c. */
511dd2cd 105
6ba38425 106extern int m68kbsd_fpreg_offset (struct gdbarch *gdbarch, int regnum);
511dd2cd 107
748894bf 108#endif /* m68k-tdep.h */
This page took 1.499544 seconds and 4 git commands to generate.