GDB (xrefs)
Loading...
Searching...
No Matches
Classes | Macros | Enumerations | Functions | Variables
i386-tdep.c File Reference
#include "defs.h"
#include "opcode/i386.h"
#include "arch-utils.h"
#include "command.h"
#include "dummy-frame.h"
#include "dwarf2/frame.h"
#include "frame.h"
#include "frame-base.h"
#include "frame-unwind.h"
#include "inferior.h"
#include "infrun.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 "target-float.h"
#include "value.h"
#include "dis-asm.h"
#include "disasm.h"
#include "remote.h"
#include "i386-tdep.h"
#include "i387-tdep.h"
#include "gdbsupport/x86-xstate.h"
#include "x86-tdep.h"
#include "expop.h"
#include "record.h"
#include "record-full.h"
#include "target-descriptions.h"
#include "arch/i386.h"
#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>
#include <algorithm>
#include <unordered_set>
#include "producer.h"
#include "infcall.h"
#include "maint.h"

Go to the source code of this file.

Classes

struct  i386_frame_cache
 
struct  i386_insn
 
struct  i386_record_s
 

Macros

#define I386_NUM_SAVED_REGS   I386_NUM_GREGS
 
#define I386_MAX_MATCHED_INSN_LEN   6
 
#define LOW_RETURN_REGNUM   I386_EAX_REGNUM /* %eax */
 
#define HIGH_RETURN_REGNUM   I386_EDX_REGNUM /* %edx */
 
#define PREFIX_REPZ   0x01
 
#define PREFIX_REPNZ   0x02
 
#define PREFIX_LOCK   0x04
 
#define PREFIX_DATA   0x08
 
#define PREFIX_ADDR   0x10
 
#define I386_SAVE_FPU_REGS   0xfffd
 
#define I386_SAVE_FPU_ENV   0xfffe
 
#define I386_SAVE_FPU_ENV_REG_STACK   0xffff
 
#define I386_RECORD_FULL_ARCH_LIST_ADD_REG(regnum)    record_full_arch_list_add_reg (ir.regcache, ir.regmap[(regnum)])
 
#define MPX_BASE_MASK   (~(ULONGEST) 0xfff)
 
#define MPX_BD_MASK   0xfffffff00000ULL /* select bits [47:20] */
 
#define MPX_BT_MASK   0x0000000ffff8 /* select bits [19:3] */
 
#define MPX_BD_MASK_32   0xfffff000 /* select bits [31:12] */
 
#define MPX_BT_MASK_32   0x00000ffc /* select bits [11:2] */
 

Enumerations

enum  {
  OT_BYTE = 0 , OT_WORD , OT_LONG , OT_QUAD ,
  OT_DQUAD
}
 
enum  {
  OP_ADDL , OP_ORL , OP_ADCL , OP_SBBL ,
  OP_ANDL , OP_SUBL , OP_XORL , OP_CMPL
}
 

Functions

static int i386_mmx_regnum_p (struct gdbarch *gdbarch, int regnum)
 
int i386_byte_regnum_p (struct gdbarch *gdbarch, int regnum)
 
int i386_word_regnum_p (struct gdbarch *gdbarch, int regnum)
 
int i386_dword_regnum_p (struct gdbarch *gdbarch, int regnum)
 
int i386_zmmh_regnum_p (struct gdbarch *gdbarch, int regnum)
 
int i386_zmm_regnum_p (struct gdbarch *gdbarch, int regnum)
 
int i386_k_regnum_p (struct gdbarch *gdbarch, int regnum)
 
static int i386_ymmh_regnum_p (struct gdbarch *gdbarch, int regnum)
 
int i386_ymm_regnum_p (struct gdbarch *gdbarch, int regnum)
 
static int i386_ymmh_avx512_regnum_p (struct gdbarch *gdbarch, int regnum)
 
int i386_ymm_avx512_regnum_p (struct gdbarch *gdbarch, int regnum)
 
int i386_bnd_regnum_p (struct gdbarch *gdbarch, int regnum)
 
int i386_xmm_regnum_p (struct gdbarch *gdbarch, int regnum)
 
int i386_xmm_avx512_regnum_p (struct gdbarch *gdbarch, int regnum)
 
static int i386_mxcsr_regnum_p (struct gdbarch *gdbarch, int regnum)
 
int i386_fp_regnum_p (struct gdbarch *gdbarch, int regnum)
 
int i386_fpc_regnum_p (struct gdbarch *gdbarch, int regnum)
 
static int i386_bndr_regnum_p (struct gdbarch *gdbarch, int regnum)
 
static int i386_mpx_ctrl_regnum_p (struct gdbarch *gdbarch, int regnum)
 
bool i386_pkru_regnum_p (struct gdbarch *gdbarch, int regnum)
 
static const char * i386_register_name (struct gdbarch *gdbarch, int regnum)
 
const char * i386_pseudo_register_name (struct gdbarch *gdbarch, int regnum)
 
static int i386_dbx_reg_to_regnum (struct gdbarch *gdbarch, int reg)
 
static int i386_svr4_dwarf_reg_to_regnum (struct gdbarch *gdbarch, int reg)
 
int i386_svr4_reg_to_regnum (struct gdbarch *gdbarch, int reg)
 
typedef BP_MANIPULATION (i386_break_insn)
 
static int i386_absolute_jmp_p (const gdb_byte *insn)
 
static int i386_jmp_p (const gdb_byte *insn)
 
static int i386_absolute_call_p (const gdb_byte *insn)
 
static int i386_ret_p (const gdb_byte *insn)
 
static int i386_call_p (const gdb_byte *insn)
 
static int i386_syscall_p (const gdb_byte *insn, int *lengthp)
 
static int i386_insn_is_call (struct gdbarch *gdbarch, CORE_ADDR addr)
 
static int i386_insn_is_ret (struct gdbarch *gdbarch, CORE_ADDR addr)
 
static int i386_insn_is_jump (struct gdbarch *gdbarch, CORE_ADDR addr)
 
displaced_step_copy_insn_closure_up i386_displaced_step_copy_insn (struct gdbarch *gdbarch, CORE_ADDR from, CORE_ADDR to, struct regcache *regs)
 
void i386_displaced_step_fixup (struct gdbarch *gdbarch, struct displaced_step_copy_insn_closure *closure_, CORE_ADDR from, CORE_ADDR to, struct regcache *regs, bool completed_p)
 
static void append_insns (CORE_ADDR *to, ULONGEST len, const gdb_byte *buf)
 
static void i386_relocate_instruction (struct gdbarch *gdbarch, CORE_ADDR *to, CORE_ADDR oldloc)
 
static struct i386_frame_cachei386_alloc_frame_cache (void)
 
static CORE_ADDR i386_follow_jump (struct gdbarch *gdbarch, CORE_ADDR pc)
 
static CORE_ADDR i386_analyze_struct_return (CORE_ADDR pc, CORE_ADDR current_pc, struct i386_frame_cache *cache)
 
static CORE_ADDR i386_skip_probe (CORE_ADDR pc)
 
static CORE_ADDR i386_analyze_stack_align (CORE_ADDR pc, CORE_ADDR current_pc, struct i386_frame_cache *cache)
 
static int i386_match_pattern (CORE_ADDR pc, struct i386_insn pattern)
 
static struct i386_insni386_match_insn (CORE_ADDR pc, struct i386_insn *insn_patterns)
 
static int i386_match_insn_block (CORE_ADDR pc, struct i386_insn *insn_patterns)
 
static CORE_ADDR i386_skip_endbr (CORE_ADDR pc)
 
static CORE_ADDR i386_skip_noop (CORE_ADDR pc)
 
static CORE_ADDR i386_analyze_frame_setup (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR limit, struct i386_frame_cache *cache)
 
static CORE_ADDR i386_analyze_register_saves (CORE_ADDR pc, CORE_ADDR current_pc, struct i386_frame_cache *cache)
 
static CORE_ADDR i386_analyze_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR current_pc, struct i386_frame_cache *cache)
 
static CORE_ADDR i386_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR start_pc)
 
CORE_ADDR i386_skip_main_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
 
static CORE_ADDR i386_unwind_pc (struct gdbarch *gdbarch, frame_info_ptr next_frame)
 
static void i386_frame_cache_1 (frame_info_ptr this_frame, struct i386_frame_cache *cache)
 
static struct i386_frame_cache * i386_frame_cache (frame_info_ptr this_frame, void **this_cache)
 
static void i386_frame_this_id (frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id)
 
static enum unwind_stop_reason i386_frame_unwind_stop_reason (frame_info_ptr this_frame, void **this_cache)
 
static struct valuei386_frame_prev_register (frame_info_ptr this_frame, void **this_cache, int regnum)
 
static int i386_stack_frame_destroyed_p (struct gdbarch *gdbarch, CORE_ADDR pc)
 
static int i386_epilogue_frame_sniffer_1 (const struct frame_unwind *self, frame_info_ptr this_frame, void **this_prologue_cache, bool override_p)
 
