GDB (xrefs)
Loading...
Searching...
No Matches
Macros | Functions
i387-tdep.h File Reference

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_ZMM16H_REGNUM(tdep)   ((tdep)->zmm0h_regnum + 16)
 
#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)
 
bool i387_guess_xsave_layout (uint64_t xcr0, size_t xsave_size, x86_xsave_layout &layout)
 
x86_xsave_layout i387_fallback_xsave_layout (uint64_t xcr0)
 
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)
 

Macro Definition Documentation

◆ I387_BND0R_REGNUM

#define I387_BND0R_REGNUM ( tdep)    ((tdep)->bnd0r_regnum)

◆ I387_BNDCFGU_REGNUM

#define I387_BNDCFGU_REGNUM ( tdep)    ((tdep)->bndcfgu_regnum)

Definition at line 41 of file i387-tdep.h.

Referenced by i386_mpx_ctrl_regnum_p(), i387_collect_xsave(), and i387_supply_xsave().

◆ I387_FCTRL_REGNUM

#define I387_FCTRL_REGNUM ( tdep)    (I387_ST0_REGNUM (tdep) + 8)

◆ I387_FIOFF_REGNUM

#define I387_FIOFF_REGNUM ( tdep)    (I387_FCTRL_REGNUM (tdep) + 4)

◆ I387_FISEG_REGNUM

#define I387_FISEG_REGNUM ( tdep)    (I387_FCTRL_REGNUM (tdep) + 3)

◆ I387_FOOFF_REGNUM

#define I387_FOOFF_REGNUM ( tdep)    (I387_FCTRL_REGNUM (tdep) + 6)

◆ I387_FOP_REGNUM

#define I387_FOP_REGNUM ( tdep)    (I387_FCTRL_REGNUM (tdep) + 7)

◆ I387_FOSEG_REGNUM

#define I387_FOSEG_REGNUM ( tdep)    (I387_FCTRL_REGNUM (tdep) + 5)

◆ I387_FSTAT_REGNUM

#define I387_FSTAT_REGNUM ( tdep)    (I387_FCTRL_REGNUM (tdep) + 1)

◆ I387_FTAG_REGNUM

#define I387_FTAG_REGNUM ( tdep)    (I387_FCTRL_REGNUM (tdep) + 2)

◆ I387_K0_REGNUM

#define I387_K0_REGNUM ( tdep)    ((tdep)->k0_regnum)

Definition at line 51 of file i387-tdep.h.

Referenced by i387_collect_xsave(), and i387_supply_xsave().

◆ I387_KEND_REGNUM

#define I387_KEND_REGNUM ( tdep)     (I387_K0_REGNUM (tdep) + I387_NUM_K_REGS)

Definition at line 77 of file i387-tdep.h.

Referenced by i387_collect_xsave(), and i387_supply_xsave().

◆ I387_MM0_REGNUM

#define I387_MM0_REGNUM ( tdep)    ((tdep)->mm0_regnum)

◆ I387_MPXEND_REGNUM

#define I387_MPXEND_REGNUM ( tdep)     (I387_BND0R_REGNUM (tdep) + I387_NUM_MPX_REGS)

Definition at line 74 of file i387-tdep.h.

Referenced by i387_collect_xsave(), and i387_supply_xsave().

◆ I387_MXCSR_REGNUM

#define I387_MXCSR_REGNUM ( tdep)     (I387_XMM0_REGNUM (tdep) + I387_NUM_XMM_REGS (tdep))

◆ I387_NUM_BND_REGS

#define I387_NUM_BND_REGS   4

◆ I387_NUM_K_REGS

#define I387_NUM_K_REGS   8

Definition at line 47 of file i387-tdep.h.

Referenced by i386_k_regnum_p(), and i386_validate_tdesc_p().

◆ I387_NUM_MPX_CTRL_REGS

#define I387_NUM_MPX_CTRL_REGS   2

Definition at line 46 of file i387-tdep.h.

Referenced by i386_mpx_ctrl_regnum_p().

◆ I387_NUM_MPX_REGS

#define I387_NUM_MPX_REGS   6

Definition at line 44 of file i387-tdep.h.

