gdb: add target_ops::supports_displaced_step
[deliverable/binutils-gdb.git] / gdb / arm-linux-tdep.h
CommitLineData
cb587d83
DJ
1/* GNU/Linux on ARM target support, prototypes.
2
b811d2c2 3 Copyright (C) 2006-2020 Free Software Foundation, Inc.
cb587d83
DJ
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
cb587d83
DJ
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/>. */
cb587d83 19
1a5c2598
TT
20#ifndef ARM_LINUX_TDEP_H
21#define ARM_LINUX_TDEP_H
22
cb587d83
DJ
23struct regset;
24struct regcache;
25
f0452268
AH
26#define ARM_LINUX_SIZEOF_NWFPE (8 * ARM_FP_REGISTER_SIZE \
27 + 2 * ARM_INT_REGISTER_SIZE \
28 + 8 + ARM_INT_REGISTER_SIZE)
cb587d83
DJ
29
30/* Support for register format used by the NWFPE FPA emulator. Each
31 register takes three words, where either the first one, two, or
32 three hold a single, double, or extended precision value (depending
33 on the corresponding tag). The register set is eight registers,
34 followed by the fpsr and fpcr, followed by eight tag bytes, and a
35 final word flag which indicates whether NWFPE has been
36 initialized. */
37
f0452268
AH
38#define NWFPE_FPSR_OFFSET (8 * ARM_FP_REGISTER_SIZE)
39#define NWFPE_FPCR_OFFSET (NWFPE_FPSR_OFFSET + ARM_INT_REGISTER_SIZE)
40#define NWFPE_TAGS_OFFSET (NWFPE_FPCR_OFFSET + ARM_INT_REGISTER_SIZE)
cb587d83
DJ
41#define NWFPE_INITFLAG_OFFSET (NWFPE_TAGS_OFFSET + 8)
42
43void arm_linux_supply_gregset (const struct regset *regset,
44 struct regcache *regcache,
45 int regnum, const void *gregs_buf, size_t len);
46void arm_linux_collect_gregset (const struct regset *regset,
47 const struct regcache *regcache,
48 int regnum, void *gregs_buf, size_t len);
49
50void supply_nwfpe_register (struct regcache *regcache, int regno,
51 const gdb_byte *regs);
52void collect_nwfpe_register (const struct regcache *regcache, int regno,
53 gdb_byte *regs);
54
55void arm_linux_supply_nwfpe (const struct regset *regset,
56 struct regcache *regcache,
57 int regnum, const void *regs_buf, size_t len);
58void arm_linux_collect_nwfpe (const struct regset *regset,
59 const struct regcache *regcache,
60 int regnum, void *regs_buf, size_t len);
ef7e8358
UW
61
62/* ARM GNU/Linux HWCAP values. These are in defined in
63 <asm/elf.h> in current kernels. */
64#define HWCAP_VFP 64
65#define HWCAP_IWMMXT 512
66#define HWCAP_NEON 4096
67#define HWCAP_VFPv3 8192
68#define HWCAP_VFPv3D16 16384
69
1a5c2598 70#endif /* ARM_LINUX_TDEP_H */
This page took 0.822482 seconds and 4 git commands to generate.