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 "gdb_assert.h"
#include "gdb_string.h"
#include "i386-tdep.h"
#include "i387-tdep.h"
#include "i386-xstate.h"
Go to the source code of this file.
#define FSAVE_ADDR | ( | tdep, | |
fsave, | |||
regnum | |||
) | (fsave + fsave_offset[regnum - I387_ST0_REGNUM (tdep)]) |
Definition at line 441 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 580 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 588 of file i387-tdep.c.
Referenced by i387_collect_fxsave(), i387_collect_xsave(), i387_supply_fxsave(), and i387_supply_xsave().
#define XSAVE_AVXH_ADDR | ( | tdep, | |
xsave, | |||
regnum | |||
) | (xsave + xsave_avxh_offset[regnum - I387_YMM0H_REGNUM (tdep)]) |
Definition at line 766 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 740 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 505 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, memcpy(), 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().
void i387_collect_fxsave | ( | const struct regcache * | regcache, |
int | regnum, | ||
void * | fxsave | ||
) |
Definition at line 681 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, memcpy(), 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(), and i386nto_regset_fill().
void i387_collect_xsave | ( | const struct regcache * | regcache, |
int | regnum, | ||
void * | xsave, | ||
int | gcore | ||
) |
Definition at line 979 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, I386_XSTATE_AVX, I386_XSTATE_SIZE, I386_XSTATE_SSE, I386_XSTATE_X87, I387_FCTRL_REGNUM, I387_FIOFF_REGNUM, I387_FOOFF_REGNUM, I387_FOP_REGNUM, I387_FTAG_REGNUM, I387_MXCSR_REGNUM, I387_ST0_REGNUM, I387_XMM0_REGNUM, I387_YMM0H_REGNUM, I387_YMMENDH_REGNUM, internal_error(), memcmp(), memcpy(), memset(), gdbarch_tdep::num_xmm_regs, p, regcache_raw_collect(), gdbarch_tdep::regs, gdbarch_tdep::st0_regnum, gdbarch_tdep::xcr0, XSAVE_AVXH_ADDR, gdbarch_tdep::xsave_xcr0_offset, and XSAVE_XSTATE_BV_ADDR.
Referenced by amd64_collect_xsave(), i386_collect_xstateregset(), and store_xstateregs().
int i387_convert_register_p | ( | struct gdbarch * | gdbarch, |
int | regnum, | ||
struct type * | type | ||
) |
Definition at line 341 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 218 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, ULONGEST, 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 361 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().
void i387_return_value | ( | struct gdbarch * | gdbarch, |
struct regcache * | regcache | ||
) |
Definition at line 1271 of file i387-tdep.c.
References gdbarch_tdep(), I387_FSTAT_REGNUM, I387_FTAG_REGNUM, regcache_raw_read_unsigned(), regcache_raw_write_unsigned(), and ULONGEST.
Referenced by amd64_return_value().
void i387_supply_fsave | ( | struct regcache * | regcache, |
int | regnum, | ||
const void * | fsave | ||
) |
Definition at line 450 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, memcpy(), 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().
void i387_supply_fxsave | ( | struct regcache * | regcache, |
int | regnum, | ||
const void * | fxsave | ||
) |
Definition at line 598 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, memcpy(), gdbarch_tdep::num_xmm_regs, regcache_raw_supply(), gdbarch_tdep::regs, and gdbarch_tdep::st0_regnum.
Referenced by amd64_supply_fxsave(), 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 772 of file i387-tdep.c.
References all, FXSAVE_ADDR, FXSAVE_MXCSR_ADDR, gdb_assert, gdbarch_tdep(), get_regcache_arch(), I386_ST0_REGNUM, I386_XSTATE_AVX, I386_XSTATE_AVX_MASK, I386_XSTATE_SSE, I386_XSTATE_X87, 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, I387_YMM0H_REGNUM, I387_YMMENDH_REGNUM, MAX_REGISTER_SIZE, memcpy(), gdbarch_tdep::num_xmm_regs, regcache_raw_supply(), gdbarch_tdep::regs, gdbarch_tdep::st0_regnum, gdbarch_tdep::xcr0, XSAVE_AVXH_ADDR, and XSAVE_XSTATE_BV_ADDR.
Referenced by amd64_supply_xsave(), fetch_xstateregs(), and i386_supply_xstateregset().
Definition at line 1223 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 393 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 void print_i387_control_word | ( | int | control_p, |
unsigned int | control, | ||
struct ui_file * | file | ||
) | [static] |
Definition at line 157 of file i387-tdep.c.
References _, fprintf_filtered(), fputs_filtered(), and hex_string_custom().
Referenced by i387_print_float_info().
static void print_i387_ext | ( | struct gdbarch * | gdbarch, |
const gdb_byte * | raw, | ||
struct ui_file * | file | ||
) | [static] |
Definition at line 65 of file i387-tdep.c.
References fprintf_filtered(), fputs_filtered(), fputs_unfiltered(), and print_i387_value().
Referenced by i387_print_float_info().
static void print_i387_status_word | ( | int | status_p, |
unsigned int | status, | ||
struct ui_file * | file | ||
) | [static] |
Definition at line 119 of file i387-tdep.c.
References _, fprintf_filtered(), fputs_filtered(), and hex_string_custom().
Referenced by i387_print_float_info().
static void print_i387_value | ( | struct gdbarch * | gdbarch, |
const gdb_byte * | raw, | ||
struct ui_file * | file | ||
) | [static] |
Definition at line 40 of file i387-tdep.c.
References extract_typed_floating(), fprintf_filtered(), and i387_ext_type().
Referenced by print_i387_ext().
int fsave_offset[] [static] |
{ 28 + 0 * 10, 28 + 1 * 10, 28 + 2 * 10, 28 + 3 * 10, 28 + 4 * 10, 28 + 5 * 10, 28 + 6 * 10, 28 + 7 * 10, 0, 4, 8, 16, 12, 24, 20, 18 }
Definition at line 421 of file i387-tdep.c.
int fxsave_offset[] [static] |
Definition at line 544 of file i387-tdep.c.
int xsave_avxh_offset[] [static] |
{ 576 + 0 * 16, 576 + 1 * 16, 576 + 2 * 16, 576 + 3 * 16, 576 + 4 * 16, 576 + 5 * 16, 576 + 6 * 16, 576 + 7 * 16, 576 + 8 * 16, 576 + 9 * 16, 576 + 10 * 16, 576 + 11 * 16, 576 + 12 * 16, 576 + 13 * 16, 576 + 14 * 16, 576 + 15 * 16 }
Definition at line 746 of file i387-tdep.c.