Referenced by i386_validate_tdesc_p().

◆ I387_NUM_PKEYS_REGS

#define I387_NUM_PKEYS_REGS   1

Definition at line 48 of file i387-tdep.h.

Referenced by i386_pkru_regnum_p(), and i386_validate_tdesc_p().

◆ I387_NUM_REGS

#define I387_NUM_REGS   16

Definition at line 31 of file i387-tdep.h.

Referenced by amd64_init_abi(), i386_gdbarch_init(), and i386nto_regset_id().

◆ I387_NUM_XMM_AVX512_REGS

#define I387_NUM_XMM_AVX512_REGS ( tdep)    ((tdep)->num_xmm_avx512_regs)

Definition at line 35 of file i387-tdep.h.

Referenced by i386_xmm_avx512_regnum_p().

◆ I387_NUM_XMM_REGS

#define I387_NUM_XMM_REGS ( tdep)    ((tdep)->num_xmm_regs)

Definition at line 34 of file i387-tdep.h.

Referenced by i386_mxcsr_regnum_p(), and i386_xmm_regnum_p().

◆ I387_NUM_YMM_AVX512_REGS

#define I387_NUM_YMM_AVX512_REGS ( tdep)    ((tdep)->num_ymm_avx512_regs)

Definition at line 55 of file i387-tdep.h.

◆ I387_NUM_YMM_REGS

#define I387_NUM_YMM_REGS ( tdep)    ((tdep)->num_ymm_regs)

Definition at line 37 of file i387-tdep.h.

◆ I387_NUM_ZMMH_REGS

#define I387_NUM_ZMMH_REGS ( tdep)    ((tdep)->num_zmm_regs)

Definition at line 52 of file i387-tdep.h.

◆ I387_PKEYSEND_REGNUM

#define I387_PKEYSEND_REGNUM ( tdep)     (I387_PKRU_REGNUM (tdep) + I387_NUM_PKEYS_REGS)

Definition at line 86 of file i387-tdep.h.

Referenced by i387_collect_xsave(), and i387_supply_xsave().

◆ I387_PKRU_REGNUM

#define I387_PKRU_REGNUM ( tdep)    ((tdep)->pkru_regnum)

Definition at line 50 of file i387-tdep.h.

Referenced by i386_validate_tdesc_p(), i387_collect_xsave(), and i387_supply_xsave().

◆ I387_SIZEOF_FSAVE

#define I387_SIZEOF_FSAVE   108

Definition at line 118 of file i387-tdep.h.

Referenced by i386_gdbarch_init().

◆ I387_SIZEOF_FXSAVE

#define I387_SIZEOF_FXSAVE   512

◆ I387_ST0_REGNUM

#define I387_ST0_REGNUM ( tdep)    ((tdep)->st0_regnum)

◆ I387_XMM0_REGNUM

#define I387_XMM0_REGNUM ( tdep)    (I387_ST0_REGNUM (tdep) + 16)

◆ I387_XMM16_REGNUM

#define I387_XMM16_REGNUM ( tdep)    ((tdep)->xmm16_regnum)

◆ I387_XMM_AVX512_END_REGNUM

#define I387_XMM_AVX512_END_REGNUM ( tdep)     (I387_XMM16_REGNUM (tdep) + I387_NUM_XMM_AVX512_REGS (tdep))

Definition at line 83 of file i387-tdep.h.

Referenced by i387_collect_xsave(), and i387_supply_xsave().

◆ I387_YMM0_REGNUM

#define I387_YMM0_REGNUM ( tdep)    (I387_MXCSR_REGNUM(tdep) + 1)

Definition at line 70 of file i387-tdep.h.

Referenced by i386_pseudo_register_write().

◆ I387_YMM0H_REGNUM

#define I387_YMM0H_REGNUM ( tdep)    ((tdep)->ymm0h_regnum)

Definition at line 38 of file i387-tdep.h.

Referenced by i387_collect_xsave(), and i387_supply_xsave().

◆ I387_YMM16H_REGNUM

#define I387_YMM16H_REGNUM ( tdep)    ((tdep)->ymm16h_regnum)

◆ I387_YMMENDH_REGNUM