static int i386_epilogue_override_frame_sniffer (const struct frame_unwind *self, frame_info_ptr this_frame, void **this_prologue_cache)
 
static int i386_epilogue_frame_sniffer (const struct frame_unwind *self, frame_info_ptr this_frame, void **this_prologue_cache)
 
static struct i386_frame_cachei386_epilogue_frame_cache (frame_info_ptr this_frame, void **this_cache)
 
static enum unwind_stop_reason i386_epilogue_frame_unwind_stop_reason (frame_info_ptr this_frame, void **this_cache)
 
static void i386_epilogue_frame_this_id (frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id)
 
static struct valuei386_epilogue_frame_prev_register (frame_info_ptr this_frame, void **this_cache, int regnum)
 
static int i386_in_stack_tramp_p (CORE_ADDR pc)
 
static int i386_stack_tramp_frame_sniffer (const struct frame_unwind *self, frame_info_ptr this_frame, void **this_cache)
 
static void i386_gen_return_address (struct gdbarch *gdbarch, struct agent_expr *ax, struct axs_value *value, CORE_ADDR scope)
 
static struct i386_frame_cachei386_sigtramp_frame_cache (frame_info_ptr this_frame, void **this_cache)
 
static enum unwind_stop_reason i386_sigtramp_frame_unwind_stop_reason (frame_info_ptr this_frame, void **this_cache)
 
static void i386_sigtramp_frame_this_id (frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id)
 
static struct valuei386_sigtramp_frame_prev_register (frame_info_ptr this_frame, void **this_cache, int regnum)
 
static int i386_sigtramp_frame_sniffer (const struct frame_unwind *self, frame_info_ptr this_frame, void **this_prologue_cache)
 
static CORE_ADDR i386_frame_base_address (frame_info_ptr this_frame, void **this_cache)
 
static struct frame_id i386_dummy_id (struct gdbarch *gdbarch, frame_info_ptr this_frame)
 
static CORE_ADDR i386_frame_align (struct gdbarch *gdbarch, CORE_ADDR sp)
 
static int i386_get_longjmp_target (frame_info_ptr frame, CORE_ADDR *pc)
 
static int i386_16_byte_align_p (struct type *type)
 
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)
 
CORE_ADDR i386_thiscall_push_dummy_call (struct gdbarch *gdbarch, struct value *function, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, CORE_ADDR sp, function_call_return_method return_method, CORE_ADDR struct_addr, bool thiscall)
 
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, function_call_return_method return_method, CORE_ADDR struct_addr)
 
static void i386_extract_return_value (struct gdbarch *gdbarch, struct type *type, struct regcache *regcache, gdb_byte *valbuf)
 
static void i386_store_return_value (struct gdbarch *gdbarch, struct type *type, struct regcache *regcache, const gdb_byte *valbuf)
 
static int i386_reg_struct_return_p (struct gdbarch *gdbarch, struct type *type)
 
static enum return_value_convention i386_return_value (struct gdbarch *gdbarch, struct value *function, struct type *type, struct regcache *regcache, struct value **read_value, const gdb_byte *writebuf)
 
struct typei387_ext_type (struct gdbarch *gdbarch)
 
static struct typei386_bnd_type (struct gdbarch *gdbarch)
 
static struct typei386_zmm_type (struct gdbarch *gdbarch)
 
static struct typei386_ymm_type (struct gdbarch *gdbarch)
 
static struct typei386_mmx_type (struct gdbarch *gdbarch)
 
struct typei386_pseudo_register_type (struct gdbarch *gdbarch, int regnum)
 
static int i386_mmx_regnum_to_fp_regnum (readable_regcache *regcache, int regnum)
 
void i386_pseudo_register_read_into_value (struct gdbarch *gdbarch, readable_regcache *regcache, int regnum, struct value *result_value)
 
static struct valuei386_pseudo_register_read_value (struct gdbarch *gdbarch, readable_regcache *regcache, int regnum)
 
void i386_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache, int regnum, const gdb_byte *buf)
 
int i386_ax_pseudo_register_collect (struct gdbarch *gdbarch, struct agent_expr *ax, int regnum)
 
static int i386_next_regnum (int regnum)
 
static int i386_convert_register_p (struct gdbarch *gdbarch, int regnum, struct type *type)
 
static int i386_register_to_value (frame_info_ptr frame, int regnum, struct type *type, gdb_byte *to, int *optimizedp, int *unavailablep)
 
static void i386_value_to_register (frame_info_ptr frame, int regnum, struct type *type, const gdb_byte *from)
 
void i386_supply_gregset (const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t len)
 
static void i386_collect_gregset (const struct regset *regset, const struct regcache *regcache, int regnum, void *gregs, size_t len)
 
static void i386_supply_fpregset (const struct regset *regset, struct regcache *regcache, int regnum, const void *fpregs, size_t len)
 
static void i386_collect_fpregset (const struct regset *regset, const struct regcache *regcache, int regnum, void *fpregs, size_t len)
 
void i386_iterate_over_regset_sections (struct gdbarch *gdbarch, iterate_over_regset_sections_cb *cb, void *cb_data, const struct regcache *regcache)
 
CORE_ADDR i386_pe_skip_trampoline_code (frame_info_ptr frame, CORE_ADDR pc, char *name)
 
int i386_sigtramp_p (frame_info_ptr this_frame)
 
static int i386_print_insn (bfd_vma pc, struct disassemble_info *info)
 
static int i386_svr4_sigtramp_p (frame_info_ptr this_frame)
 
static CORE_ADDR i386_svr4_sigcontext_addr (frame_info_ptr this_frame)
 
int i386_stap_is_single_operand (struct gdbarch *gdbarch, const char *s)
 
static expr::operation_up i386_stap_parse_special_token_triplet (struct gdbarch *gdbarch, struct stap_parse_info *p)
 
static expr::operation_up i386_stap_parse_special_token_three_arg_disp (struct gdbarch *gdbarch, struct stap_parse_info *p)
 
expr::operation_up i386_stap_parse_special_token (struct gdbarch *gdbarch, struct stap_parse_info *p)
 
static std::string i386_stap_adjust_register (struct gdbarch *gdbarch, struct stap_parse_info *p, const std::string &regname, int regnum)
 
static const char * i386_gnu_triplet_regexp (struct gdbarch *gdbarch)
 
static bool i386_in_indirect_branch_thunk (struct gdbarch *gdbarch, CORE_ADDR pc)
 
void i386_elf_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 
void i386_svr4_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 
static void i386_init_reggroups (void)
 
static void i386_add_reggroups (struct gdbarch *gdbarch)
 
int i386_register_reggroup_p (struct gdbarch *gdbarch, int regnum, const struct reggroup *group)
 
static CORE_ADDR i386_fetch_pointer_argument (frame_info_ptr frame, int argi, struct type *type)
 
static int i386_record_modrm (struct i386_record_s *irp)
 
static int i386_record_lea_modrm_addr (struct i386_record_s *irp, uint64_t *addr)
 
static int i386_record_lea_modrm (struct i386_record_s *irp)
 
static int i386_record_push (struct i386_record_s *irp, int size)
 
static int i386_record_floats (struct gdbarch *gdbarch, struct i386_record_s *ir, uint32_t iregnum)
 
int i386_process_record (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR input_addr)
 
static int i386_fast_tracepoint_valid_at (struct gdbarch *gdbarch, CORE_ADDR addr, std::string *msg)
 
static const struct floatformat ** i386_floatformat_for_type (struct gdbarch *gdbarch, const char *name, int len)
 
static uint64_t i386_xcr0_from_tdesc (const struct target_desc *tdesc)
 
static int i386_validate_tdesc_p (i386_gdbarch_tdep *tdep, struct tdesc_arch_data *tdesc_data)
 
static ULONGEST i386_type_align (struct gdbarch *gdbarch, struct type *type)
 
static struct gdbarchi386_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
 
const struct target_desci386_target_description (uint64_t xcr0, bool segments)
 
static unsigned long i386_mpx_bd_base (void)
 
int i386_mpx_enabled (void)
 
static CORE_ADDR i386_mpx_get_bt_entry (CORE_ADDR ptr, CORE_ADDR bd_base)
 
static void i386_mpx_print_bounds (const CORE_ADDR bt_entry[4])
 
static void i386_mpx_info_bounds (const char *args, int from_tty)
 
static void i386_mpx_set_bounds (const char *args, int from_tty)
 
void _initialize_i386_tdep ()
 

Variables

static const char *const i386_register_names []
 
static const char *const i386_zmm_names []
 
static const char *const i386_zmmh_names []
 
static const char *const i386_k_names []
 
static const char *const i386_ymm_names []
 
static const char *const i386_ymmh_names []
 
static const char *const i386_mpx_names []
 
static const char *const i386_pkeys_names []
 
static const char *const i386_bnd_names []
 
static const char *const i386_mmx_names []
 
static const char *const i386_byte_names []
 
static const char *const i386_word_names []
 
const int num_lower_zmm_regs = 16
 
static const char att_flavor [] = "att"
 
