[ARC] Fix typo in extension instruction name.
[deliverable/binutils-gdb.git] / gdb / i386-linux-tdep.h
CommitLineData
0542c381
AC
1/* Target-dependent code for GNU/Linux x86.
2
618f726f 3 Copyright (C) 2002-2016 Free Software Foundation, Inc.
8201327c
MK
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
8201327c
MK
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/>. */
8201327c
MK
19
20#ifndef I386_LINUX_TDEP_H
21#define I386_LINUX_TDEP_H
22
23/* The Linux kernel pretends there is an additional "orig_eax"
24 register. Since GDB needs access to that register to be able to
25 properly restart system calls when necessary (see
26 i386-linux-tdep.c) we need our own versions of a number of
27 functions that deal with GDB's register cache. */
28
29/* Register number for the "orig_eax" pseudo-register. If this
30 pseudo-register contains a value >= 0 it is interpreted as the
31 system call number that the kernel is supposed to restart. */
01f9f808 32#define I386_LINUX_ORIG_EAX_REGNUM (I386_ZMM7H_REGNUM + 1)
8201327c 33
60fac5b8
MK
34/* Total number of registers for GNU/Linux. */
35#define I386_LINUX_NUM_REGS (I386_LINUX_ORIG_EAX_REGNUM + 1)
36
c131fcee 37/* Get XSAVE extended state xcr0 from core dump. */
6df81a63 38extern uint64_t i386_linux_core_read_xcr0 (bfd *abfd);
c131fcee 39
012b3a21
WT
40/* Handle and display information related to the MPX bound violation
41 to the user. */
42extern void i386_linux_handle_segmentation_fault (struct gdbarch *gdbarch,
43 struct ui_out *uiout);
44
90884b2b
L
45/* Linux target description. */
46extern struct target_desc *tdesc_i386_linux;
3a13a53b 47extern struct target_desc *tdesc_i386_mmx_linux;
c131fcee 48extern struct target_desc *tdesc_i386_avx_linux;
1dbcd68c 49extern struct target_desc *tdesc_i386_mpx_linux;
01f9f808 50extern struct target_desc *tdesc_i386_avx512_linux;
c131fcee
L
51
52/* Format of XSAVE extended state is:
53 struct
54 {
55 fxsave_bytes[0..463]
56 sw_usable_bytes[464..511]
57 xstate_hdr_bytes[512..575]
58 avx_bytes[576..831]
1dbcd68c 59 mpx_bytes [960..1032]
01f9f808
MS
60 avx512_k_regs[1088..1152]
61 avx512_zmmh_regs0-7[1153..1407]
62 avx512_zmmh_regs8-15[1408..1663]
63 avx512_zmm_regs16-31[1664..2687]
c131fcee
L
64 future_state etc
65 };
66
67 Same memory layout will be used for the coredump NT_X86_XSTATE
68 representing the XSAVE extended state registers.
69
70 The first 8 bytes of the sw_usable_bytes[464..467] is the OS enabled
71 extended state mask, which is the same as the extended control register
72 0 (the XFEATURE_ENABLED_MASK register), XCR0. We can use this mask
73 together with the mask saved in the xstate_hdr_bytes to determine what
74 states the processor/OS supports and what state, used or initialized,
75 the process/thread is in. */
76#define I386_LINUX_XSAVE_XCR0_OFFSET 464
90884b2b 77
be0d2954
L
78extern int i386_linux_gregset_reg_offset[];
79
190b495d
WT
80/* Return x86 siginfo type. */
81extern struct type *x86_linux_get_siginfo_type (struct gdbarch *gdbarch);
82
8201327c 83#endif /* i386-linux-tdep.h */
This page took 1.066566 seconds and 4 git commands to generate.