Guard against 'current_directory == NULL' on gdb_abspath (PR gdb/23613)
[deliverable/binutils-gdb.git] / gdb / sh-nbsd-tdep.c
CommitLineData
54fe9172
MK
1/* Target-dependent code for NetBSD/sh.
2
42a4f53d 3 Copyright (C) 2002-2019 Free Software Foundation, Inc.
54fe9172 4
13a38d45
JT
5 Contributed by Wasabi Systems, Inc.
6
7 This file is part of GDB.
8
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
a9762ec7 11 the Free Software Foundation; either version 3 of the License, or
13a38d45
JT
12 (at your option) any later version.
13
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
18
19 You should have received a copy of the GNU General Public License
a9762ec7 20 along with this program. If not, see <http://www.gnu.org/licenses/>. */
13a38d45
JT
21
22#include "defs.h"
23#include "gdbcore.h"
861fb77c 24#include "regset.h"
13a38d45 25#include "value.h"
4be87837 26#include "osabi.h"
13a38d45 27
ab3b8126 28#include "sh-tdep.h"
861fb77c 29#include "solib-svr4.h"
0d12e84c 30#include "gdbarch.h"
13a38d45 31
c9ac0a72 32/* Convert a register number into an offset into a ptrace
13a38d45 33 register structure. */
c9ac0a72 34static const struct sh_corefile_regmap regmap[] =
13a38d45 35{
c9ac0a72
AS
36 {R0_REGNUM, 20 * 4},
37 {R0_REGNUM + 1, 19 * 4},
38 {R0_REGNUM + 2, 18 * 4},
39 {R0_REGNUM + 3, 17 * 4},
40 {R0_REGNUM + 4, 16 * 4},
41 {R0_REGNUM + 5, 15 * 4},
42 {R0_REGNUM + 6, 14 * 4},
43 {R0_REGNUM + 7, 13 * 4},
44 {R0_REGNUM + 8, 12 * 4},
45 {R0_REGNUM + 9, 11 * 4},
46 {R0_REGNUM + 10, 10 * 4},
47 {R0_REGNUM + 11, 9 * 4},
48 {R0_REGNUM + 12, 8 * 4},
49 {R0_REGNUM + 13, 7 * 4},
50 {R0_REGNUM + 14, 6 * 4},
51 {R0_REGNUM + 15, 5 * 4},
52 {PC_REGNUM, 0 * 4},
53 {SR_REGNUM, 1 * 4},
54 {PR_REGNUM, 2 * 4},
55 {MACH_REGNUM, 3 * 4},
56 {MACL_REGNUM, 4 * 4},
57 {-1 /* Terminator. */, 0}
13a38d45 58};
861fb77c 59\f
13a38d45
JT
60
61static void
20cb8cda 62shnbsd_init_abi (struct gdbarch_info info,
13a38d45
JT
63 struct gdbarch *gdbarch)
64{
c9ac0a72
AS
65 struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
66
67 tdep->core_gregmap = (struct sh_corefile_regmap *)regmap;
c6d41a6f 68 tdep->sizeof_gregset = 84;
861fb77c
MK
69
70 set_solib_svr4_fetch_link_map_offsets
71 (gdbarch, svr4_ilp32_fetch_link_map_offsets);
72}
63807e1d 73
13a38d45 74void
20cb8cda 75_initialize_shnbsd_tdep (void)
13a38d45 76{
1736a7bd 77 gdbarch_register_osabi (bfd_arch_sh, 0, GDB_OSABI_NETBSD,
05816f70 78 shnbsd_init_abi);
1736a7bd 79 gdbarch_register_osabi (bfd_arch_sh, 0, GDB_OSABI_OPENBSD,
54fe9172 80 shnbsd_init_abi);
13a38d45 81}
This page took 1.894014 seconds and 4 git commands to generate.