static const char intel_flavor [] = "intel"
 
static const char *const valid_flavors []
 
static const char * disassembly_flavor = att_flavor
 
constexpr gdb_byte i386_break_insn [] = { 0xcc }
 
static i386_insn i386_frame_setup_skip_insns []
 
static const struct frame_unwind i386_frame_unwind
 
static const struct frame_unwind i386_epilogue_override_frame_unwind
 
static const struct frame_unwind i386_epilogue_frame_unwind
 
static i386_insn i386_tramp_chain_in_reg_insns []
 
static i386_insn i386_tramp_chain_on_stack_insns []
 
static const struct frame_unwind i386_stack_tramp_frame_unwind
 
static const struct frame_unwind i386_sigtramp_frame_unwind
 
static const struct frame_base i386_frame_base
 
static const char default_struct_convention [] = "default"
 
static const char pcc_struct_convention [] = "pcc"
 
static const char reg_struct_convention [] = "reg"
 
static const char *const valid_conventions []
 
static const char * struct_convention = default_struct_convention
 
const struct regset i386_gregset
 
const struct regset i386_fpregset
 
static const reggroupi386_sse_reggroup
 
static const reggroupi386_mmx_reggroup
 
static const int i386_record_regmap []
 
static struct cmd_list_elementmpx_set_cmdlist
 
static struct cmd_list_elementmpx_show_cmdlist
 

Macro Definition Documentation

◆ HIGH_RETURN_REGNUM

#define HIGH_RETURN_REGNUM   I386_EDX_REGNUM /* %edx */

Definition at line 2899 of file i386-tdep.c.

Referenced by i386_extract_return_value(), and i386_store_return_value().

◆ I386_MAX_MATCHED_INSN_LEN

#define I386_MAX_MATCHED_INSN_LEN   6

Definition at line 1371 of file i386-tdep.c.

Referenced by i386_match_pattern().

◆ I386_NUM_SAVED_REGS

#define I386_NUM_SAVED_REGS   I386_NUM_GREGS

◆ I386_RECORD_FULL_ARCH_LIST_ADD_REG

#define I386_RECORD_FULL_ARCH_LIST_ADD_REG ( regnum)     record_full_arch_list_add_reg (ir.regcache, ir.regmap[(regnum)])

Definition at line 5108 of file i386-tdep.c.

Referenced by i386_process_record().

◆ I386_SAVE_FPU_ENV

#define I386_SAVE_FPU_ENV   0xfffe

Definition at line 5041 of file i386-tdep.c.

Referenced by i386_process_record(), and i386_record_floats().

◆ I386_SAVE_FPU_ENV_REG_STACK

#define I386_SAVE_FPU_ENV_REG_STACK   0xffff

Definition at line 5042 of file i386-tdep.c.

Referenced by i386_process_record(), and i386_record_floats().

◆ I386_SAVE_FPU_REGS

#define I386_SAVE_FPU_REGS   0xfffd

Definition at line 5040 of file i386-tdep.c.

Referenced by i386_process_record(), and i386_record_floats().

◆ LOW_RETURN_REGNUM

#define LOW_RETURN_REGNUM   I386_EAX_REGNUM /* %eax */

Definition at line 2898 of file i386-tdep.c.

Referenced by i386_extract_return_value(), and i386_store_return_value().

◆ MPX_BASE_MASK

#define MPX_BASE_MASK   (~(ULONGEST) 0xfff)

Definition at line 8976 of file i386-tdep.c.

Referenced by i386_mpx_bd_base().

◆ MPX_BD_MASK

#define MPX_BD_MASK   0xfffffff00000ULL /* select bits [47:20] */

Definition at line 9009 of file i386-tdep.c.

Referenced by i386_mpx_get_bt_entry().

◆ MPX_BD_MASK_32

#define MPX_BD_MASK_32   0xfffff000 /* select bits [31:12] */

Definition at line 9011 of file i386-tdep.c.

Referenced by i386_mpx_get_bt_entry().

◆ MPX_BT_MASK

#define MPX_BT_MASK   0x0000000ffff8 /* select bits [19:3] */

Definition at line 9010 of file i386-tdep.c.

Referenced by i386_mpx_get_bt_entry().

◆ MPX_BT_MASK_32

#define MPX_BT_MASK_32   0x00000ffc /* select bits [11:2] */

Definition at line 9012 of file i386-tdep.c.

Referenced by i386_mpx_get_bt_entry().

◆ PREFIX_ADDR

#define PREFIX_ADDR   0x10

Definition at line 4724 of file i386-tdep.c.

Referenced by i386_process_record().

◆ PREFIX_DATA

#define PREFIX_DATA   0x08

Definition at line 4723 of file i386-tdep.c.

Referenced by i386_process_record().

◆ PREFIX_LOCK

#define PREFIX_LOCK   0x04

Definition at line 4722 of file i386-tdep.c.

Referenced by i386_process_record().

◆ PREFIX_REPNZ

#define PREFIX_REPNZ   0x02

Definition at line 4721 of file i386-tdep.c.

Referenced by i386_process_record().

◆ PREFIX_REPZ

#define PREFIX_REPZ   0x01

Definition at line 4720 of file i386-tdep.c.

Referenced by i386_process_record().

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
OT_BYTE 
OT_WORD 
OT_LONG 
OT_QUAD 
OT_DQUAD 

Definition at line 4727 of file i386-tdep.c.

◆ anonymous enum

anonymous enum
Enumerator
OP_ADDL 
OP_ORL 
OP_ADCL 
OP_SBBL 
OP_ANDL 
OP_SUBL 
OP_XORL 
OP_CMPL 

Definition at line 4737 of file i386-tdep.c.

Function Documentation

◆ _initialize_i386_tdep()

void _initialize_i386_tdep ( )

Definition at line 9218 of file i386-tdep.c.

Referenced by initialize_all_files().

◆ append_insns()

static void append_insns ( CORE_ADDR * to,
ULONGEST len,
const gdb_byte * buf )
static

Definition at line 962 of file i386-tdep.c.

References target_write_memory().

Referenced by i386_relocate_instruction().

◆ BP_MANIPULATION()

typedef BP_MANIPULATION ( i386_break_insn )

Definition at line 615 of file i386-tdep.c.

◆ i386_16_byte_align_p()

static int i386_16_byte_align_p ( struct type * type)
static

◆ i386_absolute_call_p()

static int i386_absolute_call_p ( const gdb_byte * insn)
static

Definition at line 694 of file i386-tdep.c.

Referenced by i386_call_p(), and i386_displaced_step_fixup().

◆ i386_absolute_jmp_p()

static int i386_absolute_jmp_p ( const gdb_byte * insn)
static

Definition at line 657 of file i386-tdep.c.

Referenced by i386_displaced_step_fixup(), and i386_jmp_p().

◆ i386_add_reggroups()

static void i386_add_reggroups ( struct gdbarch * gdbarch)
static

Definition at line 4597 of file i386-tdep.c.

References i386_mmx_reggroup, i386_sse_reggroup, and reggroup_add().

Referenced by i386_gdbarch_init().

◆ i386_alloc_frame_cache()

static struct i386_frame_cache * i386_alloc_frame_cache ( void )
static

◆ i386_analyze_frame_setup()

static CORE_ADDR i386_analyze_frame_setup ( struct gdbarch * gdbarch,
CORE_ADDR pc,
CORE_ADDR limit,
struct i386_frame_cache * cache )
static

◆ 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

◆ i386_analyze_register_saves()

static CORE_ADDR i386_analyze_register_saves ( CORE_ADDR pc,
CORE_ADDR current_pc,
struct i386_frame_cache * cache )
static

◆ i386_analyze_stack_align()

static CORE_ADDR i386_analyze_stack_align ( CORE_ADDR pc,
CORE_ADDR current_pc,
struct i386_frame_cache * cache )
static

◆ i386_analyze_struct_return()

static CORE_ADDR i386_analyze_struct_return ( CORE_ADDR pc,
CORE_ADDR current_pc,
struct i386_frame_cache * cache )
static

◆ i386_ax_pseudo_register_collect()

int i386_ax_pseudo_register_collect ( struct gdbarch * gdbarch,
struct agent_expr * ax,
int regnum )

◆ i386_bnd_regnum_p()

int i386_bnd_regnum_p ( struct gdbarch * gdbarch,
int regnum )

◆ i386_bnd_type()

static struct type * i386_bnd_type ( struct gdbarch * gdbarch)
static

◆ i386_bndr_regnum_p()

static int i386_bndr_regnum_p ( struct gdbarch * gdbarch,
int regnum )
static

◆ i386_byte_regnum_p()

int i386_byte_regnum_p ( struct gdbarch * gdbarch,
int regnum )

◆ i386_call_p()

static int i386_call_p ( const gdb_byte * insn)
static

Definition at line 732 of file i386-tdep.c.

References i386_absolute_call_p().

Referenced by i386_displaced_step_fixup(), and i386_insn_is_call().

◆ i386_collect_fpregset()

