Commit | Line | Data |
---|---|---|
748894bf MK |
1 | /* Target-dependent code for the Motorola 68000 series. |
2 | ||
3 | Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1999, 2000, | |
4 | 2001, 2003, 2004 Free Software Foundation, Inc. | |
32eeb91a AS |
5 | |
6 | This file is part of GDB. | |
7 | ||
8 | This program is free software; you can redistribute it and/or modify | |
9 | it under the terms of the GNU General Public License as published by | |
10 | the Free Software Foundation; either version 2 of the License, or | |
11 | (at your option) any later version. | |
12 | ||
13 | This program is distributed in the hope that it will be useful, | |
14 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 | GNU General Public License for more details. | |
17 | ||
18 | You should have received a copy of the GNU General Public License | |
19 | along with this program; if not, write to the Free Software | |
20 | Foundation, Inc., 59 Temple Place - Suite 330, | |
21 | Boston, MA 02111-1307, USA. */ | |
22 | ||
23 | #ifndef M68K_TDEP_H | |
24 | #define M68K_TDEP_H | |
25 | ||
8de307e0 AS |
26 | struct frame_info; |
27 | ||
748894bf | 28 | /* Register numbers of various important registers. */ |
32eeb91a | 29 | |
748894bf | 30 | enum m68k_regnum |
32eeb91a AS |
31 | { |
32 | M68K_D0_REGNUM = 0, | |
8de307e0 | 33 | M68K_D1_REGNUM = 1, |
c0c2b0db MK |
34 | M68K_D2_REGNUM = 2, |
35 | M68K_D7_REGNUM = 7, | |
32eeb91a AS |
36 | M68K_A0_REGNUM = 8, |
37 | M68K_A1_REGNUM = 9, | |
c0c2b0db | 38 | M68K_A2_REGNUM = 10, |
748894bf MK |
39 | M68K_FP_REGNUM = 14, /* Address of executing stack frame. */ |
40 | M68K_SP_REGNUM = 15, /* Address of top of stack. */ | |
41 | M68K_PS_REGNUM = 16, /* Processor status. */ | |
42 | M68K_PC_REGNUM = 17, /* Program counter. */ | |
43 | M68K_FP0_REGNUM = 18, /* Floating point register 0. */ | |
44 | M68K_FPC_REGNUM = 26, /* 68881 control register. */ | |
45 | M68K_FPS_REGNUM = 27, /* 68881 status register. */ | |
32eeb91a AS |
46 | M68K_FPI_REGNUM = 28 |
47 | }; | |
48 | ||
748894bf MK |
49 | /* Number of machine registers. */ |
50 | #define M68K_NUM_REGS (M68K_FPI_REGNUM + 1) | |
8de307e0 AS |
51 | |
52 | /* Size of the largest register. */ | |
53 | #define M68K_MAX_REGISTER_SIZE 12 | |
54 | ||
c481dac7 AS |
55 | /* Convention for returning structures. */ |
56 | ||
57 | enum struct_return | |
58 | { | |
59 | pcc_struct_return, /* Return "short" structures in memory. */ | |
60 | reg_struct_return /* Return "short" structures in registers. */ | |
61 | }; | |
62 | ||
eb2e12d7 | 63 | /* Target-dependent structure in gdbarch. */ |
748894bf | 64 | |
eb2e12d7 AS |
65 | struct gdbarch_tdep |
66 | { | |
67 | /* Offset to PC value in the jump buffer. If this is negative, | |
68 | longjmp support will be disabled. */ | |
69 | int jb_pc; | |
70 | /* The size of each entry in the jump buffer. */ | |
71 | size_t jb_elt_size; | |
8de307e0 | 72 | |
f595cb19 MK |
73 | /* Register in which the address to store a structure value is |
74 | passed to a function. */ | |
75 | int struct_value_regnum; | |
76 | ||
c481dac7 AS |
77 | /* Convention for returning structures. */ |
78 | enum struct_return struct_return; | |
eb2e12d7 AS |
79 | }; |
80 | ||
f595cb19 MK |
81 | /* Initialize a SVR4 architecture variant. */ |
82 | extern void m68k_svr4_init_abi (struct gdbarch_info, struct gdbarch *); | |
83 | \f | |
84 | ||
511dd2cd MK |
85 | /* Functions exported from m68kbsd-tdep.c. */ |
86 | ||
87 | extern int m68kbsd_fpreg_offset (int regnum); | |
88 | ||
748894bf | 89 | #endif /* m68k-tdep.h */ |