27#include "gdbsupport/x86-xstate.h"
36#define I386_FBSD_SIZEOF_GREGSET (19 * 4)
39#define I386_FBSD_SIZEOF_SEGBASES_REGSET (2 * 4)
151#define I386_SIGFRAME_UCONTEXT_OFFSET 32
152#define I386_UCONTEXT_MCONTEXT_OFFSET 16
153#define I386_SIZEOF_MCONTEXT_T 640
164 CORE_ADDR mcontext_addr
249 asection *xstate = bfd_get_section_by_name (abfd,
".reg-xstate");
254 size_t size = bfd_section_size (xstate);
257 if (
size < X86_XSTATE_AVX_SIZE)
258 xcr0 = X86_XSTATE_SSE_MASK;
263 if (! bfd_get_section_contents (abfd, xstate, contents,
267 warning (_(
"Couldn't read `xcr0' bytes from "
268 "`.reg-xstate' section in core file."));
269 return X86_XSTATE_SSE_MASK;
272 xcr0 = bfd_get_64 (abfd, contents);
276 xcr0 = X86_XSTATE_SSE_MASK;
296 const void *xstateregs,
size_t len)
306 int regnum,
void *xstateregs,
size_t len)
336 "segment bases", cb_data);
338 if (tdep->
xcr0 & X86_XSTATE_AVX)
339 cb (
".reg-xstate", X86_XSTATE_SIZE (tdep->
xcr0),
341 "XSAVE extended state", cb_data);
348 CORE_ADDR
lm_addr, CORE_ADDR offset)
359 error (_(
"Unable to fetch %%gsbase"));
enum register_status cooked_read(int regnum, gdb_byte *buf)
CORE_ADDR fbsd_get_thread_local_address(struct gdbarch *gdbarch, CORE_ADDR dtv_addr, CORE_ADDR lm_addr, CORE_ADDR offset)
void fbsd_init_abi(struct gdbarch_info info, struct gdbarch *gdbarch)
ULONGEST get_frame_register_unsigned(frame_info_ptr frame, int regnum)
struct frame_id frame_id_build(CORE_ADDR stack_addr, CORE_ADDR code_addr)
void set_gdbarch_get_thread_local_address(struct gdbarch *gdbarch, gdbarch_get_thread_local_address_ftype *get_thread_local_address)
void set_gdbarch_core_read_description(struct gdbarch *gdbarch, gdbarch_core_read_description_ftype *core_read_description)
void set_gdbarch_fetch_tls_load_module_address(struct gdbarch *gdbarch, gdbarch_fetch_tls_load_module_address_ftype *fetch_tls_load_module_address)
int gdbarch_ptr_bit(struct gdbarch *gdbarch)
void set_gdbarch_iterate_over_regset_sections(struct gdbarch *gdbarch, gdbarch_iterate_over_regset_sections_ftype *iterate_over_regset_sections)
void() iterate_over_regset_sections_cb(const char *sect_name, int supply_size, int collect_size, const struct regset *regset, const char *human_name, void *cb_data)
void i386bsd_init_abi(struct gdbarch_info info, struct gdbarch *gdbarch)
static const struct tramp_frame i386_fbsd_sigframe
#define I386_SIGFRAME_UCONTEXT_OFFSET
static void i386fbsd_collect_xstateregset(const struct regset *regset, const struct regcache *regcache, int regnum, void *xstateregs, size_t len)
static const struct regset i386fbsd_xstateregset
static const struct tramp_frame i386_fbsd64_sigframe
static void i386fbsd_iterate_over_regset_sections(struct gdbarch *gdbarch, iterate_over_regset_sections_cb *cb, void *cb_data, const struct regcache *regcache)
static const struct regcache_map_entry i386_fbsd_gregmap[]
static const struct regcache_map_entry i386_fbsd_mcregmap[]
static CORE_ADDR i386fbsd_get_thread_local_address(struct gdbarch *gdbarch, ptid_t ptid, CORE_ADDR lm_addr, CORE_ADDR offset)
void _initialize_i386fbsd_tdep()
static const struct regcache_map_entry i386_fbsd_segbases_regmap[]
static const struct target_desc * i386fbsd_core_read_description(struct gdbarch *gdbarch, struct target_ops *target, bfd *abfd)
const struct regset i386_fbsd_gregset
#define I386_UCONTEXT_MCONTEXT_OFFSET
static void i386_fbsd_sigframe_init(const struct tramp_frame *self, frame_info_ptr this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func)
#define I386_SIZEOF_MCONTEXT_T
#define I386_FBSD_SIZEOF_GREGSET
#define I386_FBSD_SIZEOF_SEGBASES_REGSET
uint64_t i386fbsd_core_read_xcr0(bfd *abfd)
const struct regset i386_fbsd_segbases_regset
static void i386fbsd_supply_xstateregset(const struct regset *regset, struct regcache *regcache, int regnum, const void *xstateregs, size_t len)
static void i386fbsd_init_abi(struct gdbarch_info info, struct gdbarch *gdbarch)
#define I386_FBSD_XSAVE_XCR0_OFFSET
const struct regset i386_fpregset
const struct target_desc * i386_target_description(uint64_t xcr0, bool segments)
void i386_elf_init_abi(struct gdbarch_info info, struct gdbarch *gdbarch)
void i387_supply_xsave(struct regcache *regcache, int regnum, const void *xsave)
void i387_collect_xsave(const struct regcache *regcache, int regnum, void *xsave, int gcore)
struct inferior * current_inferior(void)
static CORE_ADDR lm_addr(struct so_list *so)
void gdbarch_register_osabi(enum bfd_architecture arch, unsigned long machine, enum gdb_osabi osabi, void(*init_osabi)(struct gdbarch_info, struct gdbarch *))
void regcache_collect_regset(const struct regset *regset, const struct regcache *regcache, int regnum, void *buf, size_t size)
struct regcache * get_thread_arch_regcache(process_stratum_target *target, ptid_t ptid, struct gdbarch *gdbarch)
void regcache_supply_regset(const struct regset *regset, struct regcache *regcache, int regnum, const void *buf, size_t size)
void(* func)(remote_target *remote, char *)
void set_solib_svr4_fetch_link_map_offsets(struct gdbarch *gdbarch, struct link_map_offsets *(*flmo)(void))
CORE_ADDR svr4_fetch_objfile_link_map(struct objfile *objfile)
struct link_map_offsets * svr4_ilp32_fetch_link_map_offsets(void)
void target_fetch_registers(struct regcache *regcache, int regno)
void trad_frame_set_reg_regmap(struct trad_frame_cache *this_trad_cache, const struct regcache_map_entry *regmap, CORE_ADDR addr, size_t size)
void trad_frame_set_id(struct trad_frame_cache *this_trad_cache, struct frame_id this_id)
void tramp_frame_prepend_unwinder(struct gdbarch *gdbarch, const struct tramp_frame *tramp_frame)
#define TRAMP_SENTINEL_INSN