GDB (xrefs)
|
#include "defs.h"
#include "doublest.h"
#include "floatformat.h"
#include "frame.h"
#include "gdbcore.h"
#include "inferior.h"
#include "language.h"
#include "regcache.h"
#include "value.h"
#include "i386-tdep.h"
#include "i387-tdep.h"
#include "x86-xstate.h"
Go to the source code of this file.
Macros | |
#define | FSAVE_ADDR(tdep, fsave, regnum) (fsave + fsave_offset[regnum - I387_ST0_REGNUM (tdep)]) |
#define | FXSAVE_ADDR(tdep, fxsave, regnum) (fxsave + fxsave_offset[regnum - I387_ST0_REGNUM (tdep)]) |
#define | FXSAVE_MXCSR_ADDR(fxsave) (fxsave + 24) |
#define | XSAVE_XSTATE_BV_ADDR(xsave) (xsave + 512) |
#define | XSAVE_AVXH_ADDR(tdep, xsave, regnum) (xsave + xsave_avxh_offset[regnum - I387_YMM0H_REGNUM (tdep)]) |
#define | XSAVE_YMM_AVX512_ADDR(tdep, xsave, regnum) (xsave + xsave_ymm_avx512_offset[regnum - I387_YMM16H_REGNUM (tdep)]) |
#define | XSAVE_XMM_AVX512_ADDR(tdep, xsave, regnum) (xsave + xsave_xmm_avx512_offset[regnum - I387_XMM16_REGNUM (tdep)]) |
#define | XSAVE_MPX_ADDR(tdep, xsave, regnum) (xsave + xsave_mpx_offset[regnum - I387_BND0R_REGNUM (tdep)]) |
#define | XSAVE_AVX512_K_ADDR(tdep, xsave, regnum) (xsave + xsave_avx512_k_offset[regnum - I387_K0_REGNUM (tdep)]) |
#define | XSAVE_AVX512_ZMM_H_ADDR(tdep, xsave, regnum) (xsave + xsave_avx512_zmm_h_offset[regnum - I387_ZMM0H_REGNUM (tdep)]) |
Variables | |
static int | fsave_offset [] |
static int | fxsave_offset [] |
static int | xsave_avxh_offset [] |
static int | xsave_ymm_avx512_offset [] |
static int | xsave_xmm_avx512_offset [] |
static int | xsave_mpx_offset [] |
static int | xsave_avx512_k_offset [] |
static int | xsave_avx512_zmm_h_offset [] |
#define FSAVE_ADDR | ( | tdep, | |
fsave, | |||
regnum | |||
) | (fsave + fsave_offset[regnum - I387_ST0_REGNUM (tdep)]) |
Definition at line 438 of file i387-tdep.c.
Referenced by i387_collect_fsave(), and i387_supply_fsave().
#define FXSAVE_ADDR | ( | tdep, | |
fxsave, | |||
regnum | |||
) | (fxsave + fxsave_offset[regnum - I387_ST0_REGNUM (tdep)]) |
Definition at line 577 of file i387-tdep.c.
Referenced by i387_collect_fxsave(), i387_collect_xsave(), i387_supply_fxsave(), and i387_supply_xsave().
#define FXSAVE_MXCSR_ADDR | ( | fxsave | ) | (fxsave + 24) |
Definition at line 585 of file i387-tdep.c.
Referenced by i387_collect_fxsave(), i387_collect_xsave(), i387_supply_fxsave(), and i387_supply_xsave().
#define XSAVE_AVX512_K_ADDR | ( | tdep, | |
xsave, | |||
regnum | |||
) | (xsave + xsave_avx512_k_offset[regnum - I387_K0_REGNUM (tdep)]) |
Definition at line 845 of file i387-tdep.c.
Referenced by i387_collect_xsave(), and i387_supply_xsave().
#define XSAVE_AVX512_ZMM_H_ADDR | ( | tdep, | |
xsave, | |||
regnum | |||
) | (xsave + xsave_avx512_zmm_h_offset[regnum - I387_ZMM0H_REGNUM (tdep)]) |
Definition at line 888 of file i387-tdep.c.
Referenced by i387_collect_xsave(), and i387_supply_xsave().
#define XSAVE_AVXH_ADDR | ( | tdep, | |
xsave, | |||
regnum | |||
) | (xsave + xsave_avxh_offset[regnum - I387_YMM0H_REGNUM (tdep)]) |
Definition at line 763 of file i387-tdep.c.
Referenced by i387_collect_xsave(), and i387_supply_xsave().
#define XSAVE_MPX_ADDR | ( | tdep, | |
xsave, | |||
regnum | |||
) | (xsave + xsave_mpx_offset[regnum - I387_BND0R_REGNUM (tdep)]) |
Definition at line 826 of file i387-tdep.c.
Referenced by i387_collect_xsave(), and i387_supply_xsave().
#define XSAVE_XMM_AVX512_ADDR | ( | tdep, | |
xsave, | |||
regnum | |||
) | (xsave + xsave_xmm_avx512_offset[regnum - I387_XMM16_REGNUM (tdep)]) |
Definition at line 814 of file i387-tdep.c.
Referenced by i387_collect_xsave(), and i387_supply_xsave().
#define XSAVE_XSTATE_BV_ADDR | ( | xsave | ) | (xsave + 512) |
Definition at line 737 of file i387-tdep.c.
Referenced by i387_collect_xsave(), and i387_supply_xsave().
#define XSAVE_YMM_AVX512_ADDR | ( | tdep, | |
xsave, | |||
regnum | |||
) | (xsave + xsave_ymm_avx512_offset[regnum - I387_YMM16H_REGNUM (tdep)]) |
Definition at line 791 of file i387-tdep.c.
Referenced by i387_collect_xsave(), and i387_supply_xsave().
Definition at line 502 of file i387-tdep.c.
References FSAVE_ADDR, gdb_assert, gdbarch_tdep(), get_regcache_arch(), I386_ST0_REGNUM, I387_FCTRL_REGNUM, I387_FIOFF_REGNUM, I387_FOOFF_REGNUM, I387_FOP_REGNUM, I387_ST0_REGNUM, I387_XMM0_REGNUM, regcache_raw_collect(), gdbarch_tdep::regs, and gdbarch_tdep::st0_regnum.
Referenced by fill_fpregset(), go32_store_registers(), i386_collect_fpregset(), i386bsd_store_inferior_registers(), i386nto_regset_fill(), store_fpregs(), and store_register().
Definition at line 678 of file i387-tdep.c.
References FXSAVE_ADDR, FXSAVE_MXCSR_ADDR, gdb_assert, gdbarch_tdep(), get_regcache_arch(), 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, gdbarch_tdep::num_xmm_regs, regcache_raw_collect(), gdbarch_tdep::regs, and gdbarch_tdep::st0_regnum.
Referenced by amd64_collect_fxsave(), i386_collect_fpregset(), i386_darwin_store_inferior_registers(), i386bsd_store_inferior_registers(), i386nto_regset_fill(), and store_fpxregs().
Definition at line 1267 of file i387-tdep.c.
References _, all, check(), FXSAVE_ADDR, FXSAVE_MXCSR_ADDR, gdb_assert, gdbarch_tdep(), get_regcache_arch(), 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_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, if(), internal_error(), gdbarch_tdep::num_xmm_regs, regcache_raw_collect(), gdbarch_tdep::regs, gdbarch_tdep::st0_regnum, X86_XSTATE_AVX, X86_XSTATE_BNDCFG, X86_XSTATE_BNDREGS, X86_XSTATE_K, X86_XSTATE_SIZE, X86_XSTATE_SSE, X86_XSTATE_X87, X86_XSTATE_ZMM, X86_XSTATE_ZMM_H, gdbarch_tdep::xcr0, XSAVE_AVX512_K_ADDR, XSAVE_AVX512_ZMM_H_ADDR, XSAVE_AVXH_ADDR, XSAVE_MPX_ADDR, 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(), i386bsd_store_inferior_registers(), i386fbsd_collect_xstateregset(), and store_xstateregs().
Definition at line 338 of file i387-tdep.c.
References i386_fp_regnum_p(), and i387_ext_type().
Referenced by amd64_init_abi(), and i386_convert_register_p().
void i387_print_float_info | ( | struct gdbarch * | gdbarch, |
struct ui_file * | file, | ||
struct frame_info * | frame, | ||
const char * | args | ||
) |
Definition at line 215 of file i387-tdep.c.
References _, fprintf_filtered(), fputs_filtered(), gdb_assert, gdbarch_tdep(), get_frame_arch(), get_frame_register_value(), hex_string_custom(), 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 | ( | struct frame_info * | frame, |
int | regnum, | ||
struct type * | type, | ||
gdb_byte * | to, | ||
int * | optimizedp, | ||
int * | unavailablep | ||
) |
Definition at line 358 of file i387-tdep.c.
References _, convert_typed_floating(), from, gdb_assert, get_frame_arch(), get_frame_register_bytes(), i386_fp_regnum_p(), I386_MAX_REGISTER_SIZE, i387_ext_type(), TYPE_CODE, TYPE_CODE_FLT, TYPE_LENGTH, and warning().
Referenced by amd64_init_abi(), and i386_register_to_value().
Definition at line 1756 of file i387-tdep.c.
References gdbarch_tdep(), I387_FSTAT_REGNUM, I387_FTAG_REGNUM, regcache_raw_read_unsigned(), and regcache_raw_write_unsigned().
Referenced by amd64_return_value().
Definition at line 447 of file i387-tdep.c.
References FSAVE_ADDR, gdb_assert, gdbarch_byte_order(), gdbarch_tdep(), get_regcache_arch(), I386_ST0_REGNUM, I387_FCTRL_REGNUM, I387_FIOFF_REGNUM, I387_FOOFF_REGNUM, I387_FOP_REGNUM, I387_MXCSR_REGNUM, I387_ST0_REGNUM, I387_XMM0_REGNUM, regcache_raw_supply(), gdbarch_tdep::regs, gdbarch_tdep::st0_regnum, and store_unsigned_integer().
Referenced by fetch_fpregs(), fetch_register(), go32_fetch_registers(), i386_supply_fpregset(), i386bsd_fetch_inferior_registers(), i386nto_supply_fpregset(), i386obsd_aout_supply_regset(), and supply_fpregset().
Definition at line 595 of file i387-tdep.c.
References FXSAVE_ADDR, FXSAVE_MXCSR_ADDR, gdb_assert, gdbarch_tdep(), get_regcache_arch(), 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, gdbarch_tdep::num_xmm_regs, regcache_raw_supply(), gdbarch_tdep::regs, and gdbarch_tdep::st0_regnum.
Referenced by amd64_supply_fxsave(), fetch_fpxregs(), i386_darwin_fetch_inferior_registers(), i386_supply_fpregset(), i386bsd_fetch_inferior_registers(), and i386nto_supply_fpregset().
Definition at line 894 of file i387-tdep.c.
References all, FXSAVE_ADDR, FXSAVE_MXCSR_ADDR, gdb_assert, gdbarch_tdep(), get_regcache_arch(), 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_ST0_REGNUM, i387_tag(), 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, MAX_REGISTER_SIZE, gdbarch_tdep::num_xmm_regs, regcache_raw_supply(), gdbarch_tdep::regs, gdbarch_tdep::st0_regnum, X86_XSTATE_ALL_MASK, X86_XSTATE_AVX, X86_XSTATE_BNDCFG, X86_XSTATE_BNDREGS, X86_XSTATE_K, X86_XSTATE_SSE, X86_XSTATE_X87, X86_XSTATE_ZMM, X86_XSTATE_ZMM_H, gdbarch_tdep::xcr0, XSAVE_AVX512_K_ADDR, XSAVE_AVX512_ZMM_H_ADDR, XSAVE_AVXH_ADDR, XSAVE_MPX_ADDR, XSAVE_XMM_AVX512_ADDR, XSAVE_XSTATE_BV_ADDR, and XSAVE_YMM_AVX512_ADDR.
Referenced by amd64_supply_xsave(), fetch_xstateregs(), i386_linux_supply_xstateregset(), i386bsd_fetch_inferior_registers(), and i386fbsd_supply_xstateregset().
Definition at line 1708 of file i387-tdep.c.
Referenced by i387_supply_fxsave(), and i387_supply_xsave().
void i387_value_to_register | ( | struct frame_info * | frame, |
int | regnum, | ||
struct type * | type, | ||
const gdb_byte * | from | ||
) |
Definition at line 390 of file i387-tdep.c.
References _, convert_typed_floating(), gdb_assert, get_frame_arch(), i386_fp_regnum_p(), I386_MAX_REGISTER_SIZE, i387_ext_type(), put_frame_register(), to, TYPE_CODE, TYPE_CODE_FLT, and warning().
Referenced by amd64_init_abi(), and i386_value_to_register().
|
static |
Definition at line 154 of file i387-tdep.c.
References _, fprintf_filtered(), fputs_filtered(), and hex_string_custom().
Referenced by i387_print_float_info().
|
static |
Definition at line 62 of file i387-tdep.c.
References fprintf_filtered(), fputs_filtered(), fputs_unfiltered(), and print_i387_value().
Referenced by i387_print_float_info().
|
static |
Definition at line 116 of file i387-tdep.c.
References _, fprintf_filtered(), fputs_filtered(), and hex_string_custom().
Referenced by i387_print_float_info().
|
static |
Definition at line 37 of file i387-tdep.c.
References extract_typed_floating(), fprintf_filtered(), and i387_ext_type().
Referenced by print_i387_ext().
|
static |
Definition at line 418 of file i387-tdep.c.
|
static |
Definition at line 541 of file i387-tdep.c.
|
static |
Definition at line 833 of file i387-tdep.c.
|
static |
Definition at line 852 of file i387-tdep.c.
|
static |
Definition at line 743 of file i387-tdep.c.
|
static |
Definition at line 817 of file i387-tdep.c.
|
static |
Definition at line 794 of file i387-tdep.c.
|
static |
Definition at line 770 of file i387-tdep.c.