gdb/netbsd: add missing header file
[binutils-gdb.git] / gdb / mn10300-tdep.h
1 /* Target-dependent interface for Matsushita MN10300 for GDB, the GNU debugger.
2
3 Copyright (C) 1996-2022 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 MN10300_TDEP_H
21 #define MN10300_TDEP_H
22
23 #include "gdbarch.h"
24
25 enum {
26 E_D0_REGNUM = 0,
27 E_D1_REGNUM = 1,
28 E_D2_REGNUM = 2,
29 E_D3_REGNUM = 3,
30 E_A0_REGNUM = 4,
31 E_A1_REGNUM = 5,
32 E_A2_REGNUM = 6,
33 E_A3_REGNUM = 7,
34 E_SP_REGNUM = 8,
35 E_PC_REGNUM = 9,
36 E_MDR_REGNUM = 10,
37 E_PSW_REGNUM = 11,
38 E_LIR_REGNUM = 12,
39 E_LAR_REGNUM = 13,
40 E_MDRQ_REGNUM = 14,
41 E_E0_REGNUM = 15,
42 E_E1_REGNUM = 16,
43 E_E2_REGNUM = 17,
44 E_E3_REGNUM = 18,
45 E_E4_REGNUM = 19,
46 E_E5_REGNUM = 20,
47 E_E6_REGNUM = 21,
48 E_E7_REGNUM = 22,
49 E_E8_REGNUM = 23,
50 E_E9_REGNUM = 24,
51 E_E10_REGNUM = 25,
52 E_MCRH_REGNUM = 26,
53 E_MCRL_REGNUM = 27,
54 E_MCVF_REGNUM = 28,
55 E_FPCR_REGNUM = 29,
56 E_FS0_REGNUM = 32
57 };
58
59 enum movm_register_bits {
60 movm_exother_bit = 0x01,
61 movm_exreg1_bit = 0x02,
62 movm_exreg0_bit = 0x04,
63 movm_other_bit = 0x08,
64 movm_a3_bit = 0x10,
65 movm_a2_bit = 0x20,
66 movm_d3_bit = 0x40,
67 movm_d2_bit = 0x80
68 };
69
70 /* Values for frame_info.status. */
71
72 enum frame_kind {
73 MY_FRAME_IN_SP = 0x1,
74 MY_FRAME_IN_FP = 0x2,
75 NO_MORE_FRAMES = 0x4
76 };
77
78 /* mn10300 private data. */
79 struct mn10300_gdbarch_tdep : gdbarch_tdep_base
80 {
81 int am33_mode;
82 };
83
84 static inline int
85 get_am33_mode (gdbarch *arch)
86 {
87 mn10300_gdbarch_tdep *tdep = gdbarch_tdep<mn10300_gdbarch_tdep> (arch);
88 return tdep->am33_mode;
89 }
90
91 #endif /* MN10300_TDEP_H */