gdb: Don't reorder line table entries too much when sorting.
[deliverable/binutils-gdb.git] / gdb / i386-gnu-tdep.c
CommitLineData
e0ca2bb9 1/* Target-dependent code for the GNU Hurd.
b811d2c2 2 Copyright (C) 2002-2020 Free Software Foundation, Inc.
c906108c 3
c5aa993b 4 This file is part of GDB.
c906108c 5
c5aa993b
JM
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
a9762ec7 8 the Free Software Foundation; either version 3 of the License, or
c5aa993b 9 (at your option) any later version.
c906108c 10
c5aa993b
JM
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
c906108c 15
c5aa993b 16 You should have received a copy of the GNU General Public License
a9762ec7 17 along with this program. If not, see <http://www.gnu.org/licenses/>. */
c906108c 18
e0ca2bb9 19#include "defs.h"
4be87837 20#include "osabi.h"
8d005789 21#include "solib-svr4.h"
c906108c 22
e0ca2bb9
MK
23#include "i386-tdep.h"
24
ac3d87c0
UW
25/* From <sys/ucontext.h>. */
26static int i386gnu_gregset_reg_offset[] =
27{
28 11 * 4, /* %eax */
29 10 * 4, /* %ecx */
30 9 * 4, /* %edx */
31 8 * 4, /* %ebx */
32 17 * 4, /* %uesp */
33 6 * 4, /* %ebp */
34 5 * 4, /* %esi */
35 4 * 4, /* %edi */
36 14 * 4, /* %eip */
37 16 * 4, /* %efl */
38 15 * 4, /* %cs */
39 18 * 4, /* %ss */
40 3 * 4, /* %ds */
41 2 * 4, /* %es */
42 1 * 4, /* %fs */
43 0 * 4, /* %gs */
44};
45
e0ca2bb9
MK
46static void
47i386gnu_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
48{
49 struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
50
51 /* GNU uses ELF. */
52 i386_elf_init_abi (info, gdbarch);
53
8d005789
UW
54 set_solib_svr4_fetch_link_map_offsets
55 (gdbarch, svr4_ilp32_fetch_link_map_offsets);
56
ac3d87c0
UW
57 tdep->gregset_reg_offset = i386gnu_gregset_reg_offset;
58 tdep->gregset_num_regs = ARRAY_SIZE (i386gnu_gregset_reg_offset);
59 tdep->sizeof_gregset = 19 * 4;
60
e0ca2bb9
MK
61 tdep->jb_pc_offset = 20; /* From <bits/setjmp.h>. */
62}
63
6c265988 64void _initialize_i386gnu_tdep ();
e0ca2bb9 65void
6c265988 66_initialize_i386gnu_tdep ()
e0ca2bb9 67{
05816f70 68 gdbarch_register_osabi (bfd_arch_i386, 0, GDB_OSABI_HURD, i386gnu_init_abi);
e0ca2bb9 69}
This page took 1.513462 seconds and 4 git commands to generate.