|
GDB (xrefs)
|
#include "defs.h"#include "frame.h"#include "gdbcore.h"#include "inferior.h"#include "language.h"#include "regcache.h"#include "target-float.h"#include "value.h"#include "i386-tdep.h"#include "i387-tdep.h"#include "x86-xstate.h"Go to the source code of this file.
Functions | |
| static void | print_i387_value (struct gdbarch *gdbarch, const gdb_byte *raw, struct ui_file *file) |
| static void | print_i387_ext (struct gdbarch *gdbarch, const gdb_byte *raw, struct ui_file *file) |
| static void | print_i387_status_word (int status_p, unsigned int status, struct ui_file *file) |
| static void | print_i387_control_word (int control_p, unsigned int control, struct ui_file *file) |
| void | i387_print_float_info (struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, const char *args) |
| int | i387_convert_register_p (struct gdbarch *gdbarch, int regnum, struct type *type) |
| int | i387_register_to_value (struct frame_info *frame, int regnum, struct type *type, gdb_byte *to, int *optimizedp, int *unavailablep) |
| void | i387_value_to_register (struct frame_info *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) |
| static int | i387_tag (const gdb_byte *raw) |
| void | i387_supply_fxsave (struct regcache *regcache, int regnum, const void *fxsave) |
| void | i387_collect_fxsave (const struct regcache *regcache, int regnum, void *fxsave) |
| void | i387_supply_xsave (struct regcache *regcache, int regnum, const void *xsave) |
| void | i387_collect_xsave (const struct regcache *regcache, int regnum, void *xsave, int gcore) |
| void | i387_return_value (struct gdbarch *gdbarch, struct regcache *regcache) |
| void | i387_reset_bnd_regs (struct gdbarch *gdbarch, struct regcache *regcache) |
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 [] |
| static int | xsave_pkeys_offset [] |
| #define FSAVE_ADDR | ( | tdep, | |
| fsave, | |||
| regnum | |||
| ) | (fsave + fsave_offset[regnum - I387_ST0_REGNUM (tdep)]) |
Definition at line 429 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 568 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 576 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 836 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 879 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 754 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 817 of file i387-tdep.c.
Referenced by i387_collect_xsave(), and i387_supply_xsave().
| #define XSAVE_PKEYS_ADDR | ( | tdep, | |
| xsave, | |||
| regnum | |||
| ) | (xsave + xsave_pkeys_offset[regnum - I387_PKRU_REGNUM (tdep)]) |
Definition at line 892 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 805 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 728 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 782 of file i387-tdep.c.
Referenced by i387_collect_xsave(), and i387_supply_xsave().
| void i387_collect_fsave | ( | const struct regcache * | regcache, |
| int | regnum, | ||
| void * | fsave | ||
| ) |
Definition at line 493 of file i387-tdep.c.
References regcache::arch(), FSAVE_ADDR, gdb_assert, gdbarch_tdep(), I386_ST0_REGNUM, I387_FCTRL_REGNUM, I387_FIOFF_REGNUM, I387_FOOFF_REGNUM, I387_FOP_REGNUM, I387_ST0_REGNUM, I387_XMM0_REGNUM, regcache_raw_collect(), regnum, 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().
| void i387_collect_fxsave | ( | const struct regcache * | regcache, |
| int | regnum, | ||
| void * | fxsave | ||
| ) |
Definition at line 669 of file i387-tdep.c.
References regcache::arch(), FXSAVE_ADDR, FXSAVE_MXCSR_ADDR, gdb_assert, gdbarch_tdep(), 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(), regnum, 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().
| void i387_collect_xsave | ( | const struct regcache * | regcache, |
| int | regnum, | ||
| void * | xsave, | ||
| int | gcore | ||
| ) |
Definition at line 1306 of file i387-tdep.c.
References _, all, regcache::arch(), check(), extract_unsigned_integer(), FXSAVE_ADDR, FXSAVE_MXCSR_ADDR, gdb_assert, gdbarch_byte_order(), gdbarch_tdep(), 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, internal_error(), memset(), gdbarch_tdep::num_xmm_regs, regcache_raw_collect(), regnum, gdbarch_tdep::regs, gdbarch_tdep::st0_regnum, store_unsigned_integer(), X86_XSTATE_AVX, X86_XSTATE_BNDCFG, X86_XSTATE_BNDREGS, X86_XSTATE_K, X86_XSTATE_PKRU, 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, XSAVE_PKEYS_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 327 of file i387-tdep.c.
References i386_fp_regnum_p(), i387_ext_type(), regnum, TYPE_CODE, and TYPE_CODE_FLT.
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 204 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 348 of file i387-tdep.c.
References _, gdb_assert, get_frame_arch(), get_frame_register_bytes(), i386_fp_regnum_p(), I386_MAX_REGISTER_SIZE, i387_ext_type(), register_size(), regnum, target_float_convert(), TYPE_CODE, TYPE_CODE_FLT, and warning().
Referenced by amd64_init_abi(), and i386_register_to_value().
Definition at line 1858 of file i387-tdep.c.
References gdbarch_tdep(), I387_BND0R_REGNUM, I387_NUM_BND_REGS, memset(), and regcache_raw_write().
Referenced by amd64_push_dummy_call(), and i386_push_dummy_call().
Definition at line 1835 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().
| void i387_supply_fsave | ( | struct regcache * | regcache, |
| int | regnum, | ||
| const void * | fsave | ||
| ) |
Definition at line 438 of file i387-tdep.c.
References regcache::arch(), FSAVE_ADDR, gdb_assert, gdbarch_byte_order(), gdbarch_tdep(), 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(), regnum, 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(), and supply_fpregset().
| void i387_supply_fxsave | ( | struct regcache * | regcache, |
| int | regnum, | ||
| const void * | fxsave | ||
| ) |
Definition at line 586 of file i387-tdep.c.
References regcache::arch(), FXSAVE_ADDR, FXSAVE_MXCSR_ADDR, gdb_assert, gdbarch_tdep(), 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(), regnum, 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().
| void i387_supply_xsave | ( | struct regcache * | regcache, |
| int | regnum, | ||
| const void * | xsave | ||
| ) |
Definition at line 898 of file i387-tdep.c.
References all, regcache::arch(), extract_unsigned_integer(), FXSAVE_ADDR, FXSAVE_MXCSR_ADDR, gdb_assert, gdbarch_byte_order(), gdbarch_tdep(), 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_YMM0H_REGNUM, I387_YMM16H_REGNUM, I387_YMMENDH_REGNUM, I387_YMMH_AVX512_END_REGNUM, I387_ZMM0H_REGNUM, I387_ZMMENDH_REGNUM, gdbarch_tdep::num_xmm_regs, regcache_raw_supply(), regnum, 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_PKRU, 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_PKEYS_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().
|
static |
Definition at line 1787 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 381 of file i387-tdep.c.
References _, gdb_assert, get_frame_arch(), i386_fp_regnum_p(), I386_MAX_REGISTER_SIZE, i387_ext_type(), put_frame_register(), regnum, target_float_convert(), TYPE_CODE, TYPE_CODE_FLT, and warning().
Referenced by amd64_init_abi(), and i386_value_to_register().
|
static |
Definition at line 143 of file i387-tdep.c.
References _, fprintf_filtered(), fputs_filtered(), and hex_string_custom().
Referenced by i387_print_float_info().
|
static |
Definition at line 51 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 105 of file i387-tdep.c.
References _, fprintf_filtered(), fputs_filtered(), hex_string_custom(), and status.
Referenced by i387_print_float_info().
|
static |
Definition at line 36 of file i387-tdep.c.
References fprintf_filtered(), i387_ext_type(), string, and target_float_to_string().
Referenced by print_i387_ext().
|
static |
Definition at line 409 of file i387-tdep.c.
|
static |
Definition at line 532 of file i387-tdep.c.
|
static |
Definition at line 824 of file i387-tdep.c.
|
static |
Definition at line 843 of file i387-tdep.c.
|
static |
Definition at line 734 of file i387-tdep.c.
|
static |
Definition at line 808 of file i387-tdep.c.
|
static |
Definition at line 886 of file i387-tdep.c.
|
static |
Definition at line 785 of file i387-tdep.c.
|
static |
Definition at line 761 of file i387-tdep.c.
1.8.14