X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Faarch64-tdep.h;h=f6ebabeaeb95b49010c0e70cfd9ca714e554a52f;hb=a435742a7fb32f6320ce0e6074e2500e28378104;hp=5a319551e6bb16f4768fb31ab160020823c6f487;hpb=63bad7b636870e3a0af4fc97cc2b8ec5c2603a41;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/aarch64-tdep.h b/gdb/aarch64-tdep.h index 5a319551e6..f6ebabeaeb 100644 --- a/gdb/aarch64-tdep.h +++ b/gdb/aarch64-tdep.h @@ -1,6 +1,6 @@ /* Common target dependent code for GDB on AArch64 systems. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2020 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GDB. @@ -23,6 +23,7 @@ #define AARCH64_TDEP_H #include "arch/aarch64.h" +#include "infrun.h" /* Forward declarations. */ struct gdbarch; @@ -31,7 +32,14 @@ struct regset; /* AArch64 Dwarf register numbering. */ #define AARCH64_DWARF_X0 0 #define AARCH64_DWARF_SP 31 +#define AARCH64_DWARF_PAUTH_RA_STATE 34 +#define AARCH64_DWARF_PAUTH_DMASK 35 +#define AARCH64_DWARF_PAUTH_CMASK 36 #define AARCH64_DWARF_V0 64 +#define AARCH64_DWARF_SVE_VG 46 +#define AARCH64_DWARF_SVE_FFR 47 +#define AARCH64_DWARF_SVE_P0 48 +#define AARCH64_DWARF_SVE_Z0 96 /* Size of integer registers. */ #define X_REGISTER_SIZE 8 @@ -49,7 +57,7 @@ struct regset; /* The maximum number of modified instructions generated for one single-stepped instruction. */ -#define DISPLACED_MODIFIED_INSNS 1 +#define AARCH64_DISPLACED_MODIFIED_INSNS 1 /* Target-dependent structure in gdbarch. */ struct gdbarch_tdep @@ -83,14 +91,23 @@ struct gdbarch_tdep { return vq != 0; } + + int pauth_reg_base; + int pauth_ra_state_regnum; + + /* Returns true if the target supports pauth. */ + bool has_pauth () const + { + return pauth_reg_base != -1; + } }; -const target_desc *aarch64_read_description (uint64_t vq); +const target_desc *aarch64_read_description (uint64_t vq, bool pauth_p); extern int aarch64_process_record (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR addr); -struct displaced_step_closure * +displaced_step_closure_up aarch64_displaced_step_copy_insn (struct gdbarch *gdbarch, CORE_ADDR from, CORE_ADDR to, struct regcache *regs);