#define I387_YMMENDH_REGNUM ( tdep)     (I387_YMM0H_REGNUM (tdep) + I387_NUM_YMM_REGS (tdep))

Definition at line 71 of file i387-tdep.h.

Referenced by i387_collect_xsave(), and i387_supply_xsave().

◆ I387_YMMH_AVX512_END_REGNUM

#define I387_YMMH_AVX512_END_REGNUM ( tdep)     (I387_YMM16H_REGNUM (tdep) + I387_NUM_YMM_AVX512_REGS (tdep))

Definition at line 81 of file i387-tdep.h.

Referenced by i387_collect_xsave(), and i387_supply_xsave().

◆ I387_ZMM0H_REGNUM

#define I387_ZMM0H_REGNUM ( tdep)    ((tdep)->zmm0h_regnum)

Definition at line 53 of file i387-tdep.h.

Referenced by i387_collect_xsave(), and i387_supply_xsave().

◆ I387_ZMM16H_REGNUM

#define I387_ZMM16H_REGNUM ( tdep)    ((tdep)->zmm0h_regnum + 16)

Definition at line 54 of file i387-tdep.h.

Referenced by i387_collect_xsave(), and i387_supply_xsave().

◆ I387_ZMMENDH_REGNUM

#define I387_ZMMENDH_REGNUM ( tdep)     (I387_ZMM0H_REGNUM (tdep) + I387_NUM_ZMMH_REGS (tdep))

Definition at line 79 of file i387-tdep.h.

Referenced by i387_collect_xsave(), and i387_supply_xsave().

Function Documentation

◆ i387_collect_fsave()

void i387_collect_fsave ( const struct regcache * regcache,
int regnum,
void * fsave )
extern

◆ i387_collect_fxsave()

void i387_collect_fxsave ( const struct regcache * regcache,
int regnum,
void * fxsave )
extern

◆ i387_collect_xsave()

void i387_collect_xsave ( const struct regcache * regcache,
int regnum,
void * xsave,
int gcore )
extern

◆ i387_convert_register_p()

int i387_convert_register_p ( struct gdbarch * gdbarch,
int regnum,
struct type * type )
extern

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().

◆ i387_fallback_xsave_layout()

x86_xsave_layout i387_fallback_xsave_layout ( uint64_t xcr0)
extern

Definition at line 993 of file i387-tdep.c.

Referenced by i386_gdbarch_init().

◆ i387_guess_xsave_layout()

bool i387_guess_xsave_layout ( uint64_t xcr0,
size_t xsave_size,
x86_xsave_layout & layout )
extern

Definition at line 938 of file i387-tdep.c.

Referenced by i386_fbsd_core_read_xsave_info(), and i386_linux_core_read_xsave_info().

◆ i387_print_float_info()

void i387_print_float_info ( struct gdbarch * gdbarch,
struct ui_file * file,
frame_info_ptr frame,
const char * args )
extern

◆ i387_register_to_value()

int i387_register_to_value ( frame_info_ptr frame,
int regnum,
struct type * type,
gdb_byte * to,
int * optimizedp,
int * unavailablep )
extern

◆ i387_reset_bnd_regs()

void i387_reset_bnd_regs ( struct gdbarch * gdbarch,
struct regcache * regcache )
extern

◆ i387_return_value()

void i387_return_value ( struct gdbarch * gdbarch,
struct regcache * regcache )
extern

◆ i387_supply_fsave()

void i387_supply_fsave ( struct regcache * regcache,
int regnum,
const void * fsave )
extern

◆ i387_supply_fxsave()

void i387_supply_fxsave ( struct regcache * regcache,
int regnum,
const void * fxsave )
extern

◆ i387_supply_xsave()

void i387_supply_xsave ( struct regcache * regcache,
int regnum,
const void * xsave )
extern

◆ i387_value_to_register()

void i387_value_to_register ( frame_info_ptr frame,
int regnum,
struct type * type,
const gdb_byte * from )
extern

◆ i387_xsave_get_clear_bv()

ULONGEST i387_xsave_get_clear_bv ( struct gdbarch * gdbarch,
const void * xsave )
extern