static void i386_collect_fpregset ( const struct regset * regset,
const struct regcache * regcache,
int regnum,
void * fpregs,
size_t len )
static

◆ i386_collect_gregset()

static void i386_collect_gregset ( const struct regset * regset,
const struct regcache * regcache,
int regnum,
void * gregs,
size_t len )
static

◆ i386_convert_register_p()

static int i386_convert_register_p ( struct gdbarch * gdbarch,
int regnum,
struct type * type )
static

Definition at line 3850 of file i386-tdep.c.

References i386_next_regnum(), i387_convert_register_p(), type::length(), and regnum.

Referenced by i386_gdbarch_init().

◆ i386_dbx_reg_to_regnum()

static int i386_dbx_reg_to_regnum ( struct gdbarch * gdbarch,
int reg )
static

◆ i386_displaced_step_copy_insn()

displaced_step_copy_insn_closure_up i386_displaced_step_copy_insn ( struct gdbarch * gdbarch,
CORE_ADDR from,
CORE_ADDR to,
struct regcache * regs )

◆ i386_displaced_step_fixup()

void i386_displaced_step_fixup ( struct gdbarch * gdbarch,
struct displaced_step_copy_insn_closure * closure_,
CORE_ADDR from,
CORE_ADDR to,
struct regcache * regs,
bool completed_p )

◆ i386_dummy_id()

static struct frame_id i386_dummy_id ( struct gdbarch * gdbarch,
frame_info_ptr this_frame )
static

◆ i386_dword_regnum_p()

int i386_dword_regnum_p ( struct gdbarch * gdbarch,
int regnum )

◆ i386_elf_init_abi()

void i386_elf_init_abi ( struct gdbarch_info info,
struct gdbarch * gdbarch )

◆ i386_epilogue_frame_cache()

static struct i386_frame_cache * i386_epilogue_frame_cache ( frame_info_ptr this_frame,
void ** this_cache )
static

◆ i386_epilogue_frame_prev_register()

static struct value * i386_epilogue_frame_prev_register ( frame_info_ptr this_frame,
void ** this_cache,
int regnum )
static

Definition at line 2345 of file i386-tdep.c.

References i386_epilogue_frame_cache(), i386_frame_prev_register(), and regnum.

◆ i386_epilogue_frame_sniffer()

static int i386_epilogue_frame_sniffer ( const struct frame_unwind * self,
frame_info_ptr this_frame,
void ** this_prologue_cache )
static

Definition at line 2274 of file i386-tdep.c.

References i386_epilogue_frame_sniffer_1().

◆ i386_epilogue_frame_sniffer_1()

static int i386_epilogue_frame_sniffer_1 ( const struct frame_unwind * self,
frame_info_ptr this_frame,
void ** this_prologue_cache,
bool override_p )
static

◆ i386_epilogue_frame_this_id()

static void i386_epilogue_frame_this_id ( frame_info_ptr this_frame,
void ** this_cache,
struct frame_id * this_id )
static

◆ i386_epilogue_frame_unwind_stop_reason()

static enum unwind_stop_reason i386_epilogue_frame_unwind_stop_reason ( frame_info_ptr this_frame,
void ** this_cache )
static

Definition at line 2318 of file i386-tdep.c.

References i386_frame_cache::base_p, and i386_epilogue_frame_cache().

◆ i386_epilogue_override_frame_sniffer()

static int i386_epilogue_override_frame_sniffer ( const struct frame_unwind * self,
frame_info_ptr this_frame,
void ** this_prologue_cache )
static

Definition at line 2265 of file i386-tdep.c.

References i386_epilogue_frame_sniffer_1().

◆ i386_extract_return_value()

static void i386_extract_return_value ( struct gdbarch * gdbarch,
struct type * type,
struct regcache * regcache,
gdb_byte * valbuf )
static

◆ i386_fast_tracepoint_valid_at()

static int i386_fast_tracepoint_valid_at ( struct gdbarch * gdbarch,
CORE_ADDR addr,
std::string * msg )
static

◆ i386_fetch_pointer_argument()

static CORE_ADDR i386_fetch_pointer_argument ( frame_info_ptr frame,
int argi,
struct type * type )
static

◆ i386_floatformat_for_type()

static const struct floatformat ** i386_floatformat_for_type ( struct gdbarch * gdbarch,
const char * name,
int len )
static

Definition at line 8277 of file i386-tdep.c.

References default_floatformat_for_type(), floatformats_ieee_quad, and name.

Referenced by i386_gdbarch_init().

◆ i386_follow_jump()

static CORE_ADDR i386_follow_jump ( struct gdbarch * gdbarch,
CORE_ADDR pc )
static

◆ i386_fp_regnum_p()

int i386_fp_regnum_p ( struct gdbarch * gdbarch,
int regnum )

◆ i386_fpc_regnum_p()

int i386_fpc_regnum_p ( struct gdbarch * gdbarch,
int regnum )

◆ i386_frame_align()

static CORE_ADDR i386_frame_align ( struct gdbarch * gdbarch,
CORE_ADDR sp )
static

Definition at line 2639 of file i386-tdep.c.

Referenced by i386_gdbarch_init().

◆ i386_frame_base_address()

static CORE_ADDR i386_frame_base_address ( frame_info_ptr this_frame,
void ** this_cache )
static

Definition at line 2609 of file i386-tdep.c.

References i386_frame_cache::base, and i386_frame_cache().

◆ i386_frame_cache()

static struct i386_frame_cache * i386_frame_cache ( frame_info_ptr this_frame,
void ** this_cache )
static

◆ i386_frame_cache_1()

static void i386_frame_cache_1 ( frame_info_ptr this_frame,
struct i386_frame_cache * cache )
static

◆ i386_frame_prev_register()

static struct value * i386_frame_prev_register ( frame_info_ptr this_frame,
void ** this_cache,
int regnum )
static

◆ i386_frame_this_id()

static void i386_frame_this_id ( frame_info_ptr this_frame,
void ** this_cache,
struct frame_id * this_id )
static

◆ i386_frame_unwind_stop_reason()

static enum unwind_stop_reason i386_frame_unwind_stop_reason ( frame_info_ptr this_frame,
void ** this_cache )
static

◆ i386_gdbarch_init()

static struct gdbarch * i386_gdbarch_init ( struct gdbarch_info info,
struct gdbarch_list * arches )
static

Definition at line 8565 of file i386-tdep.c.

