X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=gdb%2Famd64-tdep.h;h=c18766e71c46a5db593d4d20a8939cf98bf3204b;hb=2c474c46943e5242f356a0c0676e2f7bd223c8a9;hp=fa30648265ef8b928c732442c0edeb446ccddf53;hpb=03b62bbbce3dc5f15131d9e78f77d035cd1cffb3;p=binutils-gdb.git diff --git a/gdb/amd64-tdep.h b/gdb/amd64-tdep.h index fa30648265e..c18766e71c4 100644 --- a/gdb/amd64-tdep.h +++ b/gdb/amd64-tdep.h @@ -1,6 +1,6 @@ /* Target-dependent definitions for AMD64. - Copyright (C) 2001-2016 Free Software Foundation, Inc. + Copyright (C) 2001-2022 Free Software Foundation, Inc. Contributed by Jiri Smid, SuSE Labs. This file is part of GDB. @@ -26,6 +26,7 @@ struct frame_info; struct regcache; #include "i386-tdep.h" +#include "infrun.h" /* Register numbers of various important registers. */ @@ -76,28 +77,37 @@ enum amd64_regnum AMD64_K0_REGNUM, AMD64_K7_REGNUM = AMD64_K0_REGNUM + 7, AMD64_ZMM0H_REGNUM, - AMD64_ZMM31H_REGNUM = AMD64_ZMM0H_REGNUM + 31 + AMD64_ZMM31H_REGNUM = AMD64_ZMM0H_REGNUM + 31, + AMD64_PKRU_REGNUM, + AMD64_FSBASE_REGNUM, + AMD64_GSBASE_REGNUM }; /* Number of general purpose registers. */ #define AMD64_NUM_GREGS 24 -#define AMD64_NUM_REGS (AMD64_ZMM31H_REGNUM + 1) +#define AMD64_NUM_REGS (AMD64_GSBASE_REGNUM + 1) -extern struct target_desc *tdesc_amd64; - -extern struct displaced_step_closure *amd64_displaced_step_copy_insn +extern displaced_step_copy_insn_closure_up amd64_displaced_step_copy_insn (struct gdbarch *gdbarch, CORE_ADDR from, CORE_ADDR to, struct regcache *regs); -extern void amd64_displaced_step_fixup (struct gdbarch *gdbarch, - struct displaced_step_closure *closure, - CORE_ADDR from, CORE_ADDR to, - struct regcache *regs); - -extern void amd64_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch); +extern void amd64_displaced_step_fixup + (struct gdbarch *gdbarch, displaced_step_copy_insn_closure *closure, + CORE_ADDR from, CORE_ADDR to, struct regcache *regs); + +/* Initialize the ABI for amd64. Uses DEFAULT_TDESC as fallback + tdesc, if INFO does not specify one. */ +extern void amd64_init_abi (struct gdbarch_info info, + struct gdbarch *gdbarch, + const target_desc *default_tdesc); + +/* Initialize the ABI for x32. Uses DEFAULT_TDESC as fallback tdesc, + if INFO does not specify one. */ extern void amd64_x32_init_abi (struct gdbarch_info info, - struct gdbarch *gdbarch); -extern const struct target_desc *amd64_target_description (uint64_t xcr0); + struct gdbarch *gdbarch, + const target_desc *default_tdesc); +extern const struct target_desc *amd64_target_description (uint64_t xcr0, + bool segments); /* Fill register REGNUM in REGCACHE with the appropriate floating-point or SSE register value from *FXSAVE. If REGNUM is @@ -128,15 +138,10 @@ extern const struct regset amd64_fpregset; /* Variables exported from amd64-linux-tdep.c. */ extern int amd64_linux_gregset_reg_offset[]; -/* Variables exported from amd64-nbsd-tdep.c. */ +/* Variables exported from amd64-netbsd-tdep.c. */ extern int amd64nbsd_r_reg_offset[]; /* Variables exported from amd64-obsd-tdep.c. */ extern int amd64obsd_r_reg_offset[]; -/* Variables exported from amd64-fbsd-tdep.c. */ -extern CORE_ADDR amd64fbsd_sigtramp_start_addr; -extern CORE_ADDR amd64fbsd_sigtramp_end_addr; -extern int amd64fbsd_sc_reg_offset[]; - #endif /* amd64-tdep.h */