27#include "gdbsupport/x86-xstate.h"
38#define AMD64_FBSD_SIZEOF_GREGSET (22 * 8)
41#define AMD64_FBSD_SIZEOF_SEGBASES_REGSET (2 * 8)
164#define AMD64_SIGFRAME_UCONTEXT_OFFSET 16
165#define AMD64_UCONTEXT_MCONTEXT_OFFSET 16
166#define AMD64_SIZEOF_MCONTEXT_T 800
177 CORE_ADDR mcontext_addr
199 {0x48, ULONGEST_MAX},
200 {0x8d, ULONGEST_MAX},
201 {0x7c, ULONGEST_MAX},
202 {0x24, ULONGEST_MAX},
203 {0x10, ULONGEST_MAX},
204 {0x6a, ULONGEST_MAX},
205 {0x00, ULONGEST_MAX},
206 {0x48, ULONGEST_MAX},
207 {0xc7, ULONGEST_MAX},
208 {0xc0, ULONGEST_MAX},
209 {0xa1, ULONGEST_MAX},
210 {0x01, ULONGEST_MAX},
211 {0x00, ULONGEST_MAX},
212 {0x00, ULONGEST_MAX},
213 {0x0f, ULONGEST_MAX},
214 {0x05, ULONGEST_MAX},
227 x86_xsave_layout layout;
230 xcr0 = X86_XSTATE_SSE_MASK;
240 const void *xstateregs,
size_t len)
250 int regnum,
void *xstateregs,
size_t len)
278 "segment bases", cb_data);
282 "XSAVE extended state", cb_data);
289 CORE_ADDR
lm_addr, CORE_ADDR offset)
300 error (_(
"Unable to fetch %%fsbase"));
static const struct regset amd64fbsd_xstateregset
#define AMD64_SIGFRAME_UCONTEXT_OFFSET
#define AMD64_SIZEOF_MCONTEXT_T
static const struct tramp_frame amd64_fbsd_sigframe
static const struct regcache_map_entry amd64_fbsd_segbases_regmap[]
static const struct regcache_map_entry amd64_fbsd_gregmap[]
const struct regset amd64_fbsd_segbases_regset
#define AMD64_UCONTEXT_MCONTEXT_OFFSET
static void amd64fbsd_iterate_over_regset_sections(struct gdbarch *gdbarch, iterate_over_regset_sections_cb *cb, void *cb_data, const struct regcache *regcache)
static void amd64fbsd_supply_xstateregset(const struct regset *regset, struct regcache *regcache, int regnum, const void *xstateregs, size_t len)
static void amd64fbsd_init_abi(struct gdbarch_info info, struct gdbarch *gdbarch)
void _initialize_amd64fbsd_tdep()
static void amd64fbsd_collect_xstateregset(const struct regset *regset, const struct regcache *regcache, int regnum, void *xstateregs, size_t len)
static CORE_ADDR amd64fbsd_get_thread_local_address(struct gdbarch *gdbarch, ptid_t ptid, CORE_ADDR lm_addr, CORE_ADDR offset)
#define AMD64_FBSD_SIZEOF_SEGBASES_REGSET
const struct regset amd64_fbsd_gregset
#define AMD64_FBSD_SIZEOF_GREGSET
static void amd64_fbsd_sigframe_init(const struct tramp_frame *self, frame_info_ptr this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func)
static const struct regcache_map_entry amd64_fbsd_mcregmap[]
static const struct target_desc * amd64fbsd_core_read_description(struct gdbarch *gdbarch, struct target_ops *target, bfd *abfd)
void amd64_collect_xsave(const struct regcache *regcache, int regnum, void *xsave, int gcore)
const struct target_desc * amd64_target_description(uint64_t xcr0, bool segments)
void amd64_init_abi(struct gdbarch_info info, struct gdbarch *gdbarch, const target_desc *default_tdesc)
void amd64_supply_xsave(struct regcache *regcache, int regnum, const void *xsave)
const struct regset amd64_fpregset
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_core_read_x86_xsave_layout(struct gdbarch *gdbarch, gdbarch_core_read_x86_xsave_layout_ftype *core_read_x86_xsave_layout)
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)
uint64_t i386_fbsd_core_read_xsave_info(bfd *abfd, x86_xsave_layout &layout)
bool i386_fbsd_core_read_x86_xsave_layout(struct gdbarch *gdbarch, x86_xsave_layout &layout)
#define I386_FBSD_XSAVE_XCR0_OFFSET
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))
struct link_map_offsets * svr4_lp64_fetch_link_map_offsets(void)
CORE_ADDR svr4_fetch_objfile_link_map(struct objfile *objfile)
x86_xsave_layout xsave_layout
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