References i386_gdbarch_tdep::al_regnum, arches, i386_gdbarch_tdep::ax_regnum, i386_gdbarch_tdep::bnd0_regnum, i386_gdbarch_tdep::bnd0r_regnum, i386_gdbarch_tdep::bndcfgu_regnum, core_addr_lessthan(), dwarf2_append_unwinders(), i386_gdbarch_tdep::eax_regnum, floatformats_bfloat16, floatformats_i387_ext, i386_gdbarch_tdep::fpregset, frame_base_set_default(), frame_unwind_append_unwinder(), i386_gdbarch_tdep::fsbase_regnum, gdbarch_alloc(), gdbarch_free(), gdbarch_init_osabi(), gdbarch_iterate_over_regset_sections_p(), gdbarch_list_lookup_by_info(), gdbarch_num_regs(), registry< T >::get(), i386_gdbarch_tdep::gregset_num_regs, i386_gdbarch_tdep::gregset_reg_offset, i386_add_reggroups(), i386_ax_pseudo_register_collect(), i386_convert_register_p(), i386_dbx_reg_to_regnum(), i386_dummy_id(), I386_EFLAGS_REGNUM, I386_EIP_REGNUM, i386_epilogue_frame_unwind, i386_epilogue_override_frame_unwind, I386_ESP_REGNUM, i386_fast_tracepoint_valid_at(), i386_fetch_pointer_argument(), i386_floatformat_for_type(), i386_fpregset, i386_frame_align(), i386_frame_base, i386_frame_unwind, i386_gen_return_address(), i386_get_longjmp_target(), i386_gnu_triplet_regexp(), i386_insn_is_call(), i386_insn_is_jump(), i386_insn_is_ret(), i386_iterate_over_regset_sections(), I386_MAX_INSN_LEN, I386_NUM_GREGS, I386_NUM_REGS, 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_relocate_instruction(), i386_return_value(), i386_sigtramp_frame_unwind, i386_sigtramp_p(), i386_skip_prologue(), I386_ST0_REGNUM, i386_stack_tramp_frame_unwind, i386_svr4_dwarf_reg_to_regnum(), i386_target_description(), i386_type_align(), i386_unwind_pc(), i386_validate_tdesc_p(), i386_value_to_register(), i386_xcr0_from_tdesc(), i387_fallback_xsave_layout(), I387_NUM_BND_REGS, I387_NUM_REGS, i387_print_float_info(), I387_SIZEOF_FSAVE, i386_gdbarch_tdep::jb_pc_offset, i386_gdbarch_tdep::k0_regnum, i386_gdbarch_tdep::mm0_regnum, i386_gdbarch_tdep::num_byte_regs, i386_gdbarch_tdep::num_core_regs, i386_gdbarch_tdep::num_dword_regs, i386_gdbarch_tdep::num_mmx_regs, i386_gdbarch_tdep::num_pkeys_regs, i386_gdbarch_tdep::num_word_regs, i386_gdbarch_tdep::num_xmm_avx512_regs, i386_gdbarch_tdep::num_xmm_regs, i386_gdbarch_tdep::num_ymm_avx512_regs, i386_gdbarch_tdep::num_ymm_regs, i386_gdbarch_tdep::num_zmm_regs, ON_STACK, pcc_struct_return, i386_gdbarch_tdep::pkru_regnum, i386_gdbarch_tdep::record_regmap, i386_gdbarch_tdep::register_names, i386_gdbarch_tdep::register_reggroup_p, i386_gdbarch_tdep::sc_pc_offset, i386_gdbarch_tdep::sc_reg_offset, i386_gdbarch_tdep::sc_sp_offset, set_gdbarch_ax_pseudo_register_collect(), set_gdbarch_bfloat16_format(), set_gdbarch_breakpoint_kind_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_floatformat_for_type(), 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_gnu_triplet_regexp(), set_gdbarch_inner_than(), set_gdbarch_insn_is_call(), set_gdbarch_insn_is_jump(), set_gdbarch_insn_is_ret(), set_gdbarch_iterate_over_regset_sections(), set_gdbarch_long_double_bit(), set_gdbarch_long_double_format(), 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_relocate_instruction(), set_gdbarch_return_value_as_value(), set_gdbarch_sdb_reg_to_regnum(), set_gdbarch_skip_prologue(), set_gdbarch_sp_regnum(), set_gdbarch_stab_reg_to_regnum(), set_gdbarch_sw_breakpoint_from_kind(), set_gdbarch_type_align(), set_gdbarch_unwind_pc(), set_gdbarch_value_to_register(), set_tdesc_pseudo_register_name(), set_tdesc_pseudo_register_type(), i386_gdbarch_tdep::sigcontext_addr, i386_gdbarch_tdep::sigtramp_end, i386_gdbarch_tdep::sigtramp_p, i386_gdbarch_tdep::sigtramp_start, i386_gdbarch_tdep::sizeof_fpregset, i386_gdbarch_tdep::sizeof_gregset, i386_gdbarch_tdep::st0_regnum, target_fetch_x86_xsave_layout(), i386_gdbarch_tdep::tdesc, tdesc_data, tdesc_data_alloc(), tdesc_has_registers(), tdesc_use_registers(), i386_gdbarch_tdep::xmm16_regnum, i386_gdbarch_tdep::xmm_avx512_register_names, i386_gdbarch_tdep::xsave_layout, i386_gdbarch_tdep::xsave_xcr0_offset, i386_gdbarch_tdep::ymm0_regnum, i386_gdbarch_tdep::ymm0h_regnum, i386_gdbarch_tdep::ymm16_regnum, i386_gdbarch_tdep::ymm16h_register_names, i386_gdbarch_tdep::ymm16h_regnum, i386_gdbarch_tdep::ymmh_register_names, i386_gdbarch_tdep::zmm0_regnum, i386_gdbarch_tdep::zmm0h_regnum, and i386_gdbarch_tdep::zmmh_register_names.

◆ i386_gen_return_address()

static void i386_gen_return_address ( struct gdbarch * gdbarch,
struct agent_expr * ax,
struct axs_value * value,
CORE_ADDR scope )
static

◆ i386_get_longjmp_target()

static int i386_get_longjmp_target ( frame_info_ptr frame,
CORE_ADDR * pc )
static

◆ i386_gnu_triplet_regexp()

static const char * i386_gnu_triplet_regexp ( struct gdbarch * gdbarch)
static

Definition at line 4511 of file i386-tdep.c.

Referenced by i386_gdbarch_init().

◆ i386_in_indirect_branch_thunk()

static bool i386_in_indirect_branch_thunk ( struct gdbarch * gdbarch,
CORE_ADDR pc )
static

◆ i386_in_stack_tramp_p()

static int i386_in_stack_tramp_p ( CORE_ADDR pc)
static

◆ i386_init_reggroups()

static void i386_init_reggroups ( void )
static

Definition at line 4590 of file i386-tdep.c.

References i386_mmx_reggroup, i386_sse_reggroup, reggroup_new(), and USER_REGGROUP.

◆ i386_insn_is_call()

static int i386_insn_is_call ( struct gdbarch * gdbarch,
CORE_ADDR addr )
static

Definition at line 767 of file i386-tdep.c.

References i386_call_p(), I386_MAX_INSN_LEN, and read_code().

Referenced by i386_gdbarch_init().

◆ i386_insn_is_jump()

static int i386_insn_is_jump ( struct gdbarch * gdbarch,
CORE_ADDR addr )
static

Definition at line 793 of file i386-tdep.c.

References i386_jmp_p(), I386_MAX_INSN_LEN, and read_code().

Referenced by i386_gdbarch_init().

◆ i386_insn_is_ret()

static int i386_insn_is_ret ( struct gdbarch * gdbarch,
CORE_ADDR addr )
static

Definition at line 780 of file i386-tdep.c.

References I386_MAX_INSN_LEN, i386_ret_p(), and read_code().

Referenced by i386_gdbarch_init().

◆ i386_iterate_over_regset_sections()

void i386_iterate_over_regset_sections ( struct gdbarch * gdbarch,
iterate_over_regset_sections_cb * cb,
void * cb_data,
const struct regcache * regcache )

◆ i386_jmp_p()

static int i386_jmp_p ( const gdb_byte * insn)
static

Definition at line 680 of file i386-tdep.c.

References i386_absolute_jmp_p().

Referenced by i386_insn_is_jump().

◆ i386_k_regnum_p()

int i386_k_regnum_p ( struct gdbarch * gdbarch,
int regnum )

◆ i386_match_insn()

static struct i386_insn * i386_match_insn ( CORE_ADDR pc,
struct i386_insn * insn_patterns )
static

Definition at line 1418 of file i386-tdep.c.

References i386_match_pattern(), and i386_insn::len.

Referenced by i386_analyze_frame_setup(), and i386_match_insn_block().

◆ i386_match_insn_block()

static int i386_match_insn_block ( CORE_ADDR pc,
struct i386_insn * insn_patterns )
static

Definition at line 1435 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().

◆ i386_match_pattern()

static int i386_match_pattern ( CORE_ADDR pc,
struct i386_insn pattern )
static

◆ i386_mmx_regnum_p()

static int i386_mmx_regnum_p ( struct gdbarch * gdbarch,
int regnum )
static

◆ i386_mmx_regnum_to_fp_regnum()

static int i386_mmx_regnum_to_fp_regnum ( readable_regcache * regcache,
int regnum )
static

◆ i386_mmx_type()

static struct type * i386_mmx_type ( struct gdbarch * gdbarch)
static

◆ i386_mpx_bd_base()

static unsigned long i386_mpx_bd_base ( void )
static

◆ i386_mpx_ctrl_regnum_p()

static int i386_mpx_ctrl_regnum_p ( struct gdbarch * gdbarch,
int regnum )
static

Definition at line 413 of file i386-tdep.c.

References I387_BNDCFGU_REGNUM, I387_NUM_MPX_CTRL_REGS, and regnum.

Referenced by i386_register_reggroup_p().

◆ i386_mpx_enabled()

int i386_mpx_enabled ( void )

◆ i386_mpx_get_bt_entry()

static CORE_ADDR i386_mpx_get_bt_entry ( CORE_ADDR ptr,
CORE_ADDR bd_base )
static

◆ i386_mpx_info_bounds()

static void i386_mpx_info_bounds ( const char * args,
int from_tty )
static

◆ i386_mpx_print_bounds()

static void i386_mpx_print_bounds ( const CORE_ADDR bt_entry[4])
static

◆ i386_mpx_set_bounds()

static void i386_mpx_set_bounds ( const char * args,
int from_tty )
static

◆ i386_mxcsr_regnum_p()

static int i386_mxcsr_regnum_p ( struct gdbarch * gdbarch,
int regnum )
static

Definition at line 360 of file i386-tdep.c.

References I387_MXCSR_REGNUM, I387_NUM_XMM_REGS, and regnum.

Referenced by i386_process_record(), and i386_register_reggroup_p().

◆ i386_next_regnum()

static int i386_next_regnum ( int regnum)
static

◆ i386_pe_skip_trampoline_code()

CORE_ADDR i386_pe_skip_trampoline_code ( frame_info_ptr frame,
CORE_ADDR pc,
char * name )

◆ i386_pkru_regnum_p()

bool i386_pkru_regnum_p ( struct gdbarch * gdbarch,
int regnum )

Definition at line 427 of file i386-tdep.c.

References I387_NUM_PKEYS_REGS, i386_gdbarch_tdep::pkru_regnum, and regnum.

Referenced by i386_register_reggroup_p().

◆ i386_print_insn()

static int i386_print_insn ( bfd_vma pc,
struct disassemble_info * info )
static

Definition at line 4118 of file i386-tdep.c.

