GDB (xrefs)
|
#include "defs.h"
#include "opcode/i386.h"
#include "arch-utils.h"
#include "command.h"
#include "dummy-frame.h"
#include "dwarf2-frame.h"
#include "doublest.h"
#include "frame.h"
#include "frame-base.h"
#include "frame-unwind.h"
#include "inferior.h"
#include "gdbcmd.h"
#include "gdbcore.h"
#include "gdbtypes.h"
#include "objfiles.h"
#include "osabi.h"
#include "regcache.h"
#include "reggroups.h"
#include "regset.h"
#include "symfile.h"
#include "symtab.h"
#include "target.h"
#include "value.h"
#include "dis-asm.h"
#include "disasm.h"
#include "remote.h"
#include "exceptions.h"
#include "gdb_assert.h"
#include "gdb_string.h"
#include "i386-tdep.h"
#include "i387-tdep.h"
#include "i386-xstate.h"
#include "record.h"
#include "record-full.h"
#include <stdint.h>
#include "features/i386/i386.c"
#include "features/i386/i386-avx.c"
#include "features/i386/i386-mmx.c"
#include "ax.h"
#include "ax-gdb.h"
#include "stap-probe.h"
#include "user-regs.h"
#include "cli/cli-utils.h"
#include "expression.h"
#include "parser-defs.h"
#include <ctype.h>
Go to the source code of this file.
#define HIGH_RETURN_REGNUM I386_EDX_REGNUM /* %edx */ |
Definition at line 2501 of file i386-tdep.c.
Referenced by i386_extract_return_value(), and i386_store_return_value().
#define I386_MAX_MATCHED_INSN_LEN 6 |
Definition at line 1133 of file i386-tdep.c.
Referenced by i386_match_pattern().
#define I386_NUM_SAVED_REGS I386_NUM_GREGS |
Definition at line 815 of file i386-tdep.c.
Referenced by i386_alloc_frame_cache(), i386_frame_cache_1(), and i386_sigtramp_frame_cache().
#define I386_RECORD_FULL_ARCH_LIST_ADD_REG | ( | regnum | ) | record_full_arch_list_add_reg (ir.regcache, ir.regmap[(regnum)]) |
Definition at line 4338 of file i386-tdep.c.
Referenced by i386_process_record().
#define I386_SAVE_FPU_ENV 0xfffe |
Definition at line 4269 of file i386-tdep.c.
Referenced by i386_process_record(), and i386_record_floats().
#define I386_SAVE_FPU_ENV_REG_STACK 0xffff |
Definition at line 4270 of file i386-tdep.c.
Referenced by i386_process_record(), and i386_record_floats().
#define I386_SAVE_FPU_REGS 0xfffd |
Definition at line 4268 of file i386-tdep.c.
Referenced by i386_process_record(), and i386_record_floats().
#define LOW_RETURN_REGNUM I386_EAX_REGNUM /* %eax */ |
Definition at line 2500 of file i386-tdep.c.
Referenced by i386_extract_return_value(), and i386_store_return_value().
#define PREFIX_ADDR 0x10 |
Definition at line 3954 of file i386-tdep.c.
Referenced by i386_process_record().
#define PREFIX_DATA 0x08 |
Definition at line 3953 of file i386-tdep.c.
Referenced by i386_process_record().
#define PREFIX_LOCK 0x04 |
Definition at line 3952 of file i386-tdep.c.
Referenced by i386_process_record().
#define PREFIX_REPNZ 0x02 |
Definition at line 3951 of file i386-tdep.c.
Referenced by i386_process_record().
#define PREFIX_REPZ 0x01 |
Definition at line 3950 of file i386-tdep.c.
Referenced by i386_process_record().
anonymous enum |
Definition at line 3957 of file i386-tdep.c.
anonymous enum |
Definition at line 3967 of file i386-tdep.c.
void _initialize_i386_tdep | ( | void | ) |
static void append_insns | ( | CORE_ADDR * | to, |
ULONGEST | len, | ||
const gdb_byte * | buf | ||
) | [static] |
Definition at line 719 of file i386-tdep.c.
References len, and target_write_memory().
Referenced by i386_relocate_instruction().
static int i386_16_byte_align_p | ( | struct type * | type | ) | [static] |
Definition at line 2362 of file i386-tdep.c.
References check_typedef(), TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_DECFLOAT, TYPE_CODE_STRUCT, TYPE_CODE_UNION, TYPE_FIELD_TYPE, TYPE_LENGTH, TYPE_NFIELDS, TYPE_TARGET_TYPE, and TYPE_VECTOR.
Referenced by i386_push_dummy_call().
static int i386_absolute_call_p | ( | const gdb_byte * | insn | ) | [static] |
Definition at line 476 of file i386-tdep.c.
Referenced by i386_call_p(), and i386_displaced_step_fixup().
static int i386_absolute_jmp_p | ( | const gdb_byte * | insn | ) | [static] |
Definition at line 455 of file i386-tdep.c.
Referenced by i386_displaced_step_fixup().
static void i386_add_reggroups | ( | struct gdbarch * | gdbarch | ) | [static] |
Definition at line 3850 of file i386-tdep.c.
References all_reggroup, float_reggroup, general_reggroup, reggroup_add(), restore_reggroup, save_reggroup, system_reggroup, and vector_reggroup.
Referenced by i386_gdbarch_init().
static struct i386_frame_cache* i386_alloc_frame_cache | ( | void | ) | [static, read] |
Definition at line 838 of file i386-tdep.c.
References i386_frame_cache::base, i386_frame_cache::base_p, FRAME_OBSTACK_ZALLOC, I386_NUM_SAVED_REGS, i386_frame_cache::locals, i386_frame_cache::pc, i386_frame_cache::pc_in_eax, i386_frame_cache::saved_regs, i386_frame_cache::saved_sp, i386_frame_cache::saved_sp_reg, and i386_frame_cache::sp_offset.
Referenced by i386_epilogue_frame_cache(), i386_frame_cache(), and i386_sigtramp_frame_cache().
static CORE_ADDR i386_analyze_frame_setup | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | pc, | ||
CORE_ADDR | limit, | ||
struct i386_frame_cache * | cache | ||
) | [static] |
Definition at line 1341 of file i386-tdep.c.
References gdbarch_byte_order(), I386_EBP_REGNUM, i386_match_insn(), i386_insn::insn, i386_insn::len, i386_frame_cache::locals, read_memory_integer(), read_memory_unsigned_integer(), i386_frame_cache::saved_regs, i386_frame_cache::sp_offset, and target_read_memory().
Referenced by i386_analyze_prologue().
static CORE_ADDR i386_analyze_prologue | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | pc, | ||
CORE_ADDR | current_pc, | ||
struct i386_frame_cache * | cache | ||
) | [static] |
Definition at line 1557 of file i386-tdep.c.
References i386_analyze_frame_setup(), i386_analyze_register_saves(), i386_analyze_stack_align(), i386_analyze_struct_return(), i386_follow_jump(), i386_skip_noop(), and i386_skip_probe().
Referenced by i386_frame_cache_1(), and i386_skip_prologue().
static CORE_ADDR i386_analyze_register_saves | ( | CORE_ADDR | pc, |
CORE_ADDR | current_pc, | ||
struct i386_frame_cache * | cache | ||
) | [static] |
Definition at line 1504 of file i386-tdep.c.
References i386_frame_cache::locals, offset, i386_frame_cache::saved_regs, i386_frame_cache::sp_offset, and target_read_memory().
Referenced by i386_analyze_prologue().
static CORE_ADDR i386_analyze_stack_align | ( | CORE_ADDR | pc, |
CORE_ADDR | current_pc, | ||
struct i386_frame_cache * | cache | ||
) | [static] |
Definition at line 1022 of file i386-tdep.c.
References I386_EAX_REGNUM, I386_EBP_REGNUM, I386_EBX_REGNUM, I386_ECX_REGNUM, I386_EDI_REGNUM, I386_EDX_REGNUM, I386_ESI_REGNUM, I386_ESP_REGNUM, min, offset, i386_frame_cache::pc, i386_frame_cache::saved_sp_reg, and target_read_memory().
Referenced by i386_analyze_prologue().
static CORE_ADDR i386_analyze_struct_return | ( | CORE_ADDR | pc, |
CORE_ADDR | current_pc, | ||
struct i386_frame_cache * | cache | ||
) | [static] |
Definition at line 923 of file i386-tdep.c.
References memcmp(), i386_frame_cache::pc, i386_frame_cache::pc_in_eax, i386_frame_cache::sp_offset, and target_read_memory().
Referenced by i386_analyze_prologue().
static const gdb_byte* i386_breakpoint_from_pc | ( | struct gdbarch * | gdbarch, |
CORE_ADDR * | pc, | ||
int * | len | ||
) | [static] |
Definition at line 408 of file i386-tdep.c.
Referenced by i386_gdbarch_init().
int i386_byte_regnum_p | ( | struct gdbarch * | gdbarch, |
int | regnum | ||
) |
Definition at line 143 of file i386-tdep.c.
References gdbarch_tdep::al_regnum, gdbarch_tdep(), and gdbarch_tdep::num_byte_regs.
Referenced by amd64_pseudo_register_name(), amd64_pseudo_register_read_value(), amd64_pseudo_register_write(), i386_pseudo_register_name(), i386_pseudo_register_read_into_value(), i386_pseudo_register_type(), i386_pseudo_register_write(), and i386_register_reggroup_p().
static int i386_call_p | ( | const gdb_byte * | insn | ) | [static] |
Definition at line 514 of file i386-tdep.c.
References i386_absolute_call_p().
Referenced by i386_displaced_step_fixup().
static enum gdb_osabi i386_coff_osabi_sniffer | ( | bfd * | abfd | ) | [static] |
Definition at line 7858 of file i386-tdep.c.
References GDB_OSABI_GO32, and GDB_OSABI_UNKNOWN.
static void i386_collect_fpregset | ( | const struct regset * | regset, |
const struct regcache * | regcache, | ||
int | regnum, | ||
void * | fpregs, | ||
size_t | len | ||
) | [static] |
Definition at line 3262 of file i386-tdep.c.
References regset::arch, gdb_assert, gdbarch_tdep(), i387_collect_fsave(), i387_collect_fxsave(), I387_SIZEOF_FXSAVE, and gdbarch_tdep::sizeof_fpregset.
Referenced by i386_regset_from_core_section().
void i386_collect_gregset | ( | const struct regset * | regset, |
const struct regcache * | regcache, | ||
int | regnum, | ||
void * | gregs, | ||
size_t | len | ||
) |
Definition at line 3218 of file i386-tdep.c.
References regset::arch, gdb_assert, gdbarch_tdep(), gdbarch_tdep::gregset_num_regs, gdbarch_tdep::gregset_reg_offset, regcache_raw_collect(), gdbarch_tdep::regs, and gdbarch_tdep::sizeof_gregset.
Referenced by i386_regset_from_core_section(), i386_windows_regset_from_core_section(), and i386nto_supply_gregset().
static void i386_collect_xstateregset | ( | const struct regset * | regset, |
const struct regcache * | regcache, | ||
int | regnum, | ||
void * | xstateregs, | ||
size_t | len | ||
) | [static] |
Definition at line 3291 of file i386-tdep.c.
References i387_collect_xsave().
Referenced by i386_regset_from_core_section().
static int i386_convert_register_p | ( | struct gdbarch * | gdbarch, |
int | regnum, | ||
struct type * | type | ||
) | [static] |
Definition at line 3094 of file i386-tdep.c.
References i386_next_regnum(), i387_convert_register_p(), len, regnum, and TYPE_LENGTH.
Referenced by i386_gdbarch_init().
static int i386_dbx_reg_to_regnum | ( | struct gdbarch * | gdbarch, |
int | reg | ||
) | [static] |
Definition at line 292 of file i386-tdep.c.
References gdbarch_num_pseudo_regs(), gdbarch_num_regs(), gdbarch_tdep(), i386_xmm_regnum_p(), I387_MM0_REGNUM, I387_ST0_REGNUM, I387_XMM0_REGNUM, and gdbarch_tdep::ymm0_regnum.
Referenced by i386_gdbarch_init(), and i386_svr4_reg_to_regnum().
struct displaced_step_closure* i386_displaced_step_copy_insn | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | from, | ||
CORE_ADDR | to, | ||
struct regcache * | regs | ||
) | [read] |
Definition at line 550 of file i386-tdep.c.
References debug_displaced, displaced_step_dump_bytes(), fprintf_unfiltered(), gdb_stdlog, gdbarch_max_insn_length(), i386_skip_prefixes(), i386_syscall_p(), len, paddress(), read_memory(), write_memory(), and xmalloc().
Referenced by i386_linux_displaced_step_copy_insn().
void i386_displaced_step_fixup | ( | struct gdbarch * | gdbarch, |
struct displaced_step_closure * | closure, | ||
CORE_ADDR | from, | ||
CORE_ADDR | to, | ||
struct regcache * | regs | ||
) |
Definition at line 587 of file i386-tdep.c.
References debug_displaced, fprintf_unfiltered(), from, gdb_stdlog, gdbarch_byte_order(), gdbarch_max_insn_length(), i386_absolute_call_p(), i386_absolute_jmp_p(), i386_call_p(), I386_EIP_REGNUM, I386_ESP_REGNUM, i386_ret_p(), i386_skip_prefixes(), i386_syscall_p(), paddress(), read_memory_unsigned_integer(), regcache_cooked_read_unsigned(), regcache_cooked_write_unsigned(), ULONGEST, and write_memory_unsigned_integer().
Referenced by i386_linux_init_abi().
static struct frame_id i386_dummy_id | ( | struct gdbarch * | gdbarch, |
struct frame_info * | this_frame | ||
) | [static, read] |
Definition at line 2302 of file i386-tdep.c.
References frame_id_build(), get_frame_pc(), get_frame_register_unsigned(), and I386_EBP_REGNUM.
Referenced by i386_gdbarch_init().
int i386_dword_regnum_p | ( | struct gdbarch * | gdbarch, |
int | regnum | ||
) |
Definition at line 165 of file i386-tdep.c.
References gdbarch_tdep::eax_regnum, gdbarch_tdep(), and gdbarch_tdep::num_dword_regs.
Referenced by amd64_pseudo_register_name(), amd64_pseudo_register_read_value(), amd64_pseudo_register_write(), i386_pseudo_register_type(), and i386_register_reggroup_p().
void i386_elf_init_abi | ( | struct gdbarch_info | info, |
struct gdbarch * | gdbarch | ||
) |
Definition at line 3772 of file i386-tdep.c.
References i386_stap_is_single_operand(), i386_stap_parse_special_token(), i386_svr4_reg_to_regnum(), set_gdbarch_stab_reg_to_regnum(), set_gdbarch_stap_integer_prefix(), set_gdbarch_stap_is_single_operand(), set_gdbarch_stap_parse_special_token(), set_gdbarch_stap_register_indirection_prefix(), set_gdbarch_stap_register_indirection_suffix(), and set_gdbarch_stap_register_prefix().
Referenced by i386_linux_init_abi(), i386_svr4_init_abi(), i386fbsd_init_abi(), i386gnu_init_abi(), i386nbsdelf_init_abi(), i386nto_init_abi(), and i386obsd_elf_init_abi().
static struct i386_frame_cache* i386_epilogue_frame_cache | ( | struct frame_info * | this_frame, |
void ** | this_cache | ||
) | [static, read] |
Definition at line 1981 of file i386-tdep.c.
References i386_frame_cache::base, i386_frame_cache::base_p, gdb_exception::error, get_frame_func(), get_frame_register_unsigned(), i386_alloc_frame_cache(), I386_EIP_REGNUM, I386_ESP_REGNUM, NOT_AVAILABLE_ERROR, i386_frame_cache::pc, gdb_exception::reason, RETURN_MASK_ERROR, i386_frame_cache::saved_regs, i386_frame_cache::saved_sp, sp, i386_frame_cache::sp_offset, throw_exception(), and TRY_CATCH.
Referenced by i386_epilogue_frame_prev_register(), i386_epilogue_frame_this_id(), and i386_epilogue_frame_unwind_stop_reason().
static struct value* i386_epilogue_frame_prev_register | ( | struct frame_info * | this_frame, |
void ** | this_cache, | ||
int | regnum | ||
) | [static, read] |
Definition at line 2041 of file i386-tdep.c.
References i386_epilogue_frame_cache(), and i386_frame_prev_register().
static int i386_epilogue_frame_sniffer | ( | const struct frame_unwind * | self, |
struct frame_info * | this_frame, | ||
void ** | this_prologue_cache | ||
) | [static] |
Definition at line 1969 of file i386-tdep.c.
References frame_relative_level(), get_frame_arch(), get_frame_pc(), and i386_in_function_epilogue_p().
static void i386_epilogue_frame_this_id | ( | struct frame_info * | this_frame, |
void ** | this_cache, | ||
struct frame_id * | this_id | ||
) | [static] |
Definition at line 2027 of file i386-tdep.c.
References i386_frame_cache::base, i386_frame_cache::base_p, frame_id_build(), i386_epilogue_frame_cache(), and i386_frame_cache::pc.
static enum unwind_stop_reason i386_epilogue_frame_unwind_stop_reason | ( | struct frame_info * | this_frame, |
void ** | this_cache | ||
) | [static] |
Definition at line 2014 of file i386-tdep.c.
References i386_frame_cache::base_p, and i386_epilogue_frame_cache().
static void i386_extract_return_value | ( | struct gdbarch * | gdbarch, |
struct type * | type, | ||
struct regcache * | regcache, | ||
gdb_byte * | valbuf | ||
) | [static] |
Definition at line 2507 of file i386-tdep.c.
References _, convert_typed_floating(), gdbarch_tdep(), HIGH_RETURN_REGNUM, I386_MAX_REGISTER_SIZE, I386_ST0_REGNUM, i387_ext_type(), internal_error(), len, LOW_RETURN_REGNUM, memcpy(), memset(), regcache_raw_read(), register_size(), gdbarch_tdep::st0_regnum, TYPE_CODE, TYPE_CODE_FLT, TYPE_LENGTH, and warning().
Referenced by i386_return_value().
static int i386_fast_tracepoint_valid_at | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | addr, | ||
int * | isize, | ||
char ** | msg | ||
) | [static] |
Definition at line 7439 of file i386-tdep.c.
References _, gdb_print_insn(), len, register_size(), target_get_min_fast_tracepoint_insn_len, ui_file_new(), and xstrprintf().
Referenced by i386_gdbarch_init().
static CORE_ADDR i386_fetch_pointer_argument | ( | struct frame_info * | frame, |
int | argi, | ||
struct type * | type | ||
) | [static] |
Definition at line 3929 of file i386-tdep.c.
References gdbarch::byte_order, gdbarch_byte_order(), get_frame_arch(), get_frame_register_unsigned(), I386_ESP_REGNUM, read_memory_unsigned_integer(), and sp.
Referenced by i386_gdbarch_init().
static CORE_ADDR i386_follow_jump | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | pc | ||
) | [static] |
Definition at line 869 of file i386-tdep.c.
References gdbarch_byte_order(), i386_frame_cache::pc, read_memory_integer(), read_memory_unsigned_integer(), and target_read_memory().
Referenced by i386_analyze_prologue(), and i386_skip_prologue().
int i386_fp_regnum_p | ( | struct gdbarch * | gdbarch, |
int | regnum | ||
) |
Definition at line 234 of file i386-tdep.c.
References gdbarch_tdep(), I387_FCTRL_REGNUM, and I387_ST0_REGNUM.
Referenced by fetch_register(), i386_process_record(), i386_register_reggroup_p(), i386_register_to_value(), i386_value_to_register(), i387_convert_register_p(), i387_register_to_value(), i387_value_to_register(), and store_register().
int i386_fpc_regnum_p | ( | struct gdbarch * | gdbarch, |
int | regnum | ||
) |
Definition at line 246 of file i386-tdep.c.
References gdbarch_tdep(), I387_FCTRL_REGNUM, I387_ST0_REGNUM, and I387_XMM0_REGNUM.
Referenced by fetch_register(), i386_process_record(), i386_register_reggroup_p(), and store_register().
static CORE_ADDR i386_frame_align | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | sp | ||
) | [static] |
Definition at line 2316 of file i386-tdep.c.
Referenced by i386_gdbarch_init().
static CORE_ADDR i386_frame_base_address | ( | struct frame_info * | this_frame, |
void ** | this_cache | ||
) | [static] |
Definition at line 2286 of file i386-tdep.c.
References i386_frame_cache::base, and i386_frame_cache().
static struct i386_frame_cache* i386_frame_cache | ( | struct frame_info * | this_frame, |
void ** | this_cache | ||
) | [static, read] |
Definition at line 1822 of file i386-tdep.c.
References gdb_exception::error, i386_alloc_frame_cache(), i386_frame_cache_1(), NOT_AVAILABLE_ERROR, gdb_exception::reason, RETURN_MASK_ERROR, throw_exception(), and TRY_CATCH.
Referenced by i386_frame_base_address(), i386_frame_prev_register(), i386_frame_this_id(), and i386_frame_unwind_stop_reason().
static void i386_frame_cache_1 | ( | struct frame_info * | this_frame, |
struct i386_frame_cache * | cache | ||
) | [static] |
Definition at line 1721 of file i386-tdep.c.
References i386_frame_cache::base, i386_frame_cache::base_p, gdbarch::byte_order, deprecated_frame_register_read(), extract_unsigned_integer(), gdbarch_byte_order(), get_frame_arch(), get_frame_func(), get_frame_pc(), get_frame_register(), i386_analyze_prologue(), I386_EBP_REGNUM, I386_EIP_REGNUM, I386_ESP_REGNUM, I386_NUM_SAVED_REGS, i386_frame_cache::locals, i386_frame_cache::pc, i386_frame_cache::saved_regs, i386_frame_cache::saved_sp, i386_frame_cache::saved_sp_reg, i386_frame_cache::sp_offset, and target_read_memory().
Referenced by i386_frame_cache().
static struct value* i386_frame_prev_register | ( | struct frame_info * | this_frame, |
void ** | this_cache, | ||
int | regnum | ||
) | [static, read] |
Definition at line 1874 of file i386-tdep.c.
References frame_unwind_got_constant(), frame_unwind_got_memory(), frame_unwind_got_register(), gdb_assert, get_frame_register_unsigned(), I386_EAX_REGNUM, I386_EFLAGS_REGNUM, I386_EIP_REGNUM, I386_ESP_REGNUM, i386_frame_cache(), i386_frame_cache::pc_in_eax, i386_frame_cache::saved_regs, i386_frame_cache::saved_sp, i386_frame_cache::saved_sp_reg, and ULONGEST.
Referenced by i386_epilogue_frame_prev_register(), and i386_sigtramp_frame_prev_register().
static void i386_frame_this_id | ( | struct frame_info * | this_frame, |
void ** | this_cache, | ||
struct frame_id * | this_id | ||
) | [static] |
Definition at line 1844 of file i386-tdep.c.
References i386_frame_cache::base, frame_id_build(), i386_frame_cache(), and i386_frame_cache::pc.
static enum unwind_stop_reason i386_frame_unwind_stop_reason | ( | struct frame_info * | this_frame, |
void ** | this_cache | ||
) | [static] |
Definition at line 1858 of file i386-tdep.c.
References i386_frame_cache::base, i386_frame_cache::base_p, and i386_frame_cache().
static struct gdbarch* i386_gdbarch_init | ( | struct gdbarch_info | info, |
struct gdbarch_list * | arches | ||
) | [static, read] |
Definition at line 7567 of file i386-tdep.c.
References gdbarch_tdep::al_regnum, gdbarch_tdep::ax_regnum, core_addr_lessthan(), dwarf2_append_unwinders(), gdbarch_tdep::eax_regnum, floatformats_i387_ext, gdbarch_tdep::fpregset, frame_base_set_default(), frame_unwind_append_unwinder(), gdbarch_list::gdbarch, gdbarch_alloc(), gdbarch_free(), gdbarch_init_osabi(), gdbarch_list_lookup_by_info(), gdbarch_num_regs(), gdbarch_regset_from_core_section_p(), gdbarch_tdep::gregset, gdbarch_tdep::gregset_num_regs, gdbarch_tdep::gregset_reg_offset, i386_add_reggroups(), I386_AVX_NUM_REGS, i386_breakpoint_from_pc(), i386_convert_register_p(), i386_dbx_reg_to_regnum(), i386_dummy_id(), I386_EFLAGS_REGNUM, I386_EIP_REGNUM, I386_ESP_REGNUM, i386_fast_tracepoint_valid_at(), i386_fetch_pointer_argument(), i386_frame_align(), i386_gen_return_address(), i386_get_longjmp_target(), I386_MAX_INSN_LEN, I386_NUM_GREGS, I386_NUM_XREGS, i386_print_insn(), i386_pseudo_register_name(), i386_pseudo_register_read_value(), i386_pseudo_register_type(), i386_pseudo_register_write(), i386_push_dummy_call(), i386_push_dummy_code(), i386_record_regmap, i386_register_name(), i386_register_names, i386_register_reggroup_p(), i386_register_to_value(), i386_regset_from_core_section(), i386_relocate_instruction(), i386_return_value(), i386_sigtramp_p(), i386_skip_permanent_breakpoint(), i386_skip_prologue(), I386_ST0_REGNUM, i386_svr4_reg_to_regnum(), i386_unwind_pc(), i386_validate_tdesc_p(), i386_value_to_register(), I387_NUM_REGS, i387_print_float_info(), I387_SIZEOF_FSAVE, gdbarch_tdep::jb_pc_offset, gdbarch_tdep::mm0_regnum, gdbarch_tdep::num_byte_regs, gdbarch_tdep::num_core_regs, gdbarch_tdep::num_dword_regs, gdbarch_tdep::num_mmx_regs, gdbarch_tdep::num_word_regs, gdbarch_tdep::num_xmm_regs, gdbarch_tdep::num_ymm_regs, ON_STACK, pcc_struct_return, gdbarch_tdep::record_regmap, gdbarch_tdep::register_names, gdbarch_tdep::register_reggroup_p, gdbarch_tdep::sc_pc_offset, gdbarch_tdep::sc_reg_offset, gdbarch_tdep::sc_sp_offset, set_gdbarch_breakpoint_from_pc(), set_gdbarch_call_dummy_location(), set_gdbarch_convert_register_p(), set_gdbarch_decr_pc_after_break(), set_gdbarch_dummy_id(), set_gdbarch_dwarf2_reg_to_regnum(), set_gdbarch_fast_tracepoint_valid_at(), set_gdbarch_fetch_pointer_argument(), set_gdbarch_fp0_regnum(), set_gdbarch_frame_align(), set_gdbarch_frame_args_skip(), set_gdbarch_gen_return_address(), set_gdbarch_get_longjmp_target(), set_gdbarch_inner_than(), set_gdbarch_long_double_bit(), set_gdbarch_long_double_format(), set_gdbarch_long_long_align_bit(), set_gdbarch_max_insn_length(), set_gdbarch_num_pseudo_regs(), set_gdbarch_num_regs(), set_gdbarch_pc_regnum(), set_gdbarch_print_float_info(), set_gdbarch_print_insn(), set_gdbarch_ps_regnum(), set_gdbarch_pseudo_register_read_value(), set_gdbarch_pseudo_register_write(), set_gdbarch_push_dummy_call(), set_gdbarch_push_dummy_code(), set_gdbarch_register_name(), set_gdbarch_register_reggroup_p(), set_gdbarch_register_to_value(), set_gdbarch_regset_from_core_section(), set_gdbarch_relocate_instruction(), set_gdbarch_return_value(), set_gdbarch_sdb_reg_to_regnum(), set_gdbarch_skip_permanent_breakpoint(), set_gdbarch_skip_prologue(), set_gdbarch_sp_regnum(), set_gdbarch_stab_reg_to_regnum(), set_gdbarch_unwind_pc(), set_gdbarch_value_to_register(), set_tdesc_pseudo_register_name(), set_tdesc_pseudo_register_type(), gdbarch_tdep::sigcontext_addr, gdbarch_tdep::sigtramp_end, gdbarch_tdep::sigtramp_p, gdbarch_tdep::sigtramp_start, gdbarch_tdep::sizeof_fpregset, gdbarch_tdep::sizeof_gregset, gdbarch_tdep::st0_regnum, gdbarch_tdep::struct_return, gdbarch_info::target_desc, gdbarch_info::tdep_info, gdbarch_tdep::tdesc, tdesc_data, tdesc_data_alloc(), tdesc_data_cleanup(), tdesc_has_registers(), tdesc_i386, tdesc_use_registers(), XCALLOC, xfree(), gdbarch_tdep::xsave_xcr0_offset, gdbarch_tdep::xstateregset, gdbarch_tdep::ymm0_regnum, gdbarch_tdep::ymm0h_regnum, and gdbarch_tdep::ymmh_register_names.
static void i386_gen_return_address | ( | struct gdbarch * | gdbarch, |
struct agent_expr * | ax, | ||
struct axs_value * | value, | ||
CORE_ADDR | scope | ||
) | [static] |
Definition at line 2144 of file i386-tdep.c.
References ax_const_l(), ax_reg(), ax_simple(), axs_lvalue_memory, I386_EBP_REGNUM, I386_EIP_REGNUM, axs_value::kind, register_type(), and axs_value::type.
Referenced by i386_gdbarch_init().
static int i386_get_longjmp_target | ( | struct frame_info * | frame, |
CORE_ADDR * | pc | ||
) | [static] |
Definition at line 2329 of file i386-tdep.c.
References gdbarch::byte_order, extract_unsigned_integer(), gdbarch_byte_order(), gdbarch_tdep(), get_frame_arch(), get_frame_register(), I386_ESP_REGNUM, gdbarch_tdep::jb_pc_offset, sp, and target_read_memory().
Referenced by i386_gdbarch_init().
static void i386_go32_init_abi | ( | struct gdbarch_info | info, |
struct gdbarch * | gdbarch | ||
) | [static] |
Definition at line 3812 of file i386-tdep.c.
References gdbarch_tdep(), i386_svr4_reg_to_regnum(), gdbarch_tdep::jb_pc_offset, set_gdbarch_has_dos_based_file_system(), set_gdbarch_sdb_reg_to_regnum(), set_gdbarch_stab_reg_to_regnum(), gdbarch_tdep::sigtramp_p, gdbarch_info::target_desc, gdbarch_tdep::tdesc, tdesc_has_registers(), and tdesc_i386_mmx.
static int i386_in_function_epilogue_p | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | pc | ||
) | [static] |
Definition at line 1950 of file i386-tdep.c.
References symtab::epilogue_unwind_valid, find_pc_symtab(), and target_read_memory().
Referenced by i386_epilogue_frame_sniffer().
static int i386_in_stack_tramp_p | ( | CORE_ADDR | pc | ) | [static] |
Definition at line 2097 of file i386-tdep.c.
References find_pc_partial_function(), i386_match_insn_block(), i386_insn::insn, name, and target_read_memory().
Referenced by i386_stack_tramp_frame_sniffer().
static void i386_init_reggroups | ( | void | ) | [static] |
Definition at line 3843 of file i386-tdep.c.
References reggroup_new(), and USER_REGGROUP.
static struct i386_insn* i386_match_insn | ( | CORE_ADDR | pc, |
struct i386_insn * | insn_patterns | ||
) | [static, read] |
Definition at line 1180 of file i386-tdep.c.
References i386_match_pattern(), and i386_insn::len.
Referenced by i386_analyze_frame_setup(), and i386_match_insn_block().
static int i386_match_insn_block | ( | CORE_ADDR | pc, |
struct i386_insn * | insn_patterns | ||
) | [static] |
Definition at line 1197 of file i386-tdep.c.
References i386_match_insn(), i386_match_pattern(), i386_insn::insn, and i386_insn::len.
Referenced by i386_in_stack_tramp_p().
static int i386_match_pattern | ( | CORE_ADDR | pc, |
struct i386_insn | pattern | ||
) | [static] |
Definition at line 1146 of file i386-tdep.c.
References gdb_assert, I386_MAX_MATCHED_INSN_LEN, i386_insn::insn, i386_insn::len, i386_insn::mask, and target_read_memory().
Referenced by i386_match_insn(), and i386_match_insn_block().
static int i386_mmx_regnum_p | ( | struct gdbarch * | gdbarch, |
int | regnum | ||
) | [static] |
Definition at line 128 of file i386-tdep.c.
References gdbarch_tdep(), gdbarch_tdep::mm0_regnum, and gdbarch_tdep::num_mmx_regs.
Referenced by i386_process_record(), i386_pseudo_register_name(), i386_pseudo_register_read_into_value(), i386_pseudo_register_type(), i386_pseudo_register_write(), and i386_register_reggroup_p().
static int i386_mmx_regnum_to_fp_regnum | ( | struct regcache * | regcache, |
int | regnum | ||
) | [static] |
Definition at line 2876 of file i386-tdep.c.
References gdbarch_tdep(), get_regcache_arch(), I387_FSTAT_REGNUM, I387_ST0_REGNUM, gdbarch_tdep::mm0_regnum, regcache_raw_read_unsigned(), and ULONGEST.
Referenced by i386_pseudo_register_read_into_value(), and i386_pseudo_register_write().
static struct type* i386_mmx_type | ( | struct gdbarch * | gdbarch | ) | [static, read] |
Definition at line 2808 of file i386-tdep.c.
References append_composite_type_field(), arch_composite_type(), builtin_type::builtin_int16, builtin_type::builtin_int32, builtin_type::builtin_int64, builtin_type::builtin_int8, builtin_type(), gdbarch_tdep(), gdbarch_tdep::i386_mmx_type, init_vector_type(), TYPE_CODE_UNION, TYPE_NAME, and TYPE_VECTOR.
Referenced by i386_pseudo_register_type().
static int i386_mxcsr_regnum_p | ( | struct gdbarch * | gdbarch, |
int | regnum | ||
) | [static] |
Definition at line 221 of file i386-tdep.c.
References gdbarch_tdep(), I387_MXCSR_REGNUM, and I387_NUM_XMM_REGS.
Referenced by i386_process_record(), and i386_register_reggroup_p().
static int i386_next_regnum | ( | int | regnum | ) | [static] |
Definition at line 3065 of file i386-tdep.c.
References I386_EBP_REGNUM, I386_EBX_REGNUM, I386_ECX_REGNUM, I386_EDI_REGNUM, I386_EDX_REGNUM, I386_ESI_REGNUM, and regnum.
Referenced by i386_convert_register_p(), i386_register_to_value(), and i386_value_to_register().
CORE_ADDR i386_pe_skip_trampoline_code | ( | struct frame_info * | frame, |
CORE_ADDR | pc, | ||
char * | name | ||
) |
Definition at line 3342 of file i386-tdep.c.
References gdbarch::byte_order, gdbarch_byte_order(), get_frame_arch(), lookup_minimal_symbol_by_pc(), bound_minimal_symbol::minsym, read_memory_unsigned_integer(), and SYMBOL_LINKAGE_NAME.
Referenced by i386_cygwin_skip_trampoline_code().
static int i386_print_insn | ( | bfd_vma | pc, |
struct disassemble_info * | info | ||
) | [static] |
Definition at line 3387 of file i386-tdep.c.
References att_flavor, disassembly_flavor, gdb_assert, and intel_flavor.
Referenced by i386_gdbarch_init().
int i386_process_record | ( | struct gdbarch * | gdbarch, |
struct regcache * | regcache, | ||
CORE_ADDR | input_addr | ||
) |
Definition at line 4342 of file i386-tdep.c.
References _, i386_record_s::addr, i386_record_s::aflag, i386_record_s::dflag, extract_unsigned_integer(), fprintf_unfiltered(), gdb_stdlog, i386_record_s::gdbarch, gdbarch_byte_order(), gdbarch_tdep(), I386_EAX_REGNUM, i386_fp_regnum_p(), i386_fpc_regnum_p(), gdbarch_tdep::i386_intx80_record, i386_mmx_regnum_p(), i386_mxcsr_regnum_p(), i386_record_floats(), I386_RECORD_FULL_ARCH_LIST_ADD_REG, i386_record_lea_modrm(), i386_record_lea_modrm_addr(), i386_record_modrm(), i386_record_push(), I386_SAVE_FPU_ENV, I386_SAVE_FPU_ENV_REG_STACK, I386_SAVE_FPU_REGS, gdbarch_tdep::i386_syscall_record, gdbarch_tdep::i386_sysenter_record, i386_xmm_regnum_p(), I387_FCTRL_REGNUM, I387_FTAG_REGNUM, I387_MM0_REGNUM, I387_MXCSR_REGNUM, I387_ST0_REGNUM, I387_XMM0_REGNUM, MAX_REGISTER_SIZE, memset(), i386_record_s::mod, i386_record_s::modrm, OP_CMPL, i386_record_s::orig_addr, i386_record_s::ot, OT_BYTE, OT_DQUAD, OT_LONG, OT_QUAD, OT_WORD, i386_record_s::override, paddress(), i386_record_s::popl_esp_hack, PREFIX_ADDR, PREFIX_DATA, PREFIX_LOCK, PREFIX_REPNZ, PREFIX_REPZ, printf_unfiltered(), record_debug, record_full_arch_list_add_end(), record_full_arch_list_add_mem(), record_full_arch_list_add_reg(), record_full_memory_query, record_read_memory(), gdbarch_tdep::record_regmap, i386_record_s::reg, i386_record_s::regcache, regcache_raw_read_unsigned(), i386_record_s::regmap, regnum, i386_record_s::rex_b, i386_record_s::rex_x, i386_record_s::rip_offset, i386_record_s::rm, target_terminal_inferior(), target_terminal_ours, ULONGEST, X86_RECORD_CS_REGNUM, X86_RECORD_DS_REGNUM, X86_RECORD_EFLAGS_REGNUM, X86_RECORD_ES_REGNUM, X86_RECORD_FS_REGNUM, X86_RECORD_GS_REGNUM, X86_RECORD_R8_REGNUM, X86_RECORD_REAX_REGNUM, X86_RECORD_REBP_REGNUM, X86_RECORD_REBX_REGNUM, X86_RECORD_RECX_REGNUM, X86_RECORD_REDI_REGNUM, X86_RECORD_REDX_REGNUM, X86_RECORD_REIP_REGNUM, X86_RECORD_RESI_REGNUM, X86_RECORD_RESP_REGNUM, X86_RECORD_SS_REGNUM, and yquery().
Referenced by amd64_linux_init_abi_common(), and i386_linux_init_abi().
const char* i386_pseudo_register_name | ( | struct gdbarch * | gdbarch, |
int | regnum | ||
) |
Definition at line 273 of file i386-tdep.c.
References _, gdbarch_tdep::al_regnum, gdbarch_tdep::ax_regnum, gdbarch_tdep(), i386_byte_names, i386_byte_regnum_p(), i386_mmx_names, i386_mmx_regnum_p(), i386_word_names, i386_word_regnum_p(), i386_ymm_names, i386_ymm_regnum_p(), I387_MM0_REGNUM, internal_error(), and gdbarch_tdep::ymm0_regnum.
Referenced by amd64_pseudo_register_name(), and i386_gdbarch_init().
void i386_pseudo_register_read_into_value | ( | struct gdbarch * | gdbarch, |
struct regcache * | regcache, | ||
int | regnum, | ||
struct value * | result_value | ||
) |
Definition at line 2896 of file i386-tdep.c.
References _, gdbarch_tdep::al_regnum, gdbarch_tdep::ax_regnum, gdbarch_tdep(), i386_byte_regnum_p(), i386_mmx_regnum_p(), i386_mmx_regnum_to_fp_regnum(), i386_word_regnum_p(), i386_ymm_regnum_p(), I387_XMM0_REGNUM, internal_error(), mark_value_bytes_unavailable(), MAX_REGISTER_SIZE, memcpy(), REG_VALID, regcache_raw_read(), register_size(), exsummary::status, TYPE_LENGTH, value_contents_raw(), value_type(), gdbarch_tdep::ymm0_regnum, and gdbarch_tdep::ymm0h_regnum.
Referenced by amd64_pseudo_register_read_value(), and i386_pseudo_register_read_value().
static struct value* i386_pseudo_register_read_value | ( | struct gdbarch * | gdbarch, |
struct regcache * | regcache, | ||
int | regnum | ||
) | [static, read] |
Definition at line 2978 of file i386-tdep.c.
References allocate_value(), i386_pseudo_register_read_into_value(), lval_register, register_type(), regnum, VALUE_LVAL, and VALUE_REGNUM.
Referenced by i386_gdbarch_init().
struct type* i386_pseudo_register_type | ( | struct gdbarch * | gdbarch, |
int | regnum | ||
) | [read] |
Definition at line 2852 of file i386-tdep.c.
References _, builtin_type::builtin_int16, builtin_type::builtin_int32, builtin_type::builtin_int8, builtin_type(), i386_byte_regnum_p(), i386_dword_regnum_p(), i386_mmx_regnum_p(), i386_mmx_type(), i386_word_regnum_p(), i386_ymm_regnum_p(), i386_ymm_type(), and internal_error().
Referenced by amd64_x32_pseudo_register_type(), and i386_gdbarch_init().
void i386_pseudo_register_write | ( | struct gdbarch * | gdbarch, |
struct regcache * | regcache, | ||
int | regnum, | ||
const gdb_byte * | buf | ||
) |
Definition at line 2994 of file i386-tdep.c.
References _, gdbarch_tdep::al_regnum, gdbarch_tdep::ax_regnum, gdbarch_tdep(), i386_byte_regnum_p(), i386_mmx_regnum_p(), i386_mmx_regnum_to_fp_regnum(), i386_word_regnum_p(), i386_ymm_regnum_p(), I387_XMM0_REGNUM, internal_error(), MAX_REGISTER_SIZE, memcpy(), regcache_raw_read(), regcache_raw_write(), register_size(), gdbarch_tdep::ymm0_regnum, and gdbarch_tdep::ymm0h_regnum.
Referenced by amd64_pseudo_register_write(), and i386_gdbarch_init().
static CORE_ADDR i386_push_dummy_call | ( | struct gdbarch * | gdbarch, |
struct value * | function, | ||
struct regcache * | regcache, | ||
CORE_ADDR | bp_addr, | ||
int | nargs, | ||
struct value ** | args, | ||
CORE_ADDR | sp, | ||
int | struct_return, | ||
CORE_ADDR | struct_addr | ||
) | [static] |
Definition at line 2401 of file i386-tdep.c.
References align_up(), gdbarch::byte_order, gdbarch_byte_order(), i386_16_byte_align_p(), I386_EBP_REGNUM, I386_ESP_REGNUM, len, regcache_cooked_write(), store_unsigned_integer(), TYPE_LENGTH, value_contents_all(), value_enclosing_type(), and write_memory().
Referenced by i386_gdbarch_init().
static CORE_ADDR i386_push_dummy_code | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | sp, | ||
CORE_ADDR | funaddr, | ||
struct value ** | args, | ||
int | nargs, | ||
struct type * | value_type, | ||
CORE_ADDR * | real_pc, | ||
CORE_ADDR * | bp_addr, | ||
struct regcache * | regcache | ||
) | [static] |
Definition at line 2387 of file i386-tdep.c.
Referenced by i386_gdbarch_init().
static int i386_record_floats | ( | struct gdbarch * | gdbarch, |
struct i386_record_s * | ir, | ||
uint32_t | iregnum | ||
) | [static] |
Definition at line 4276 of file i386-tdep.c.
References gdbarch_tdep(), I386_SAVE_FPU_ENV, I386_SAVE_FPU_ENV_REG_STACK, I386_SAVE_FPU_REGS, I387_FCTRL_REGNUM, I387_FOP_REGNUM, I387_ST0_REGNUM, record_full_arch_list_add_reg(), and i386_record_s::regcache.
Referenced by i386_process_record().
static int i386_record_lea_modrm | ( | struct i386_record_s * | irp | ) | [static] |
Definition at line 4212 of file i386-tdep.c.
References _, i386_record_s::gdbarch, i386_record_lea_modrm_addr(), i386_record_s::orig_addr, i386_record_s::ot, i386_record_s::override, paddress(), record_full_arch_list_add_mem(), record_full_memory_query, target_terminal_inferior(), target_terminal_ours, and yquery().
Referenced by i386_process_record().
static int i386_record_lea_modrm_addr | ( | struct i386_record_s * | irp, |
uint64_t * | addr | ||
) | [static] |
Definition at line 4021 of file i386-tdep.c.
References i386_record_s::addr, i386_record_s::aflag, gdbarch::byte_order, extract_signed_integer(), i386_record_s::gdbarch, gdbarch_byte_order(), i386_record_s::mod, i386_record_s::popl_esp_hack, record_read_memory(), i386_record_s::regcache, regcache_raw_read_unsigned(), i386_record_s::regmap, i386_record_s::rex_b, i386_record_s::rex_x, i386_record_s::rip_offset, i386_record_s::rm, ULONGEST, X86_RECORD_R8_REGNUM, X86_RECORD_REBP_REGNUM, X86_RECORD_REBX_REGNUM, X86_RECORD_REDI_REGNUM, and X86_RECORD_RESI_REGNUM.
Referenced by i386_process_record(), and i386_record_lea_modrm().
static int i386_record_modrm | ( | struct i386_record_s * | irp | ) | [static] |
Definition at line 4002 of file i386-tdep.c.
References i386_record_s::addr, i386_record_s::gdbarch, i386_record_s::mod, i386_record_s::modrm, record_read_memory(), i386_record_s::reg, and i386_record_s::rm.
Referenced by i386_process_record().
static int i386_record_push | ( | struct i386_record_s * | irp, |
int | size | ||
) | [static] |
Definition at line 4250 of file i386-tdep.c.
References record_full_arch_list_add_mem(), record_full_arch_list_add_reg(), i386_record_s::regcache, regcache_raw_read_unsigned(), i386_record_s::regmap, ULONGEST, and X86_RECORD_RESP_REGNUM.
Referenced by i386_process_record().
static int i386_reg_struct_return_p | ( | struct gdbarch * | gdbarch, |
struct type * | type | ||
) | [static] |
Definition at line 2638 of file i386-tdep.c.
References check_typedef(), code, default_struct_convention, gdb_assert, gdbarch_tdep(), len, pcc_struct_convention, pcc_struct_return, struct_convention, gdbarch_tdep::struct_return, TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_FLT, TYPE_CODE_STRUCT, TYPE_CODE_UNION, TYPE_FIELD_TYPE, TYPE_LENGTH, and TYPE_NFIELDS.
Referenced by i386_return_value().
static const char* i386_register_name | ( | struct gdbarch * | gdbarch, |
int | regnum | ||
) | [static] |
Definition at line 261 of file i386-tdep.c.
References i386_ymmh_regnum_p(), and tdesc_register_name().
Referenced by i386_gdbarch_init().
int i386_register_reggroup_p | ( | struct gdbarch * | gdbarch, |
int | regnum, | ||
struct reggroup * | group | ||
) |
Definition at line 3864 of file i386-tdep.c.
References all_reggroup, default_register_reggroup_p(), float_reggroup, gdbarch_tdep(), general_reggroup, i386_byte_regnum_p(), i386_dword_regnum_p(), i386_fp_regnum_p(), i386_fpc_regnum_p(), i386_mmx_regnum_p(), i386_mxcsr_regnum_p(), i386_word_regnum_p(), i386_xmm_regnum_p(), I386_XSTATE_AVX, I386_XSTATE_AVX_MASK, I386_XSTATE_SSE_MASK, i386_ymm_regnum_p(), i386_ymmh_regnum_p(), vector_reggroup, and gdbarch_tdep::xcr0.
Referenced by amd64_linux_register_reggroup_p(), i386_gdbarch_init(), and i386_linux_register_reggroup_p().
static int i386_register_to_value | ( | struct frame_info * | frame, |
int | regnum, | ||
struct type * | type, | ||
gdb_byte * | to, | ||
int * | optimizedp, | ||
int * | unavailablep | ||
) | [static] |
Definition at line 3125 of file i386-tdep.c.
References gdb_assert, get_frame_arch(), get_frame_register_bytes(), i386_fp_regnum_p(), i386_next_regnum(), i387_register_to_value(), len, register_size(), and TYPE_LENGTH.
Referenced by i386_gdbarch_init().
struct regset* i386_regset_from_core_section | ( | struct gdbarch * | gdbarch, |
const char * | sect_name, | ||
size_t | sect_size | ||
) | [read] |
Definition at line 3302 of file i386-tdep.c.
References gdbarch_tdep::fpregset, gdbarch_tdep(), gdbarch_tdep::gregset, i386_collect_fpregset(), i386_collect_gregset(), i386_collect_xstateregset(), i386_supply_fpregset(), i386_supply_gregset(), i386_supply_xstateregset(), I387_SIZEOF_FXSAVE, regset_alloc(), gdbarch_tdep::sizeof_fpregset, gdbarch_tdep::sizeof_gregset, and gdbarch_tdep::xstateregset.
Referenced by amd64_regset_from_core_section(), and i386_gdbarch_init().
static void i386_relocate_instruction | ( | struct gdbarch * | gdbarch, |
CORE_ADDR * | to, | ||
CORE_ADDR | oldloc | ||
) | [static] |
Definition at line 726 of file i386-tdep.c.
References append_insns(), debug_displaced, extract_signed_integer(), fprintf_unfiltered(), gdb_buffered_insn_length(), gdb_stdlog, gdbarch_byte_order(), hex_string(), I386_MAX_INSN_LEN, i386_skip_prefixes(), offset, paddress(), read_memory(), store_signed_integer(), store_unsigned_integer(), and to.
Referenced by i386_gdbarch_init().
static int i386_ret_p | ( | const gdb_byte * | insn | ) | [static] |
Definition at line 497 of file i386-tdep.c.
Referenced by i386_displaced_step_fixup().
static enum return_value_convention i386_return_value | ( | struct gdbarch * | gdbarch, |
struct value * | function, | ||
struct type * | type, | ||
struct regcache * | regcache, | ||
gdb_byte * | readbuf, | ||
const gdb_byte * | writebuf | ||
) | [static] |
Definition at line 2672 of file i386-tdep.c.
References check_typedef(), code, I386_EAX_REGNUM, i386_extract_return_value(), i386_reg_struct_return_p(), i386_store_return_value(), read_memory(), regcache_raw_read_unsigned(), RETURN_VALUE_ABI_RETURNS_ADDRESS, RETURN_VALUE_REGISTER_CONVENTION, TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_COMPLEX, TYPE_CODE_DECFLOAT, TYPE_CODE_STRUCT, TYPE_CODE_UNION, TYPE_FIELD_TYPE, TYPE_LENGTH, TYPE_NFIELDS, and ULONGEST.
Referenced by i386_gdbarch_init().
static struct i386_frame_cache* i386_sigtramp_frame_cache | ( | struct frame_info * | this_frame, |
void ** | this_cache | ||
) | [static, read] |
Definition at line 2161 of file i386-tdep.c.
References i386_frame_cache::base, i386_frame_cache::base_p, gdb_exception::error, extract_unsigned_integer(), gdb_assert, gdbarch_byte_order(), gdbarch_tdep(), get_frame_arch(), get_frame_register(), i386_alloc_frame_cache(), I386_EIP_REGNUM, I386_ESP_REGNUM, I386_NUM_SAVED_REGS, NOT_AVAILABLE_ERROR, gdb_exception::reason, RETURN_MASK_ERROR, i386_frame_cache::saved_regs, gdbarch_tdep::sc_num_regs, gdbarch_tdep::sc_pc_offset, gdbarch_tdep::sc_reg_offset, gdbarch_tdep::sc_sp_offset, gdbarch_tdep::sigcontext_addr, throw_exception(), and TRY_CATCH.
Referenced by i386_sigtramp_frame_prev_register(), i386_sigtramp_frame_this_id(), and i386_sigtramp_frame_unwind_stop_reason().
static struct value* i386_sigtramp_frame_prev_register | ( | struct frame_info * | this_frame, |
void ** | this_cache, | ||
int | regnum | ||
) | [static, read] |
Definition at line 2235 of file i386-tdep.c.
References i386_frame_prev_register(), and i386_sigtramp_frame_cache().
static int i386_sigtramp_frame_sniffer | ( | const struct frame_unwind * | self, |
struct frame_info * | this_frame, | ||
void ** | this_prologue_cache | ||
) | [static] |
Definition at line 2245 of file i386-tdep.c.
References gdb_assert, gdbarch_tdep(), get_frame_arch(), get_frame_pc(), gdbarch_tdep::pc, gdbarch_tdep::sigcontext_addr, gdbarch_tdep::sigtramp_end, gdbarch_tdep::sigtramp_p, and gdbarch_tdep::sigtramp_start.
static void i386_sigtramp_frame_this_id | ( | struct frame_info * | this_frame, |
void ** | this_cache, | ||
struct frame_id * | this_id | ||
) | [static] |
Definition at line 2221 of file i386-tdep.c.
References i386_frame_cache::base, i386_frame_cache::base_p, frame_id_build(), get_frame_pc(), and i386_sigtramp_frame_cache().
static enum unwind_stop_reason i386_sigtramp_frame_unwind_stop_reason | ( | struct frame_info * | this_frame, |
void ** | this_cache | ||
) | [static] |
Definition at line 2208 of file i386-tdep.c.
References i386_frame_cache::base_p, and i386_sigtramp_frame_cache().
int i386_sigtramp_p | ( | struct frame_info * | this_frame | ) |
Definition at line 3373 of file i386-tdep.c.
References find_pc_partial_function(), get_frame_pc(), and name.
Referenced by darwin_dwarf_signal_frame_p(), i386_darwin_init_abi(), i386_gdbarch_init(), and x86_darwin_init_abi_64().
CORE_ADDR i386_skip_main_prologue | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | pc | ||
) |
Definition at line 1675 of file i386-tdep.c.
References extract_signed_integer(), gdbarch_byte_order(), lookup_minimal_symbol_by_pc(), bound_minimal_symbol::minsym, SYMBOL_LINKAGE_NAME, and target_read_memory().
Referenced by i386_cygwin_init_abi().
static CORE_ADDR i386_skip_noop | ( | CORE_ADDR | pc | ) | [static] |
Definition at line 1287 of file i386-tdep.c.
References check(), and target_read_memory().
Referenced by i386_analyze_prologue().
static void i386_skip_permanent_breakpoint | ( | struct regcache * | regcache | ) | [static] |
Definition at line 3939 of file i386-tdep.c.
References regcache_read_pc(), and regcache_write_pc().
Referenced by i386_gdbarch_init().
static gdb_byte* i386_skip_prefixes | ( | gdb_byte * | insn, |
size_t | max_len | ||
) | [static] |
Definition at line 425 of file i386-tdep.c.
Referenced by i386_displaced_step_copy_insn(), i386_displaced_step_fixup(), and i386_relocate_instruction().
static CORE_ADDR i386_skip_probe | ( | CORE_ADDR | pc | ) | [static] |
Definition at line 975 of file i386-tdep.c.
References i386_frame_cache::pc, read_memory(), and target_read_memory().
Referenced by i386_analyze_prologue().
static CORE_ADDR i386_skip_prologue | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | start_pc | ||
) | [static] |
Definition at line 1573 of file i386-tdep.c.
References find_pc_partial_function(), find_pc_symtab(), gdbarch_byte_order(), i386_analyze_prologue(), i386_follow_jump(), i386_frame_cache::locals, max, i386_frame_cache::pc, symtab::producer, read_memory_unsigned_integer(), skip_prologue_using_sal(), and target_read_memory().
Referenced by i386_gdbarch_init().
static int i386_stack_tramp_frame_sniffer | ( | const struct frame_unwind * | self, |
struct frame_info * | this_frame, | ||
void ** | this_cache | ||
) | [static] |
Definition at line 2121 of file i386-tdep.c.
References frame_relative_level(), get_frame_pc(), and i386_in_stack_tramp_p().
int i386_stap_is_single_operand | ( | struct gdbarch * | gdbarch, |
const char * | s | ||
) |
Definition at line 3445 of file i386-tdep.c.
Referenced by amd64_init_abi(), and i386_elf_init_abi().
int i386_stap_parse_special_token | ( | struct gdbarch * | gdbarch, |
struct stap_parse_info * | p | ||
) |
Definition at line 3457 of file i386-tdep.c.
References _, stap_parse_info::arg, stap_parse_info::arg_type, error(), len, stoken::length, lookup_pointer_type(), offset, stoken::ptr, stap_parse_info::saved_arg, size, user_reg_map_name_to_regnum(), write_exp_elt_longcst(), write_exp_elt_opcode(), write_exp_elt_type(), and write_exp_string().
Referenced by amd64_init_abi(), and i386_elf_init_abi().
static void i386_store_return_value | ( | struct gdbarch * | gdbarch, |
struct type * | type, | ||
struct regcache * | regcache, | ||
const gdb_byte * | valbuf | ||
) | [static] |
Definition at line 2558 of file i386-tdep.c.
References _, convert_typed_floating(), gdbarch_tdep(), HIGH_RETURN_REGNUM, I386_MAX_REGISTER_SIZE, I386_ST0_REGNUM, i387_ext_type(), I387_FSTAT_REGNUM, I387_FTAG_REGNUM, internal_error(), len, LOW_RETURN_REGNUM, regcache_raw_read_unsigned(), regcache_raw_write(), regcache_raw_write_part(), regcache_raw_write_unsigned(), register_size(), gdbarch_tdep::st0_regnum, TYPE_CODE, TYPE_CODE_FLT, TYPE_LENGTH, ULONGEST, and warning().
Referenced by i386_return_value().
static void i386_supply_fpregset | ( | const struct regset * | regset, |
struct regcache * | regcache, | ||
int | regnum, | ||
const void * | fpregs, | ||
size_t | len | ||
) | [static] |
Definition at line 3241 of file i386-tdep.c.
References regset::arch, gdb_assert, gdbarch_tdep(), I387_SIZEOF_FXSAVE, i387_supply_fsave(), i387_supply_fxsave(), and gdbarch_tdep::sizeof_fpregset.
Referenced by i386_regset_from_core_section().
void i386_supply_gregset | ( | const struct regset * | regset, |
struct regcache * | regcache, | ||
int | regnum, | ||
const void * | gregs, | ||
size_t | len | ||
) |
Definition at line 3195 of file i386-tdep.c.
References regset::arch, gdb_assert, gdbarch_tdep(), gdbarch_tdep::gregset_num_regs, gdbarch_tdep::gregset_reg_offset, regcache_raw_supply(), gdbarch_tdep::regs, and gdbarch_tdep::sizeof_gregset.
Referenced by amd64obsd_supply_regset(), i386_regset_from_core_section(), i386_windows_regset_from_core_section(), i386nto_supply_gregset(), and i386obsd_aout_supply_regset().
static void i386_supply_xstateregset | ( | const struct regset * | regset, |
struct regcache * | regcache, | ||
int | regnum, | ||
const void * | xstateregs, | ||
size_t | len | ||
) | [static] |
Definition at line 3281 of file i386-tdep.c.
References i387_supply_xsave().
Referenced by i386_regset_from_core_section().
void i386_svr4_init_abi | ( | struct gdbarch_info | info, |
struct gdbarch * | gdbarch | ||
) |
Definition at line 3791 of file i386-tdep.c.
References find_solib_trampoline_target(), gdbarch_tdep(), i386_elf_init_abi(), i386_svr4_sigcontext_addr(), i386_svr4_sigtramp_p(), gdbarch_tdep::jb_pc_offset, gdbarch_tdep::sc_pc_offset, gdbarch_tdep::sc_sp_offset, set_gdbarch_skip_trampoline_code(), gdbarch_tdep::sigcontext_addr, and gdbarch_tdep::sigtramp_p.
Referenced by i386_sol2_init_abi().
static int i386_svr4_reg_to_regnum | ( | struct gdbarch * | gdbarch, |
int | reg | ||
) | [static] |
Definition at line 339 of file i386-tdep.c.
References gdbarch_num_pseudo_regs(), gdbarch_num_regs(), gdbarch_tdep(), I386_CS_REGNUM, i386_dbx_reg_to_regnum(), I386_DS_REGNUM, I386_ES_REGNUM, I386_FS_REGNUM, I386_GS_REGNUM, I386_SS_REGNUM, I387_FCTRL_REGNUM, I387_FSTAT_REGNUM, I387_MXCSR_REGNUM, and I387_ST0_REGNUM.
Referenced by i386_elf_init_abi(), i386_gdbarch_init(), and i386_go32_init_abi().
static CORE_ADDR i386_svr4_sigcontext_addr | ( | struct frame_info * | this_frame | ) | [static] |
Definition at line 3426 of file i386-tdep.c.
References gdbarch::byte_order, extract_unsigned_integer(), gdbarch_byte_order(), get_frame_arch(), get_frame_register(), I386_ESP_REGNUM, read_memory_unsigned_integer(), and sp.
Referenced by i386_svr4_init_abi().
static int i386_svr4_sigtramp_p | ( | struct frame_info * | this_frame | ) | [static] |
Definition at line 3411 of file i386-tdep.c.
References find_pc_partial_function(), get_frame_pc(), and name.
Referenced by i386_svr4_init_abi().
static int i386_syscall_p | ( | const gdb_byte * | insn, |
int * | lengthp | ||
) | [static] |
Definition at line 530 of file i386-tdep.c.
Referenced by i386_displaced_step_copy_insn(), and i386_displaced_step_fixup().
static CORE_ADDR i386_unwind_pc | ( | struct gdbarch * | gdbarch, |
struct frame_info * | next_frame | ||
) | [static] |
Definition at line 1709 of file i386-tdep.c.
References extract_typed_address(), frame_unwind_register(), and gdbarch_pc_regnum().
Referenced by i386_gdbarch_init().
static int i386_validate_tdesc_p | ( | struct gdbarch_tdep * | tdep, |
struct tdesc_arch_data * | tdesc_data | ||
) | [static] |
Definition at line 7494 of file i386-tdep.c.
References I386_XSTATE_AVX_MASK, I386_XSTATE_SSE_MASK, I386_XSTATE_X87_MASK, I386_YMM0H_REGNUM, i386_ymmh_names, gdbarch_tdep::num_core_regs, gdbarch_tdep::num_xmm_regs, gdbarch_tdep::num_ymm_regs, gdbarch_tdep::register_names, gdbarch_tdep::tdesc, tdesc_find_feature(), tdesc_has_registers(), tdesc_numbered_register(), gdbarch_tdep::xcr0, gdbarch_tdep::ymm0h_regnum, and gdbarch_tdep::ymmh_register_names.
Referenced by i386_gdbarch_init().
static void i386_value_to_register | ( | struct frame_info * | frame, |
int | regnum, | ||
struct type * | type, | ||
const gdb_byte * | from | ||
) | [static] |
Definition at line 3163 of file i386-tdep.c.
References gdb_assert, get_frame_arch(), i386_fp_regnum_p(), i386_next_regnum(), i387_value_to_register(), len, put_frame_register(), register_size(), and TYPE_LENGTH.
Referenced by i386_gdbarch_init().
int i386_word_regnum_p | ( | struct gdbarch * | gdbarch, |
int | regnum | ||
) |
Definition at line 154 of file i386-tdep.c.
References gdbarch_tdep::ax_regnum, gdbarch_tdep(), and gdbarch_tdep::num_word_regs.
Referenced by amd64_pseudo_register_name(), i386_pseudo_register_name(), i386_pseudo_register_read_into_value(), i386_pseudo_register_type(), i386_pseudo_register_write(), and i386_register_reggroup_p().
int i386_xmm_regnum_p | ( | struct gdbarch * | gdbarch, |
int | regnum | ||
) |
Definition at line 208 of file i386-tdep.c.
References gdbarch_tdep(), I387_NUM_XMM_REGS, I387_XMM0_REGNUM, and gdbarch_tdep::num_xmm_regs.
Referenced by amd64_dwarf_reg_to_regnum(), i386_dbx_reg_to_regnum(), i386_process_record(), and i386_register_reggroup_p().
int i386_ymm_regnum_p | ( | struct gdbarch * | gdbarch, |
int | regnum | ||
) |
Definition at line 193 of file i386-tdep.c.
References gdbarch_tdep(), gdbarch_tdep::num_ymm_regs, and gdbarch_tdep::ymm0_regnum.
Referenced by amd64_pseudo_register_name(), i386_pseudo_register_name(), i386_pseudo_register_read_into_value(), i386_pseudo_register_type(), i386_pseudo_register_write(), and i386_register_reggroup_p().
static struct type* i386_ymm_type | ( | struct gdbarch * | gdbarch | ) | [static, read] |
Definition at line 2757 of file i386-tdep.c.
References append_composite_type_field(), arch_composite_type(), builtin_type::builtin_double, builtin_type::builtin_float, builtin_type::builtin_int128, builtin_type::builtin_int16, builtin_type::builtin_int32, builtin_type::builtin_int64, builtin_type::builtin_int8, builtin_type(), gdbarch_tdep(), gdbarch_tdep::i386_ymm_type, init_vector_type(), TYPE_CODE_UNION, TYPE_NAME, and TYPE_VECTOR.
Referenced by i386_pseudo_register_type().
static int i386_ymmh_regnum_p | ( | struct gdbarch * | gdbarch, |
int | regnum | ||
) | [static] |
Definition at line 178 of file i386-tdep.c.
References gdbarch_tdep(), gdbarch_tdep::num_ymm_regs, and gdbarch_tdep::ymm0h_regnum.
Referenced by i386_register_name(), and i386_register_reggroup_p().
struct type* i387_ext_type | ( | struct gdbarch * | gdbarch | ) | [read] |
Definition at line 2740 of file i386-tdep.c.
References gdb_assert, gdbarch_tdep(), gdbarch_tdep::i387_ext_type, and tdesc_find_type().
Referenced by i386_extract_return_value(), i386_store_return_value(), i387_convert_register_p(), i387_register_to_value(), i387_value_to_register(), and print_i387_value().
const char att_flavor[] = "att" [static] |
Definition at line 385 of file i386-tdep.c.
Referenced by i386_print_insn().
const char default_struct_convention[] = "default" [static] |
Definition at line 2621 of file i386-tdep.c.
Referenced by i386_reg_struct_return_p().
const char* disassembly_flavor = att_flavor [static] |
Definition at line 393 of file i386-tdep.c.
Referenced by i386_print_insn().
const char* i386_byte_names[] [static] |
{ "al", "cl", "dl", "bl", "ah", "ch", "dh", "bh" }
Definition at line 111 of file i386-tdep.c.
Referenced by i386_pseudo_register_name().
struct frame_unwind i386_epilogue_frame_unwind [static] |
{ NORMAL_FRAME, i386_epilogue_frame_unwind_stop_reason, i386_epilogue_frame_this_id, i386_epilogue_frame_prev_register, NULL, i386_epilogue_frame_sniffer }
Definition at line 2050 of file i386-tdep.c.
struct frame_base i386_frame_base [static] |
{ &i386_frame_unwind, i386_frame_base_address, i386_frame_base_address, i386_frame_base_address }
Definition at line 2293 of file i386-tdep.c.
struct i386_insn i386_frame_setup_skip_insns[] |
Definition at line 1235 of file i386-tdep.c.
struct frame_unwind i386_frame_unwind [static] |
{ NORMAL_FRAME, i386_frame_unwind_stop_reason, i386_frame_this_id, i386_frame_prev_register, NULL, default_frame_sniffer }
Definition at line 1933 of file i386-tdep.c.
const char* i386_mmx_names[] [static] |
{ "mm0", "mm1", "mm2", "mm3", "mm4", "mm5", "mm6", "mm7" }
Definition at line 103 of file i386-tdep.c.
Referenced by i386_pseudo_register_name().
struct reggroup* i386_mmx_reggroup [static] |
Definition at line 3840 of file i386-tdep.c.
const int i386_record_regmap[] [static] |
{ I386_EAX_REGNUM, I386_ECX_REGNUM, I386_EDX_REGNUM, I386_EBX_REGNUM, I386_ESP_REGNUM, I386_EBP_REGNUM, I386_ESI_REGNUM, I386_EDI_REGNUM, 0, 0, 0, 0, 0, 0, 0, 0, I386_EIP_REGNUM, I386_EFLAGS_REGNUM, I386_CS_REGNUM, I386_SS_REGNUM, I386_DS_REGNUM, I386_ES_REGNUM, I386_FS_REGNUM, I386_GS_REGNUM }
Definition at line 7419 of file i386-tdep.c.
Referenced by i386_gdbarch_init().
const char* i386_register_names[] [static] |
{ "eax", "ecx", "edx", "ebx", "esp", "ebp", "esi", "edi", "eip", "eflags", "cs", "ss", "ds", "es", "fs", "gs", "st0", "st1", "st2", "st3", "st4", "st5", "st6", "st7", "fctrl", "fstat", "ftag", "fiseg", "fioff", "foseg", "fooff", "fop", "xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5", "xmm6", "xmm7", "mxcsr" }
Definition at line 74 of file i386-tdep.c.
Referenced by i386_gdbarch_init().
struct frame_unwind i386_sigtramp_frame_unwind [static] |
{ SIGTRAMP_FRAME, i386_sigtramp_frame_unwind_stop_reason, i386_sigtramp_frame_this_id, i386_sigtramp_frame_prev_register, NULL, i386_sigtramp_frame_sniffer }
Definition at line 2274 of file i386-tdep.c.
struct reggroup* i386_sse_reggroup [static] |
Definition at line 3839 of file i386-tdep.c.
struct frame_unwind i386_stack_tramp_frame_unwind [static] |
{ NORMAL_FRAME, i386_epilogue_frame_unwind_stop_reason, i386_epilogue_frame_this_id, i386_epilogue_frame_prev_register, NULL, i386_stack_tramp_frame_sniffer }
Definition at line 2131 of file i386-tdep.c.
struct i386_insn i386_tramp_chain_in_reg_insns[] |
{ { 5, { 0xb8 }, { 0xfe } }, { 5, { 0xe9 }, { 0xff } }, {0} }
Definition at line 2070 of file i386-tdep.c.
struct i386_insn i386_tramp_chain_on_stack_insns[] |
{ { 5, { 0x68 }, { 0xff } }, { 5, { 0xe9 }, { 0xff } }, {0} }
Definition at line 2083 of file i386-tdep.c.
const char* i386_word_names[] [static] |
{ "ax", "cx", "dx", "bx", "", "bp", "si", "di" }
Definition at line 119 of file i386-tdep.c.
Referenced by i386_pseudo_register_name().
const char* i386_ymm_names[] [static] |
{ "ymm0", "ymm1", "ymm2", "ymm3", "ymm4", "ymm5", "ymm6", "ymm7", }
Definition at line 89 of file i386-tdep.c.
Referenced by i386_pseudo_register_name().
const char* i386_ymmh_names[] [static] |
{ "ymm0h", "ymm1h", "ymm2h", "ymm3h", "ymm4h", "ymm5h", "ymm6h", "ymm7h", }
Definition at line 95 of file i386-tdep.c.
Referenced by i386_validate_tdesc_p().
const char intel_flavor[] = "intel" [static] |
Definition at line 386 of file i386-tdep.c.
Referenced by i386_print_insn().
const char pcc_struct_convention[] = "pcc" [static] |
Definition at line 2622 of file i386-tdep.c.
Referenced by i386_reg_struct_return_p().
const char reg_struct_convention[] = "reg" [static] |
Definition at line 2623 of file i386-tdep.c.
const char* struct_convention = default_struct_convention [static] |
Definition at line 2631 of file i386-tdep.c.
Referenced by i386_reg_struct_return_p().
const char* const valid_conventions[] [static] |
Definition at line 2624 of file i386-tdep.c.
const char* const valid_flavors[] [static] |
{ att_flavor, intel_flavor, NULL }
Definition at line 387 of file i386-tdep.c.