GDB (xrefs)
|
Go to the source code of this file.
Macros | |
#define | I387_NUM_REGS 16 |
#define | I387_ST0_REGNUM(tdep) ((tdep)->st0_regnum) |
#define | I387_NUM_XMM_REGS(tdep) ((tdep)->num_xmm_regs) |
#define | I387_NUM_XMM_AVX512_REGS(tdep) ((tdep)->num_xmm_avx512_regs) |
#define | I387_MM0_REGNUM(tdep) ((tdep)->mm0_regnum) |
#define | I387_NUM_YMM_REGS(tdep) ((tdep)->num_ymm_regs) |
#define | I387_YMM0H_REGNUM(tdep) ((tdep)->ymm0h_regnum) |
#define | I387_BND0R_REGNUM(tdep) ((tdep)->bnd0r_regnum) |
#define | I387_BNDCFGU_REGNUM(tdep) ((tdep)->bndcfgu_regnum) |
#define | I387_NUM_MPX_REGS 6 |
#define | I387_NUM_BND_REGS 4 |
#define | I387_NUM_MPX_CTRL_REGS 2 |
#define | I387_NUM_K_REGS 8 |
#define | I387_NUM_PKEYS_REGS 1 |
#define | I387_PKRU_REGNUM(tdep) ((tdep)->pkru_regnum) |
#define | I387_K0_REGNUM(tdep) ((tdep)->k0_regnum) |
#define | I387_NUM_ZMMH_REGS(tdep) ((tdep)->num_zmm_regs) |
#define | I387_ZMM0H_REGNUM(tdep) ((tdep)->zmm0h_regnum) |
#define | I387_NUM_YMM_AVX512_REGS(tdep) ((tdep)->num_ymm_avx512_regs) |
#define | I387_YMM16H_REGNUM(tdep) ((tdep)->ymm16h_regnum) |
#define | I387_FCTRL_REGNUM(tdep) (I387_ST0_REGNUM (tdep) + 8) |
#define | I387_FSTAT_REGNUM(tdep) (I387_FCTRL_REGNUM (tdep) + 1) |
#define | I387_FTAG_REGNUM(tdep) (I387_FCTRL_REGNUM (tdep) + 2) |
#define | I387_FISEG_REGNUM(tdep) (I387_FCTRL_REGNUM (tdep) + 3) |
#define | I387_FIOFF_REGNUM(tdep) (I387_FCTRL_REGNUM (tdep) + 4) |
#define | I387_FOSEG_REGNUM(tdep) (I387_FCTRL_REGNUM (tdep) + 5) |
#define | I387_FOOFF_REGNUM(tdep) (I387_FCTRL_REGNUM (tdep) + 6) |
#define | I387_FOP_REGNUM(tdep) (I387_FCTRL_REGNUM (tdep) + 7) |
#define | I387_XMM0_REGNUM(tdep) (I387_ST0_REGNUM (tdep) + 16) |
#define | I387_XMM16_REGNUM(tdep) ((tdep)->xmm16_regnum) |
#define | I387_MXCSR_REGNUM(tdep) (I387_XMM0_REGNUM (tdep) + I387_NUM_XMM_REGS (tdep)) |
#define | I387_YMM0_REGNUM(tdep) (I387_MXCSR_REGNUM(tdep) + 1) |
#define | I387_YMMENDH_REGNUM(tdep) (I387_YMM0H_REGNUM (tdep) + I387_NUM_YMM_REGS (tdep)) |
#define | I387_MPXEND_REGNUM(tdep) (I387_BND0R_REGNUM (tdep) + I387_NUM_MPX_REGS) |
#define | I387_KEND_REGNUM(tdep) (I387_K0_REGNUM (tdep) + I387_NUM_K_REGS) |
#define | I387_ZMMENDH_REGNUM(tdep) (I387_ZMM0H_REGNUM (tdep) + I387_NUM_ZMMH_REGS (tdep)) |
#define | I387_YMMH_AVX512_END_REGNUM(tdep) (I387_YMM16H_REGNUM (tdep) + I387_NUM_YMM_AVX512_REGS (tdep)) |
#define | I387_XMM_AVX512_END_REGNUM(tdep) (I387_XMM16_REGNUM (tdep) + I387_NUM_XMM_AVX512_REGS (tdep)) |
#define | I387_PKEYSEND_REGNUM(tdep) (I387_PKRU_REGNUM (tdep) + I387_NUM_PKEYS_REGS) |
#define | I387_SIZEOF_FSAVE 108 |
#define | I387_SIZEOF_FXSAVE 512 |
Functions | |
void | i387_print_float_info (struct gdbarch *gdbarch, struct ui_file *file, frame_info_ptr frame, const char *args) |
int | i387_convert_register_p (struct gdbarch *gdbarch, int regnum, struct type *type) |
int | i387_register_to_value (frame_info_ptr frame, int regnum, struct type *type, gdb_byte *to, int *optimizedp, int *unavailablep) |
void | i387_value_to_register (frame_info_ptr frame, int regnum, struct type *type, const gdb_byte *from) |
void | i387_supply_fsave (struct regcache *regcache, int regnum, const void *fsave) |
void | i387_collect_fsave (const struct regcache *regcache, int regnum, void *fsave) |
void | i387_supply_fxsave (struct regcache *regcache, int regnum, const void *fxsave) |
void | i387_supply_xsave (struct regcache *regcache, int regnum, const void *xsave) |
void | i387_collect_fxsave (const struct regcache *regcache, int regnum, void *fxsave) |
void | i387_collect_xsave (const struct regcache *regcache, int regnum, void *xsave, int gcore) |
ULONGEST | i387_xsave_get_clear_bv (struct gdbarch *gdbarch, const void *xsave) |
void | i387_return_value (struct gdbarch *gdbarch, struct regcache *regcache) |
void | i387_reset_bnd_regs (struct gdbarch *gdbarch, struct regcache *regcache) |
#define I387_BND0R_REGNUM | ( | tdep | ) | ((tdep)->bnd0r_regnum) |
Definition at line 39 of file i387-tdep.h.
#define I387_BNDCFGU_REGNUM | ( | tdep | ) | ((tdep)->bndcfgu_regnum) |
Definition at line 40 of file i387-tdep.h.
#define I387_FCTRL_REGNUM | ( | tdep | ) | (I387_ST0_REGNUM (tdep) + 8) |
Definition at line 56 of file i387-tdep.h.
#define I387_FIOFF_REGNUM | ( | tdep | ) | (I387_FCTRL_REGNUM (tdep) + 4) |
Definition at line 60 of file i387-tdep.h.
#define I387_FISEG_REGNUM | ( | tdep | ) | (I387_FCTRL_REGNUM (tdep) + 3) |
Definition at line 59 of file i387-tdep.h.
#define I387_FOOFF_REGNUM | ( | tdep | ) | (I387_FCTRL_REGNUM (tdep) + 6) |
Definition at line 62 of file i387-tdep.h.
#define I387_FOP_REGNUM | ( | tdep | ) | (I387_FCTRL_REGNUM (tdep) + 7) |
Definition at line 63 of file i387-tdep.h.
#define I387_FOSEG_REGNUM | ( | tdep | ) | (I387_FCTRL_REGNUM (tdep) + 5) |
Definition at line 61 of file i387-tdep.h.
#define I387_FSTAT_REGNUM | ( | tdep | ) | (I387_FCTRL_REGNUM (tdep) + 1) |
Definition at line 57 of file i387-tdep.h.
#define I387_FTAG_REGNUM | ( | tdep | ) | (I387_FCTRL_REGNUM (tdep) + 2) |
Definition at line 58 of file i387-tdep.h.
#define I387_K0_REGNUM | ( | tdep | ) | ((tdep)->k0_regnum) |
Definition at line 50 of file i387-tdep.h.
#define I387_KEND_REGNUM | ( | tdep | ) | (I387_K0_REGNUM (tdep) + I387_NUM_K_REGS) |
Definition at line 75 of file i387-tdep.h.
#define I387_MM0_REGNUM | ( | tdep | ) | ((tdep)->mm0_regnum) |
Definition at line 35 of file i387-tdep.h.
#define I387_MPXEND_REGNUM | ( | tdep | ) | (I387_BND0R_REGNUM (tdep) + I387_NUM_MPX_REGS) |
Definition at line 72 of file i387-tdep.h.
#define I387_MXCSR_REGNUM | ( | tdep | ) | (I387_XMM0_REGNUM (tdep) + I387_NUM_XMM_REGS (tdep)) |
Definition at line 66 of file i387-tdep.h.
#define I387_NUM_BND_REGS 4 |
Definition at line 44 of file i387-tdep.h.
#define I387_NUM_K_REGS 8 |
Definition at line 46 of file i387-tdep.h.
#define I387_NUM_MPX_CTRL_REGS 2 |
Definition at line 45 of file i387-tdep.h.
#define I387_NUM_MPX_REGS 6 |
Definition at line 43 of file i387-tdep.h.
#define I387_NUM_PKEYS_REGS 1 |
Definition at line 47 of file i387-tdep.h.
#define I387_NUM_REGS 16 |
Definition at line 30 of file i387-tdep.h.
#define I387_NUM_XMM_AVX512_REGS | ( | tdep | ) | ((tdep)->num_xmm_avx512_regs) |
Definition at line 34 of file i387-tdep.h.
#define I387_NUM_XMM_REGS | ( | tdep | ) | ((tdep)->num_xmm_regs) |
Definition at line 33 of file i387-tdep.h.
#define I387_NUM_YMM_AVX512_REGS | ( | tdep | ) | ((tdep)->num_ymm_avx512_regs) |
Definition at line 53 of file i387-tdep.h.
#define I387_NUM_YMM_REGS | ( | tdep | ) | ((tdep)->num_ymm_regs) |
Definition at line 36 of file i387-tdep.h.
#define I387_NUM_ZMMH_REGS | ( | tdep | ) | ((tdep)->num_zmm_regs) |
Definition at line 51 of file i387-tdep.h.
#define I387_PKEYSEND_REGNUM | ( | tdep | ) | (I387_PKRU_REGNUM (tdep) + I387_NUM_PKEYS_REGS) |
Definition at line 84 of file i387-tdep.h.
#define I387_PKRU_REGNUM | ( | tdep | ) | ((tdep)->pkru_regnum) |
Definition at line 49 of file i387-tdep.h.
#define I387_SIZEOF_FSAVE 108 |
Definition at line 116 of file i387-tdep.h.
#define I387_SIZEOF_FXSAVE 512 |
Definition at line 117 of file i387-tdep.h.
#define I387_ST0_REGNUM | ( | tdep | ) | ((tdep)->st0_regnum) |
Definition at line 32 of file i387-tdep.h.
#define I387_XMM0_REGNUM | ( | tdep | ) | (I387_ST0_REGNUM (tdep) + 16) |
Definition at line 64 of file i387-tdep.h.
#define I387_XMM16_REGNUM | ( | tdep | ) | ((tdep)->xmm16_regnum) |
Definition at line 65 of file i387-tdep.h.
#define I387_XMM_AVX512_END_REGNUM | ( | tdep | ) | (I387_XMM16_REGNUM (tdep) + I387_NUM_XMM_AVX512_REGS (tdep)) |
Definition at line 81 of file i387-tdep.h.
#define I387_YMM0_REGNUM | ( | tdep | ) | (I387_MXCSR_REGNUM(tdep) + 1) |
Definition at line 68 of file i387-tdep.h.
#define I387_YMM0H_REGNUM | ( | tdep | ) | ((tdep)->ymm0h_regnum) |
Definition at line 37 of file i387-tdep.h.
#define I387_YMM16H_REGNUM | ( | tdep | ) | ((tdep)->ymm16h_regnum) |
Definition at line 54 of file i387-tdep.h.
#define I387_YMMENDH_REGNUM | ( | tdep | ) | (I387_YMM0H_REGNUM (tdep) + I387_NUM_YMM_REGS (tdep)) |
Definition at line 69 of file i387-tdep.h.
#define I387_YMMH_AVX512_END_REGNUM | ( | tdep | ) | (I387_YMM16H_REGNUM (tdep) + I387_NUM_YMM_AVX512_REGS (tdep)) |
Definition at line 79 of file i387-tdep.h.
#define I387_ZMM0H_REGNUM | ( | tdep | ) | ((tdep)->zmm0h_regnum) |
Definition at line 52 of file i387-tdep.h.
#define I387_ZMMENDH_REGNUM | ( | tdep | ) | (I387_ZMM0H_REGNUM (tdep) + I387_NUM_ZMMH_REGS (tdep)) |
Definition at line 77 of file i387-tdep.h.
void i387_collect_fsave | ( | const struct regcache * | regcache, |
int | regnum, | ||
void * | fsave | ||
) |
Definition at line 495 of file i387-tdep.c.
References reg_buffer::arch(), FSAVE_ADDR, I386_ST0_REGNUM, I387_FCTRL_REGNUM, I387_FIOFF_REGNUM, I387_FOOFF_REGNUM, I387_FOP_REGNUM, I387_ST0_REGNUM, I387_XMM0_REGNUM, reg_buffer::raw_collect(), regnum, and i386_gdbarch_tdep::st0_regnum.
Referenced by fill_fpregset(), i386_collect_fpregset(), i386bsd_store_inferior_registers(), i386nto_regset_fill(), store_fpregs(), store_register(), go32_nat_target::store_registers(), and i386_fbsd_nat_target::store_registers().
void i387_collect_fxsave | ( | const struct regcache * | regcache, |
int | regnum, | ||
void * | fxsave | ||
) |
Definition at line 673 of file i387-tdep.c.
References reg_buffer::arch(), FXSAVE_ADDR, FXSAVE_MXCSR_ADDR, I386_ST0_REGNUM, I387_FCTRL_REGNUM, I387_FIOFF_REGNUM, I387_FOOFF_REGNUM, I387_FOP_REGNUM, I387_FTAG_REGNUM, I387_MXCSR_REGNUM, I387_ST0_REGNUM, I387_XMM0_REGNUM, i386_gdbarch_tdep::num_xmm_regs, reg_buffer::raw_collect(), regnum, and i386_gdbarch_tdep::st0_regnum.
Referenced by amd64_collect_fxsave(), i386_collect_fpregset(), i386bsd_store_inferior_registers(), i386nto_regset_fill(), store_fpxregs(), i386_darwin_nat_target::store_registers(), and i386_fbsd_nat_target::store_registers().
void i387_collect_xsave | ( | const struct regcache * | regcache, |
int | regnum, | ||
void * | xsave, | ||
int | gcore | ||
) |
Definition at line 1347 of file i387-tdep.c.
References all, reg_buffer::arch(), extract_unsigned_integer(), FXSAVE_ADDR, FXSAVE_MXCSR_ADDR, gdbarch_byte_order(), I386_MAX_REGISTER_SIZE, I386_ST0_REGNUM, I387_BND0R_REGNUM, I387_BNDCFGU_REGNUM, I387_FCTRL_REGNUM, I387_FIOFF_REGNUM, I387_FOOFF_REGNUM, I387_FOP_REGNUM, I387_FTAG_REGNUM, I387_K0_REGNUM, I387_KEND_REGNUM, I387_MPXEND_REGNUM, I387_MXCSR_REGNUM, I387_PKEYSEND_REGNUM, I387_PKRU_REGNUM, I387_ST0_REGNUM, I387_XMM0_REGNUM, I387_XMM16_REGNUM, I387_XMM_AVX512_END_REGNUM, I387_YMM0H_REGNUM, I387_YMM16H_REGNUM, I387_YMMENDH_REGNUM, I387_YMMH_AVX512_END_REGNUM, I387_ZMM0H_REGNUM, I387_ZMMENDH_REGNUM, i386_gdbarch_tdep::num_xmm_regs, i386_gdbarch_tdep::num_zmm_regs, reg_buffer::raw_collect(), regcache_register_size(), regnum, i386_gdbarch_tdep::st0_regnum, store_unsigned_integer(), i386_gdbarch_tdep::xcr0, XSAVE_AVX512_K_ADDR, XSAVE_AVX512_ZMM_H_ADDR, XSAVE_AVXH_ADDR, XSAVE_MPX_ADDR, XSAVE_PKEYS_ADDR, i386_gdbarch_tdep::xsave_xcr0_offset, XSAVE_XMM_AVX512_ADDR, XSAVE_XSTATE_BV_ADDR, and XSAVE_YMM_AVX512_ADDR.
Referenced by amd64_collect_xsave(), i386_linux_collect_xstateregset(), i386fbsd_collect_xstateregset(), i386_fbsd_nat_target::store_registers(), and store_xstateregs().
Definition at line 327 of file i387-tdep.c.
References type::code(), i386_fp_regnum_p(), i387_ext_type(), and regnum.
Referenced by amd64_init_abi(), and i386_convert_register_p().
void i387_print_float_info | ( | struct gdbarch * | gdbarch, |
struct ui_file * | file, | ||
frame_info_ptr | frame, | ||
const char * | args | ||
) |
Definition at line 204 of file i387-tdep.c.
References gdb_printf(), gdb_puts(), get_frame_arch(), get_frame_register_value(), I387_FCTRL_REGNUM, I387_FIOFF_REGNUM, I387_FISEG_REGNUM, I387_FOOFF_REGNUM, I387_FOP_REGNUM, I387_FOSEG_REGNUM, I387_FSTAT_REGNUM, I387_FTAG_REGNUM, I387_ST0_REGNUM, print_i387_control_word(), print_i387_ext(), print_i387_status_word(), read_frame_register_unsigned(), regnum, value_contents(), and value_entirely_available().
Referenced by i386_gdbarch_init().
int i387_register_to_value | ( | frame_info_ptr | frame, |
int | regnum, | ||
struct type * | type, | ||
gdb_byte * | to, | ||
int * | optimizedp, | ||
int * | unavailablep | ||
) |
Definition at line 348 of file i387-tdep.c.
References type::code(), get_frame_arch(), get_frame_register_bytes(), i386_fp_regnum_p(), I386_MAX_REGISTER_SIZE, i387_ext_type(), register_size(), regnum, and target_float_convert().
Referenced by amd64_init_abi(), and i386_register_to_value().
Definition at line 1957 of file i387-tdep.c.
References I387_BND0R_REGNUM, I387_NUM_BND_REGS, and regcache::raw_write().
Referenced by amd64_push_dummy_call(), and i386_thiscall_push_dummy_call().
Definition at line 1934 of file i387-tdep.c.
References I387_FSTAT_REGNUM, I387_FTAG_REGNUM, regcache_raw_read_unsigned(), and regcache_raw_write_unsigned().
Referenced by amd64_return_value().
void i387_supply_fsave | ( | struct regcache * | regcache, |
int | regnum, | ||
const void * | fsave | ||
) |
Definition at line 440 of file i387-tdep.c.
References reg_buffer::arch(), FSAVE_ADDR, gdbarch_byte_order(), I386_ST0_REGNUM, I387_FCTRL_REGNUM, I387_FIOFF_REGNUM, I387_FOOFF_REGNUM, I387_FOP_REGNUM, I387_MXCSR_REGNUM, I387_ST0_REGNUM, I387_XMM0_REGNUM, reg_buffer::raw_supply(), regnum, i386_gdbarch_tdep::st0_regnum, and store_unsigned_integer().
Referenced by fetch_fpregs(), fetch_register(), go32_nat_target::fetch_registers(), i386_fbsd_nat_target::fetch_registers(), i386_supply_fpregset(), i386bsd_fetch_inferior_registers(), i386nto_supply_fpregset(), and supply_fpregset().
void i387_supply_fxsave | ( | struct regcache * | regcache, |
int | regnum, | ||
const void * | fxsave | ||
) |
Definition at line 589 of file i387-tdep.c.
References reg_buffer::arch(), FXSAVE_ADDR, FXSAVE_MXCSR_ADDR, I386_ST0_REGNUM, I387_FCTRL_REGNUM, I387_FIOFF_REGNUM, I387_FOOFF_REGNUM, I387_FOP_REGNUM, I387_FSTAT_REGNUM, I387_FTAG_REGNUM, I387_MXCSR_REGNUM, I387_ST0_REGNUM, i387_tag(), I387_XMM0_REGNUM, i386_gdbarch_tdep::num_xmm_regs, reg_buffer::raw_supply(), regnum, and i386_gdbarch_tdep::st0_regnum.
Referenced by amd64_supply_fxsave(), fetch_fpxregs(), i386_darwin_nat_target::fetch_registers(), i386_fbsd_nat_target::fetch_registers(), i386_supply_fpregset(), i386bsd_fetch_inferior_registers(), and i386nto_supply_fpregset().
void i387_supply_xsave | ( | struct regcache * | regcache, |
int | regnum, | ||
const void * | xsave | ||
) |
Definition at line 924 of file i387-tdep.c.
References all, reg_buffer::arch(), FXSAVE_ADDR, FXSAVE_MXCSR_ADDR, gdbarch_byte_order(), I386_MAX_REGISTER_SIZE, I386_ST0_REGNUM, I387_BND0R_REGNUM, I387_BNDCFGU_REGNUM, I387_FCTRL_REGNUM, I387_FIOFF_REGNUM, I387_FOOFF_REGNUM, I387_FOP_REGNUM, I387_FSTAT_REGNUM, I387_FTAG_REGNUM, I387_K0_REGNUM, I387_KEND_REGNUM, I387_MPXEND_REGNUM, I387_MXCSR_REGNUM, I387_PKEYSEND_REGNUM, I387_PKRU_REGNUM, I387_ST0_REGNUM, i387_tag(), I387_XMM0_REGNUM, I387_XMM16_REGNUM, I387_XMM_AVX512_END_REGNUM, i387_xsave_get_clear_bv(), I387_YMM0H_REGNUM, I387_YMM16H_REGNUM, I387_YMMENDH_REGNUM, I387_YMMH_AVX512_END_REGNUM, I387_ZMM0H_REGNUM, I387_ZMMENDH_REGNUM, i386_gdbarch_tdep::num_xmm_regs, i386_gdbarch_tdep::num_zmm_regs, reg_buffer::raw_supply(), regnum, i386_gdbarch_tdep::st0_regnum, store_unsigned_integer(), i386_gdbarch_tdep::xcr0, XSAVE_AVX512_K_ADDR, XSAVE_AVX512_ZMM_H_ADDR, XSAVE_AVXH_ADDR, XSAVE_MPX_ADDR, XSAVE_PKEYS_ADDR, XSAVE_XMM_AVX512_ADDR, and XSAVE_YMM_AVX512_ADDR.
Referenced by amd64_supply_xsave(), i386_fbsd_nat_target::fetch_registers(), fetch_xstateregs(), i386_linux_supply_xstateregset(), and i386fbsd_supply_xstateregset().
void i387_value_to_register | ( | frame_info_ptr | frame, |
int | regnum, | ||
struct type * | type, | ||
const gdb_byte * | from | ||
) |
Definition at line 383 of file i387-tdep.c.
References type::code(), get_frame_arch(), i386_fp_regnum_p(), I386_MAX_REGISTER_SIZE, i387_ext_type(), put_frame_register(), regnum, and target_float_convert().
Referenced by amd64_init_abi(), and i386_value_to_register().
ULONGEST i387_xsave_get_clear_bv | ( | struct gdbarch * | gdbarch, |
const void * | xsave | ||
) |
Definition at line 905 of file i387-tdep.c.
References extract_unsigned_integer(), gdbarch_byte_order(), i386_gdbarch_tdep::xcr0, and XSAVE_XSTATE_BV_ADDR.
Referenced by amd64_supply_xsave(), and i387_supply_xsave().