References att_flavor, default_print_insn(), disassembly_flavor, and intel_flavor.

Referenced by i386_gdbarch_init().

◆ i386_process_record()

int i386_process_record ( struct gdbarch * gdbarch,
struct regcache * regcache,
CORE_ADDR input_addr )

Definition at line 5112 of file i386-tdep.c.

References i386_record_s::addr, i386_record_s::aflag, i386_record_s::dflag, extract_unsigned_integer(), gdb_printf(), gdb_stderr, gdb_stdlog, i386_record_s::gdbarch, gdbarch_byte_order(), I386_EAX_REGNUM, i386_fp_regnum_p(), i386_fpc_regnum_p(), I386_MAX_REGISTER_SIZE, 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, i386_xmm_regnum_p(), I387_FCTRL_REGNUM, I387_FTAG_REGNUM, I387_MM0_REGNUM, I387_MXCSR_REGNUM, I387_ST0_REGNUM, I387_XMM0_REGNUM, 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, 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(), 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, 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().

◆ i386_pseudo_register_name()

const char * i386_pseudo_register_name ( struct gdbarch * gdbarch,
int regnum )

◆ i386_pseudo_register_read_into_value()

void i386_pseudo_register_read_into_value ( struct gdbarch * gdbarch,
readable_regcache * regcache,
int regnum,
struct value * result_value )

◆ i386_pseudo_register_read_value()

static struct value * i386_pseudo_register_read_value ( struct gdbarch * gdbarch,
readable_regcache * regcache,
int regnum )
static

◆ i386_pseudo_register_type()

struct type * i386_pseudo_register_type ( struct gdbarch * gdbarch,
int regnum )

◆ i386_pseudo_register_write()

void i386_pseudo_register_write ( struct gdbarch * gdbarch,
struct regcache * regcache,
int regnum,
const gdb_byte * buf )

◆ i386_push_dummy_call()

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,
function_call_return_method return_method,
CORE_ADDR struct_addr )
static

Definition at line 2884 of file i386-tdep.c.

References i386_thiscall_push_dummy_call().

Referenced by i386_gdbarch_init().

◆ i386_push_dummy_code()

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 2713 of file i386-tdep.c.

Referenced by i386_gdbarch_init().

◆ i386_record_floats()

static int i386_record_floats ( struct gdbarch * gdbarch,
struct i386_record_s * ir,
uint32_t iregnum )
static

◆ i386_record_lea_modrm()

static int i386_record_lea_modrm ( struct i386_record_s * irp)
static

◆ i386_record_lea_modrm_addr()

static int i386_record_lea_modrm_addr ( struct i386_record_s * irp,
uint64_t * addr )
static

◆ i386_record_modrm()

static int i386_record_modrm ( struct i386_record_s * irp)
static

◆ i386_record_push()

static int i386_record_push ( struct i386_record_s * irp,
int size )
static

◆ i386_reg_struct_return_p()

static int i386_reg_struct_return_p ( struct gdbarch * gdbarch,
struct type * type )
static

◆ i386_register_name()

static const char * i386_register_name ( struct gdbarch * gdbarch,
int regnum )
static

◆ i386_register_reggroup_p()

int i386_register_reggroup_p ( struct gdbarch * gdbarch,
int regnum,
const struct reggroup * group )

◆ i386_register_to_value()

static int i386_register_to_value ( frame_info_ptr frame,
int regnum,
struct type * type,
gdb_byte * to,
int * optimizedp,
int * unavailablep )
static

◆ i386_relocate_instruction()

static void i386_relocate_instruction ( struct gdbarch * gdbarch,
CORE_ADDR * to,
CORE_ADDR oldloc )
static

◆ i386_ret_p()

static int i386_ret_p ( const gdb_byte * insn)
static

Definition at line 715 of file i386-tdep.c.

Referenced by i386_displaced_step_fixup(), and i386_insn_is_ret().

◆ i386_return_value()

static enum return_value_convention i386_return_value ( struct gdbarch * gdbarch,
struct value * function,
struct type * type,
struct regcache * regcache,
struct value ** read_value,
const gdb_byte * writebuf )
static

◆ i386_sigtramp_frame_cache()

static struct i386_frame_cache * i386_sigtramp_frame_cache ( frame_info_ptr this_frame,
void ** this_cache )
static

◆ i386_sigtramp_frame_prev_register()

static struct value * i386_sigtramp_frame_prev_register ( frame_info_ptr this_frame,
void ** this_cache,
int regnum )
static

Definition at line 2556 of file i386-tdep.c.

References i386_frame_prev_register(), i386_sigtramp_frame_cache(), and regnum.

◆ i386_sigtramp_frame_sniffer()

static int i386_sigtramp_frame_sniffer ( const struct frame_unwind * self,
frame_info_ptr this_frame,
void ** this_prologue_cache )
static

◆ i386_sigtramp_frame_this_id()

static void i386_sigtramp_frame_this_id ( frame_info_ptr this_frame,
void ** this_cache,
struct frame_id * this_id )
static

◆ i386_sigtramp_frame_unwind_stop_reason()

static enum unwind_stop_reason i386_sigtramp_frame_unwind_stop_reason ( frame_info_ptr this_frame,
void ** this_cache )
static

Definition at line 2527 of file i386-tdep.c.

References i386_frame_cache::base_p, and i386_sigtramp_frame_cache().

◆ i386_sigtramp_p()

int i386_sigtramp_p ( frame_info_ptr this_frame)

◆ i386_skip_endbr()

static CORE_ADDR i386_skip_endbr ( CORE_ADDR pc)
static

Definition at line 1524 of file i386-tdep.c.

References target_read_code().

Referenced by i386_analyze_prologue().

◆ i386_skip_main_prologue()

CORE_ADDR i386_skip_main_prologue ( struct gdbarch * gdbarch,
CORE_ADDR pc )

◆ i386_skip_noop()

static CORE_ADDR i386_skip_noop ( CORE_ADDR pc)
static

Definition at line 1543 of file i386-tdep.c.

References check(), and target_read_code().

Referenced by i386_analyze_prologue().

◆ i386_skip_probe()

static CORE_ADDR i386_skip_probe ( CORE_ADDR pc)
static

Definition at line 1213 of file i386-tdep.c.

References i386_frame_cache::pc, read_memory(), and target_read_code().

Referenced by i386_analyze_prologue().

◆ i386_skip_prologue()

static CORE_ADDR i386_skip_prologue ( struct gdbarch * gdbarch,
CORE_ADDR start_pc )
static

◆ i386_stack_frame_destroyed_p()

static int i386_stack_frame_destroyed_p ( struct gdbarch * gdbarch,
CORE_ADDR pc )
static

Definition at line 2219 of file i386-tdep.c.

References target_read_memory().

Referenced by i386_epilogue_frame_sniffer_1().

◆ i386_stack_tramp_frame_sniffer()

static int i386_stack_tramp_frame_sniffer ( const struct frame_unwind * self,
frame_info_ptr this_frame,
void ** this_cache )
static

Definition at line 2437 of file i386-tdep.c.

References frame_relative_level(), get_frame_pc(), and i386_in_stack_tramp_p().

◆ i386_stap_adjust_register()

static std::string i386_stap_adjust_register ( struct gdbarch * gdbarch,
struct stap_parse_info * p,
const std::string & regname,
int regnum )
static

Definition at line 4486 of file i386-tdep.c.

References stap_parse_info::arg_type, type::length(), register_size(), and regnum.

Referenced by i386_elf_init_abi().

◆ i386_stap_is_single_operand()

int i386_stap_is_single_operand ( struct gdbarch * gdbarch,
const char * s )

Definition at line 4174 of file i386-tdep.c.

Referenced by amd64_init_abi(), and i386_elf_init_abi().

◆ i386_stap_parse_special_token()

expr::operation_up i386_stap_parse_special_token ( struct gdbarch * gdbarch,
struct stap_parse_info * p )

◆ i386_stap_parse_special_token_three_arg_disp()

static expr::operation_up i386_stap_parse_special_token_three_arg_disp ( struct gdbarch * gdbarch,
struct stap_parse_info * p )
static

◆ i386_stap_parse_special_token_triplet()

static expr::operation_up i386_stap_parse_special_token_triplet ( struct gdbarch * gdbarch,
struct stap_parse_info * p )
static

◆ i386_store_return_value()

static void i386_store_return_value ( struct gdbarch * gdbarch,
struct type * type,
struct regcache * regcache,
const gdb_byte * valbuf )
static

◆ i386_supply_fpregset()

static void i386_supply_fpregset ( const struct regset * regset,
struct regcache * regcache,
int regnum,
const void * fpregs,
size_t len )
static

◆ i386_supply_gregset()

void i386_supply_gregset ( const struct regset * regset,
struct regcache * regcache,
int regnum,
const void * gregs,
size_t len )

◆ i386_svr4_dwarf_reg_to_regnum()

static int i386_svr4_dwarf_reg_to_regnum ( struct gdbarch * gdbarch,
int reg )
static

