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
186 {0x8d, ULONGEST_MAX},
187 {0x44, ULONGEST_MAX},
188 {0x24, ULONGEST_MAX},
189 {0x20, ULONGEST_MAX},
190 {0x50, ULONGEST_MAX},
191 {0xf7, ULONGEST_MAX},
192 {0x40, ULONGEST_MAX},
193 {0x54, ULONGEST_MAX},
194 {0x00, ULONGEST_MAX},
195 {0x00, ULONGEST_MAX},
196 {0x02, ULONGEST_MAX},
197 {0x00, ULONGEST_MAX},
198 {0x75, ULONGEST_MAX},
199 {0x03, ULONGEST_MAX},
200 {0x8e, ULONGEST_MAX},
201 {0x68, ULONGEST_MAX},
202 {0x14, ULONGEST_MAX},
203 {0xb8, ULONGEST_MAX},
204 {0xa1, ULONGEST_MAX},
205 {0x01, ULONGEST_MAX},
206 {0x00, ULONGEST_MAX},
207 {0x00, ULONGEST_MAX},
208 {0x50, ULONGEST_MAX},
209 {0xcd, ULONGEST_MAX},
210 {0x80, ULONGEST_MAX},
226 {0x8d, ULONGEST_MAX},
227 {0x44, ULONGEST_MAX},
228 {0x24, ULONGEST_MAX},
229 {0x20, ULONGEST_MAX},
230 {0x50, ULONGEST_MAX},
231 {0xb8, ULONGEST_MAX},
232 {0xa1, ULONGEST_MAX},
233 {0x01, ULONGEST_MAX},
234 {0x00, ULONGEST_MAX},
235 {0x00, ULONGEST_MAX},
236 {0x50, ULONGEST_MAX},
237 {0xcd, ULONGEST_MAX},
238 {0x80, ULONGEST_MAX},
249 asection *xstate = bfd_get_section_by_name (abfd,
".reg-xstate");
250 if (xstate ==
nullptr)
254 size_t size = bfd_section_size (xstate);
255 if (
size < X86_XSTATE_AVX_SIZE)
259 if (! bfd_get_section_contents (abfd, xstate, contents,
262 warning (_(
"Couldn't read `xcr0' bytes from "
263 "`.reg-xstate' section in core file."));
267 uint64_t xcr0 = bfd_get_64 (abfd, contents);
279 x86_xsave_layout &layout)
291 x86_xsave_layout layout;
294 xcr0 = X86_XSTATE_X87_MASK;
303 const void *xstateregs,
size_t len)
313 int regnum,
void *xstateregs,
size_t len)
343 "segment bases", cb_data);
348 "XSAVE extended state", cb_data);
355 CORE_ADDR
lm_addr, CORE_ADDR offset)
366 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_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)
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 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)
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)
bool i387_guess_xsave_layout(uint64_t xcr0, size_t xsave_size, x86_xsave_layout &layout)
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)
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