◆ i386_svr4_init_abi()

void i386_svr4_init_abi ( struct gdbarch_info info,
struct gdbarch * gdbarch )

◆ i386_svr4_reg_to_regnum()

int i386_svr4_reg_to_regnum ( struct gdbarch * gdbarch,
int reg )

◆ i386_svr4_sigcontext_addr()

static CORE_ADDR i386_svr4_sigcontext_addr ( frame_info_ptr this_frame)
static

◆ i386_svr4_sigtramp_p()

static int i386_svr4_sigtramp_p ( frame_info_ptr this_frame)
static

Definition at line 4140 of file i386-tdep.c.

References find_pc_partial_function(), get_frame_pc(), and name.

Referenced by i386_svr4_init_abi().

◆ i386_syscall_p()

static int i386_syscall_p ( const gdb_byte * insn,
int * lengthp )
static

Definition at line 748 of file i386-tdep.c.

Referenced by i386_displaced_step_copy_insn(), and i386_displaced_step_fixup().

◆ i386_target_description()

const struct target_desc * i386_target_description ( uint64_t xcr0,
bool segments )

◆ i386_thiscall_push_dummy_call()

CORE_ADDR i386_thiscall_push_dummy_call ( struct gdbarch * gdbarch,
struct value * function,
struct regcache * regcache,
CORE_ADDR bp_addr,
int nargs,
struct value ** args,
CORE_ADDR sp,
function_call_return_method return_method,
CORE_ADDR struct_addr,
bool thiscall )

◆ i386_type_align()

static ULONGEST i386_type_align ( struct gdbarch * gdbarch,
struct type * type )
static

◆ i386_unwind_pc()

static CORE_ADDR i386_unwind_pc ( struct gdbarch * gdbarch,
frame_info_ptr next_frame )
static

Definition at line 1968 of file i386-tdep.c.

References extract_typed_address(), frame_unwind_register(), and gdbarch_pc_regnum().

Referenced by i386_gdbarch_init().

◆ i386_validate_tdesc_p()

static int i386_validate_tdesc_p ( i386_gdbarch_tdep * tdep,
struct tdesc_arch_data * tdesc_data )
static

◆ i386_value_to_register()

static void i386_value_to_register ( frame_info_ptr frame,
int regnum,
struct type * type,
const gdb_byte * from )
static

◆ i386_word_regnum_p()

int i386_word_regnum_p ( struct gdbarch * gdbarch,
int regnum )

◆ i386_xcr0_from_tdesc()

static uint64_t i386_xcr0_from_tdesc ( const struct target_desc * tdesc)
static

Definition at line 8301 of file i386-tdep.c.

References tdesc_find_feature(), and tdesc_has_registers().

Referenced by i386_gdbarch_init().

◆ i386_xmm_avx512_regnum_p()

int i386_xmm_avx512_regnum_p ( struct gdbarch * gdbarch,
int regnum )

Definition at line 347 of file i386-tdep.c.

References I387_NUM_XMM_AVX512_REGS, I387_XMM16_REGNUM, and regnum.

Referenced by i386_register_reggroup_p().

◆ i386_xmm_regnum_p()

int i386_xmm_regnum_p ( struct gdbarch * gdbarch,
int regnum )

◆ i386_ymm_avx512_regnum_p()

int i386_ymm_avx512_regnum_p ( struct gdbarch * gdbarch,
int regnum )

◆ i386_ymm_regnum_p()

int i386_ymm_regnum_p ( struct gdbarch * gdbarch,
int regnum )

◆ i386_ymm_type()

static struct type * i386_ymm_type ( struct gdbarch * gdbarch)
static

◆ i386_ymmh_avx512_regnum_p()

static int i386_ymmh_avx512_regnum_p ( struct gdbarch * gdbarch,
int regnum )
static

◆ i386_ymmh_regnum_p()

static int i386_ymmh_regnum_p ( struct gdbarch * gdbarch,
int regnum )
static

◆ i386_zmm_regnum_p()

int i386_zmm_regnum_p ( struct gdbarch * gdbarch,
int regnum )

◆ i386_zmm_type()

static struct type * i386_zmm_type ( struct gdbarch * gdbarch)
static

◆ i386_zmmh_regnum_p()

int i386_zmmh_regnum_p ( struct gdbarch * gdbarch,
int regnum )

◆ i387_ext_type()

struct type * i387_ext_type ( struct gdbarch * gdbarch)

Variable Documentation

◆ att_flavor

const char att_flavor[] = "att"
static

Definition at line 591 of file i386-tdep.c.

Referenced by i386_print_insn().

◆ default_struct_convention

const char default_struct_convention[] = "default"
static

Definition at line 3024 of file i386-tdep.c.

Referenced by i386_reg_struct_return_p().

◆ disassembly_flavor

const char* disassembly_flavor = att_flavor
static

Definition at line 599 of file i386-tdep.c.

Referenced by i386_print_insn().

◆ i386_bnd_names

const char* const i386_bnd_names[]
static
Initial value:
=
{
"bnd0", "bnd1", "bnd2", "bnd3"
}

Definition at line 132 of file i386-tdep.c.

Referenced by i386_pseudo_register_name().

◆ i386_break_insn

constexpr gdb_byte i386_break_insn[] = { 0xcc }
constexpr

Definition at line 613 of file i386-tdep.c.

◆ i386_byte_names

const char* const i386_byte_names[]
static
Initial value:
=
{
"al", "cl", "dl", "bl",
"ah", "ch", "dh", "bh"
}

Definition at line 147 of file i386-tdep.c.

Referenced by i386_pseudo_register_name().

◆ i386_epilogue_frame_unwind

const struct frame_unwind i386_epilogue_frame_unwind
static
Initial value:
=
{
"i386 epilogue",
NULL,
}
@ NORMAL_FRAME
Definition frame.h:187
static enum unwind_stop_reason i386_epilogue_frame_unwind_stop_reason(frame_info_ptr this_frame, void **this_cache)
Definition i386-tdep.c:2318
static struct value * i386_epilogue_frame_prev_register(frame_info_ptr this_frame, void **this_cache, int regnum)
Definition i386-tdep.c:2345
static void i386_epilogue_frame_this_id(frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id)
Definition i386-tdep.c:2331
static int i386_epilogue_frame_sniffer(const struct frame_unwind *self, frame_info_ptr this_frame, void **this_prologue_cache)
Definition i386-tdep.c:2274

Definition at line 2365 of file i386-tdep.c.

Referenced by i386_gdbarch_init().

◆ i386_epilogue_override_frame_unwind

const struct frame_unwind i386_epilogue_override_frame_unwind
static
Initial value:
=
{
"i386 epilogue override",
NULL,
}
static int i386_epilogue_override_frame_sniffer(const struct frame_unwind *self, frame_info_ptr this_frame, void **this_prologue_cache)
Definition i386-tdep.c:2265

Definition at line 2354 of file i386-tdep.c.

Referenced by i386_gdbarch_init().

◆ i386_fpregset

const struct regset i386_fpregset
Initial value:
=
{
}
static void i386_supply_fpregset(const struct regset *regset, struct regcache *regcache, int regnum, const void *fpregs, size_t len)
Definition i386-tdep.c:4001
static void i386_collect_fpregset(const struct regset *regset, const struct regcache *regcache, int regnum, void *fpregs, size_t len)
Definition i386-tdep.c:4023

Definition at line 4047 of file i386-tdep.c.

Referenced by i386_gdbarch_init(), i386_linux_iterate_over_regset_sections(), and i386fbsd_iterate_over_regset_sections().

◆ i386_frame_base

const struct frame_base i386_frame_base
static
Initial value:
=
{
}
static CORE_ADDR i386_frame_base_address(frame_info_ptr this_frame, void **this_cache)
Definition i386-tdep.c:2609
static const struct frame_unwind i386_frame_unwind
Definition i386-tdep.c:2199

Definition at line 2616 of file i386-tdep.c.

Referenced by i386_gdbarch_init().

◆ i386_frame_setup_skip_insns

i386_insn i386_frame_setup_skip_insns[]
static

Definition at line 1473 of file i386-tdep.c.

Referenced by i386_analyze_frame_setup().

◆ i386_frame_unwind

const struct frame_unwind i386_frame_unwind
static
Initial value:
=
{
"i386 prologue",
NULL,
}
int default_frame_sniffer(const struct frame_unwind *self, frame_info_ptr this_frame, void **this_prologue_cache)
static struct value * i386_frame_prev_register(frame_info_ptr this_frame, void **this_cache, int regnum)
Definition i386-tdep.c:2140
static enum unwind_stop_reason i386_frame_unwind_stop_reason(frame_info_ptr this_frame, void **this_cache)
Definition i386-tdep.c:2124
static void i386_frame_this_id(frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id)
Definition i386-tdep.c:2105

Definition at line 2199 of file i386-tdep.c.

Referenced by i386_gdbarch_init().

◆ i386_gregset

const struct regset i386_gregset
Initial value:
=
{
}
static void i386_collect_gregset(const struct regset *regset, const struct regcache *regcache, int regnum, void *gregs, size_t len)
Definition i386-tdep.c:3977
void i386_supply_gregset(const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t len)
Definition i386-tdep.c:3953

Definition at line 4042 of file i386-tdep.c.

Referenced by amd64_linux_iterate_over_regset_sections(), i386_iterate_over_regset_sections(), i386_linux_iterate_over_regset_sections(), and i386nto_supply_gregset().

◆ i386_k_names

const char* const i386_k_names[]
static
Initial value:
=
{
"k0", "k1", "k2", "k3",
"k4", "k5", "k6", "k7"
}

Definition at line 102 of file i386-tdep.c.

Referenced by i386_validate_tdesc_p().

◆ i386_mmx_names

const char* const i386_mmx_names[]
static
Initial value:
=
{
"mm0", "mm1", "mm2", "mm3",
"mm4", "mm5", "mm6", "mm7"
}

Definition at line 139 of file i386-tdep.c.

Referenced by i386_pseudo_register_name().

◆ i386_mmx_reggroup

const reggroup* i386_mmx_reggroup
static

Definition at line 4587 of file i386-tdep.c.

Referenced by i386_add_reggroups(), i386_init_reggroups(), and i386_register_reggroup_p().

◆ i386_mpx_names

const char* const i386_mpx_names[]
static
Initial value:
=
{
"bnd0raw", "bnd1raw", "bnd2raw", "bnd3raw", "bndcfgu", "bndstatus"
}

Definition at line 120 of file i386-tdep.c.

Referenced by i386_validate_tdesc_p().

◆ i386_pkeys_names

const char* const i386_pkeys_names[]
static
Initial value:
=
{
"pkru"
}

Definition at line 125 of file i386-tdep.c.

Referenced by i386_validate_tdesc_p().

◆ i386_record_regmap

const int i386_record_regmap[]
static
Initial value:
=
{
0, 0, 0, 0, 0, 0, 0, 0,
}
@ I386_EFLAGS_REGNUM
Definition i386-tdep.h:290
@ I386_ESI_REGNUM
Definition i386-tdep.h:287
@ I386_FS_REGNUM
Definition i386-tdep.h:295
@ I386_ECX_REGNUM
Definition i386-tdep.h:282
@ I386_GS_REGNUM
Definition i386-tdep.h:296
@ I386_EIP_REGNUM
Definition i386-tdep.h:289
@ I386_EBP_REGNUM
Definition i386-tdep.h:286
@ I386_ES_REGNUM
Definition i386-tdep.h:294
@ I386_CS_REGNUM
Definition i386-tdep.h:291
@ I386_EAX_REGNUM
Definition i386-tdep.h:281
@ I386_SS_REGNUM
Definition i386-tdep.h:292
@ I386_EDX_REGNUM
Definition i386-tdep.h:283
@ I386_ESP_REGNUM
Definition i386-tdep.h:285
@ I386_EBX_REGNUM
Definition i386-tdep.h:284
@ I386_DS_REGNUM
Definition i386-tdep.h:293
@ I386_EDI_REGNUM
Definition i386-tdep.h:288

Definition at line 8205 of file i386-tdep.c.

Referenced by i386_gdbarch_init().

◆ i386_register_names

const char* const i386_register_names[]
static
Initial value:
=
{
"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 75 of file i386-tdep.c.

Referenced by i386_gdbarch_init(), and i386_in_indirect_branch_thunk().

◆ i386_sigtramp_frame_unwind

const struct frame_unwind i386_sigtramp_frame_unwind
static
Initial value:
=
{
"i386 sigtramp",
NULL,
}
@ SIGTRAMP_FRAME
Definition frame.h:198
static struct value * i386_sigtramp_frame_prev_register(frame_info_ptr this_frame, void **this_cache, int regnum)
Definition i386-tdep.c:2556
static int i386_sigtramp_frame_sniffer(const struct frame_unwind *self, frame_info_ptr this_frame, void **this_prologue_cache)
Definition i386-tdep.c:2566
static enum unwind_stop_reason i386_sigtramp_frame_unwind_stop_reason(frame_info_ptr this_frame, void **this_cache)
Definition i386-tdep.c:2527
static void i386_sigtramp_frame_this_id(frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id)
Definition i386-tdep.c:2540

Definition at line 2596 of file i386-tdep.c.

Referenced by i386_gdbarch_init().

◆ i386_sse_reggroup

const reggroup* i386_sse_reggroup
static

Definition at line 4586 of file i386-tdep.c.

Referenced by i386_add_reggroups(), i386_init_reggroups(), and i386_register_reggroup_p().

◆ i386_stack_tramp_frame_unwind

const struct frame_unwind i386_stack_tramp_frame_unwind
static
Initial value:
=
{
"i386 stack tramp",
NULL,
}
static int i386_stack_tramp_frame_sniffer(const struct frame_unwind *self, frame_info_ptr this_frame, void **this_cache)
Definition i386-tdep.c:2437

Definition at line 2447 of file i386-tdep.c.

Referenced by i386_gdbarch_init().

◆ i386_tramp_chain_in_reg_insns

i386_insn i386_tramp_chain_in_reg_insns[]
static
Initial value:
=
{
{ 5, { 0xb8 }, { 0xfe } },
{ 5, { 0xe9 }, { 0xff } },
{0}
}

Definition at line 2386 of file i386-tdep.c.

Referenced by i386_in_stack_tramp_p().

◆ i386_tramp_chain_on_stack_insns

i386_insn i386_tramp_chain_on_stack_insns[]
static
Initial value:
=
{
{ 5, { 0x68 }, { 0xff } },
{ 5, { 0xe9 }, { 0xff } },
{0}
}

Definition at line 2399 of file i386-tdep.c.

Referenced by i386_in_stack_tramp_p().

◆ i386_word_names

const char* const i386_word_names[]
static
Initial value:
=
{
"ax", "cx", "dx", "bx",
"", "bp", "si", "di"
}

Definition at line 155 of file i386-tdep.c.

Referenced by i386_pseudo_register_name().

◆ i386_ymm_names

const char* const i386_ymm_names[]
static
Initial value:
=
{
"ymm0", "ymm1", "ymm2", "ymm3",
"ymm4", "ymm5", "ymm6", "ymm7",
}

Definition at line 108 of file i386-tdep.c.

Referenced by i386_pseudo_register_name().

◆ i386_ymmh_names

const char* const i386_ymmh_names[]
static
Initial value:
=
{
"ymm0h", "ymm1h", "ymm2h", "ymm3h",
"ymm4h", "ymm5h", "ymm6h", "ymm7h",
}

Definition at line 114 of file i386-tdep.c.

Referenced by i386_validate_tdesc_p().

◆ i386_zmm_names

const char* const i386_zmm_names[]
static
Initial value:
=
{
"zmm0", "zmm1", "zmm2", "zmm3",
"zmm4", "zmm5", "zmm6", "zmm7"
}

Definition at line 90 of file i386-tdep.c.

Referenced by i386_pseudo_register_name().

◆ i386_zmmh_names

const char* const i386_zmmh_names[]
static
Initial value:
=
{
"zmm0h", "zmm1h", "zmm2h", "zmm3h",
"zmm4h", "zmm5h", "zmm6h", "zmm7h"
}

Definition at line 96 of file i386-tdep.c.

Referenced by i386_validate_tdesc_p().

◆ intel_flavor

const char intel_flavor[] = "intel"
static

Definition at line 592 of file i386-tdep.c.

Referenced by i386_print_insn().

◆ mpx_set_cmdlist

struct cmd_list_element* mpx_set_cmdlist
static

Definition at line 9214 of file i386-tdep.c.

◆ mpx_show_cmdlist

struct cmd_list_element * mpx_show_cmdlist
static

Definition at line 9214 of file i386-tdep.c.

◆ num_lower_zmm_regs

const int num_lower_zmm_regs = 16

◆ pcc_struct_convention

const char pcc_struct_convention[] = "pcc"
static

Definition at line 3025 of file i386-tdep.c.

Referenced by i386_reg_struct_return_p().

◆ reg_struct_convention

const char reg_struct_convention[] = "reg"
static

Definition at line 3026 of file i386-tdep.c.

◆ struct_convention

const char* struct_convention = default_struct_convention
static

Definition at line 3034 of file i386-tdep.c.

Referenced by i386_reg_struct_return_p().

◆ valid_conventions

const char* const valid_conventions[]
static
Initial value:
=
{
NULL
}
static const char reg_struct_convention[]
Definition i386-tdep.c:3026
static const char pcc_struct_convention[]
Definition i386-tdep.c:3025
static const char default_struct_convention[]
Definition i386-tdep.c:3024

Definition at line 3027 of file i386-tdep.c.

◆ valid_flavors

const char* const valid_flavors[]
static
Initial value:
=
{
NULL
}
static const char att_flavor[]
Definition i386-tdep.c:591
static const char intel_flavor[]
Definition i386-tdep.c:592

Definition at line 593 of file i386-tdep.c.