GDB (xrefs)

Classes | Macros | Typedefs | Enumerations | Functions | Variables
/tmp/gdb-8.1/gdb/i386-tdep.h File Reference
`#include "infrun.h"`

Go to the source code of this file.

## Classes
struct | gdbarch_tdep

## Macros
#define | I386_NUM_GREGS 16
#define | I386_NUM_XREGS 9
#define | I386_SSE_NUM_REGS (I386_MXCSR_REGNUM + 1)
#define | I386_AVX_NUM_REGS (I386_YMM7H_REGNUM + 1)
#define | I386_MPX_NUM_REGS (I386_BNDSTATUS_REGNUM + 1)
#define | I386_AVX512_NUM_REGS (I386_ZMM7H_REGNUM + 1)
#define | I386_PKEYS_NUM_REGS (I386_PKRU_REGNUM + 1)
#define | I386_MAX_REGISTER_SIZE 64
#define | I386_SEL_RPL 0x0003 /* Requester's Privilege Level mask. */
#define | I386_SEL_UPL 0x0003 /* User Privilige Level. */
#define | I386_SEL_KPL 0x0000 /* Kernel Privilige Level. */
#define | I386_MAX_INSN_LEN (16)

## Typedefs
typedef buf_displaced_step_closure | i386_displaced_step_closure

## Enumerations
enum | struct_return { pcc_struct_return, reg_struct_return, pcc_struct_return, reg_struct_return, pcc_struct_return, reg_struct_return }
enum | i386_regnum { I386_EAX_REGNUM, I386_ECX_REGNUM, I386_EDX_REGNUM, I386_EBX_REGNUM, I386_ESP_REGNUM, I386_EBP_REGNUM, I386_ESI_REGNUM, I386_EDI_REGNUM, I386_EIP_REGNUM, I386_EFLAGS_REGNUM, I386_CS_REGNUM, I386_SS_REGNUM, I386_DS_REGNUM, I386_ES_REGNUM, I386_FS_REGNUM, I386_GS_REGNUM, I386_ST0_REGNUM, I386_MXCSR_REGNUM = 40, I386_YMM0H_REGNUM, I386_YMM7H_REGNUM = I386_YMM0H_REGNUM + 7, I386_BND0R_REGNUM, I386_BND3R_REGNUM = I386_BND0R_REGNUM + 3, I386_BNDCFGU_REGNUM, I386_BNDSTATUS_REGNUM, I386_K0_REGNUM, I386_K7_REGNUM = I386_K0_REGNUM + 7, I386_ZMM0H_REGNUM, I386_ZMM7H_REGNUM = I386_ZMM0H_REGNUM + 7, I386_PKRU_REGNUM }
enum | record_i386_regnum { X86_RECORD_REAX_REGNUM, X86_RECORD_RECX_REGNUM, X86_RECORD_REDX_REGNUM, X86_RECORD_REBX_REGNUM, X86_RECORD_RESP_REGNUM, X86_RECORD_REBP_REGNUM, X86_RECORD_RESI_REGNUM, X86_RECORD_REDI_REGNUM, X86_RECORD_R8_REGNUM, X86_RECORD_R9_REGNUM, X86_RECORD_R10_REGNUM, X86_RECORD_R11_REGNUM, X86_RECORD_R12_REGNUM, X86_RECORD_R13_REGNUM, X86_RECORD_R14_REGNUM, X86_RECORD_R15_REGNUM, X86_RECORD_REIP_REGNUM, X86_RECORD_EFLAGS_REGNUM, X86_RECORD_CS_REGNUM, X86_RECORD_SS_REGNUM, X86_RECORD_DS_REGNUM, X86_RECORD_ES_REGNUM, X86_RECORD_FS_REGNUM, X86_RECORD_GS_REGNUM }

## Functions
int | i386_fp_regnum_p (struct gdbarch *, int)
int | i386_fpc_regnum_p (struct gdbarch *, int)
struct type * | i387_ext_type (struct gdbarch *gdbarch)
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_xmm_regnum_p (struct gdbarch *gdbarch, int regnum)
int | i386_xmm_avx512_regnum_p (struct gdbarch *gdbarch, int regnum)
int | i386_ymm_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_k_regnum_p (struct gdbarch *gdbarch, int regnum)
int | i386_zmm_regnum_p (struct gdbarch *gdbarch, int regnum)
int | i386_zmmh_regnum_p (struct gdbarch *gdbarch, int regnum)
bool | i386_pkru_regnum_p (struct gdbarch *gdbarch, int regnum)
const char * | i386_pseudo_register_name (struct gdbarch *gdbarch, int regnum)
struct type * | i386_pseudo_register_type (struct gdbarch *gdbarch, int regnum)
void | i386_pseudo_register_read_into_value (struct gdbarch *gdbarch, struct regcache *regcache, int regnum, struct value *result)
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)
CORE_ADDR | i386_pe_skip_trampoline_code (struct frame_info *frame, CORE_ADDR pc, char *name)
CORE_ADDR | i386_skip_main_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
int | i386_sigtramp_p (struct frame_info *this_frame)
int | i386_register_reggroup_p (struct gdbarch *gdbarch, int regnum, struct reggroup *group)
void | i386_supply_gregset (const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, 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)
struct displaced_step_closure * | 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_closure *closure, CORE_ADDR from, CORE_ADDR to, struct regcache *regs)
void | i386_elf_init_abi (struct gdbarch_info, struct gdbarch *)
void | i386_svr4_init_abi (struct gdbarch_info, struct gdbarch *)
int | i386_svr4_reg_to_regnum (struct gdbarch *gdbarch, int reg)
int | i386_process_record (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR addr)
const struct target_desc * | i386_target_description (uint64_t xcr0)
int | i386_mpx_enabled (void)
void | i386bsd_init_abi (struct gdbarch_info, struct gdbarch *)
int | i386_stap_is_single_operand (struct gdbarch *gdbarch, const char *s)
int | i386_stap_parse_special_token (struct gdbarch *gdbarch, struct stap_parse_info *p)

## Variables
const struct regset | i386_gregset
const struct regset | i386_fpregset
CORE_ADDR | i386fbsd_sigtramp_start_addr
CORE_ADDR | i386fbsd_sigtramp_end_addr
CORE_ADDR | i386obsd_sigtramp_start_addr
CORE_ADDR | i386obsd_sigtramp_end_addr
int | i386fbsd4_sc_reg_offset []
int | i386fbsd_sc_reg_offset []
int | i386nbsd_sc_reg_offset []
int | i386obsd_sc_reg_offset []
int | i386bsd_sc_reg_offset []

## Macro Definition Documentation

## ◆ I386_AVX512_NUM_REGS

#define I386_AVX512_NUM_REGS (I386_ZMM7H_REGNUM + 1)

Definition at line 338 of file i386-tdep.h.

## ◆ I386_AVX_NUM_REGS

#define I386_AVX_NUM_REGS (I386_YMM7H_REGNUM + 1)

Definition at line 336 of file i386-tdep.h.

## ◆ I386_MAX_INSN_LEN

#define I386_MAX_INSN_LEN (16)

Definition at line 386 of file i386-tdep.h.

Referenced by i386_gdbarch_init(), i386_insn_is_call(), i386_insn_is_jump(), i386_insn_is_ret(), and i386_relocate_instruction().

## ◆ I386_MAX_REGISTER_SIZE

#define I386_MAX_REGISTER_SIZE 64

Definition at line 342 of file i386-tdep.h.

Referenced by i386_extract_return_value(), i386_process_record(), i386_pseudo_register_read_into_value(), i386_pseudo_register_write(), i386_store_return_value(), i387_collect_xsave(), i387_register_to_value(), i387_supply_xsave(), and i387_value_to_register().

## ◆ I386_MPX_NUM_REGS

#define I386_MPX_NUM_REGS (I386_BNDSTATUS_REGNUM + 1)

Definition at line 337 of file i386-tdep.h.

## ◆ I386_NUM_GREGS

#define I386_NUM_GREGS 16

Definition at line 332 of file i386-tdep.h.

Referenced by fill_gregset(), gnu_fetch_registers(), gnu_store_registers(), i386_darwin_fetch_inferior_registers(), i386_darwin_store_inferior_registers(), i386_gdbarch_init(), i386nto_regset_id(), and supply_gregset().

## ◆ I386_NUM_XREGS

#define I386_NUM_XREGS 9

Definition at line 333 of file i386-tdep.h.

Referenced by i386_darwin_init_abi(), and i386_gdbarch_init().

## ◆ I386_PKEYS_NUM_REGS

#define I386_PKEYS_NUM_REGS (I386_PKRU_REGNUM + 1)

Definition at line 339 of file i386-tdep.h.

Referenced by i386_gdbarch_init().

## ◆ I386_SEL_KPL

#define I386_SEL_KPL 0x0000 /* Kernel Privilige Level. */

Definition at line 382 of file i386-tdep.h.

## ◆ I386_SEL_RPL

#define I386_SEL_RPL 0x0003 /* Requester's Privilege Level mask. */

Definition at line 380 of file i386-tdep.h.

Referenced by amd64obsd_trapframe_cache(), amd64obsd_trapframe_sniffer(), i386obsd_trapframe_cache(), and i386obsd_trapframe_sniffer().

## ◆ I386_SEL_UPL

#define I386_SEL_UPL 0x0003 /* User Privilige Level. */

Definition at line 381 of file i386-tdep.h.

Referenced by amd64obsd_trapframe_cache(), amd64obsd_trapframe_sniffer(), i386obsd_trapframe_cache(), and i386obsd_trapframe_sniffer().

## ◆ I386_SSE_NUM_REGS

#define I386_SSE_NUM_REGS (I386_MXCSR_REGNUM + 1)

Definition at line 335 of file i386-tdep.h.

Referenced by i386_darwin_fetch_inferior_registers(), i386_darwin_init_abi(), i386_darwin_store_inferior_registers(), and i386nto_regset_id().

## Typedef Documentation

## ◆ i386_displaced_step_closure

typedef buf_displaced_step_closure i386_displaced_step_closure

Definition at line 421 of file i386-tdep.h.

## Enumeration Type Documentation

## ◆ i386_regnum

enum i386_regnum

Enumerator
I386_EAX_REGNUM |
I386_ECX_REGNUM |
I386_EDX_REGNUM |
I386_EBX_REGNUM |
I386_ESP_REGNUM |
I386_EBP_REGNUM |
I386_ESI_REGNUM |
I386_EDI_REGNUM |
I386_EIP_REGNUM |
I386_EFLAGS_REGNUM |
I386_CS_REGNUM |
I386_SS_REGNUM |
I386_DS_REGNUM |
I386_ES_REGNUM |
I386_FS_REGNUM |
I386_GS_REGNUM |
I386_ST0_REGNUM |
I386_MXCSR_REGNUM |
I386_YMM0H_REGNUM |
I386_YMM7H_REGNUM |
I386_BND0R_REGNUM |
I386_BND3R_REGNUM |
I386_BNDCFGU_REGNUM |
I386_BNDSTATUS_REGNUM |
I386_K0_REGNUM |
I386_K7_REGNUM |
I386_ZMM0H_REGNUM |
I386_ZMM7H_REGNUM |
I386_PKRU_REGNUM |

Definition at line 269 of file i386-tdep.h.

## ◆ record_i386_regnum

enum record_i386_regnum

Enumerator
X86_RECORD_REAX_REGNUM |
X86_RECORD_RECX_REGNUM |
X86_RECORD_REDX_REGNUM |
X86_RECORD_REBX_REGNUM |
X86_RECORD_RESP_REGNUM |
X86_RECORD_REBP_REGNUM |
X86_RECORD_RESI_REGNUM |
X86_RECORD_REDI_REGNUM |
X86_RECORD_R8_REGNUM |
X86_RECORD_R9_REGNUM |
X86_RECORD_R10_REGNUM |
X86_RECORD_R11_REGNUM |
X86_RECORD_R12_REGNUM |
X86_RECORD_R13_REGNUM |
X86_RECORD_R14_REGNUM |
X86_RECORD_R15_REGNUM |
X86_RECORD_REIP_REGNUM |
X86_RECORD_EFLAGS_REGNUM |
X86_RECORD_CS_REGNUM |
X86_RECORD_SS_REGNUM |
X86_RECORD_DS_REGNUM |
X86_RECORD_ES_REGNUM |
X86_RECORD_FS_REGNUM |
X86_RECORD_GS_REGNUM |

Definition at line 304 of file i386-tdep.h.

## ◆ struct_return

enum struct_return

Enumerator
pcc_struct_return |
reg_struct_return |
pcc_struct_return |
reg_struct_return |
pcc_struct_return |
reg_struct_return |

Definition at line 51 of file i386-tdep.h.

## Function Documentation

## ◆ i386_ax_pseudo_register_collect()

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

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

References _, gdbarch_tdep::al_regnum, ax_reg_mask(), gdbarch_tdep::ax_regnum, gdbarch_tdep::bnd0_regnum, gdbarch_tdep(), i386_bnd_regnum_p(), i386_byte_regnum_p(), i386_k_regnum_p(), i386_mmx_regnum_p(), i386_word_regnum_p(), i386_ymm_avx512_regnum_p(), i386_ymm_regnum_p(), i386_zmm_regnum_p(), I387_BND0R_REGNUM, I387_FSTAT_REGNUM, I387_ST0_REGNUM, I387_XMM0_REGNUM, I387_XMM16_REGNUM, I387_YMM16H_REGNUM, internal_error(), gdbarch_tdep::k0_regnum, num_lower_zmm_regs, regnum, gdbarch_tdep::ymm0_regnum, gdbarch_tdep::ymm0h_regnum, gdbarch_tdep::ymm16_regnum, gdbarch_tdep::ymm16h_regnum, gdbarch_tdep::zmm0_regnum, and gdbarch_tdep::zmm0h_regnum.

Referenced by amd64_ax_pseudo_register_collect(), and i386_gdbarch_init().

## ◆ i386_bnd_regnum_p()

int i386_bnd_regnum_p | ( | struct gdbarch * | gdbarch,
|  | int | regnum
| ) |  |

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

References gdbarch_tdep::bnd0_regnum, gdbarch_tdep(), I387_NUM_BND_REGS, and regnum.

Referenced by i386_ax_pseudo_register_collect(), i386_pseudo_register_name(), i386_pseudo_register_read_into_value(), i386_pseudo_register_type(), i386_pseudo_register_write(), and i386_register_reggroup_p().

## ◆ i386_byte_regnum_p()

int i386_byte_regnum_p | ( | struct gdbarch * | gdbarch,
|  | int | regnum
| ) |  |

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

References gdbarch_tdep::al_regnum, gdbarch_tdep(), gdbarch_tdep::num_byte_regs, and regnum.

Referenced by amd64_ax_pseudo_register_collect(), amd64_pseudo_register_name(), amd64_pseudo_register_read_value(), amd64_pseudo_register_write(), i386_ax_pseudo_register_collect(), i386_pseudo_register_name(), i386_pseudo_register_read_into_value(), i386_pseudo_register_type(), i386_pseudo_register_write(), and i386_register_reggroup_p().

## ◆ i386_displaced_step_copy_insn()

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

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

References buf_displaced_step_closure::buf, debug_displaced, displaced_step_dump_bytes(), fprintf_unfiltered(), gdb_stdlog, gdbarch_max_insn_length(), i386_syscall_p(), paddress(), read_memory(), and write_memory().

Referenced by i386_linux_displaced_step_copy_insn().

## ◆ i386_displaced_step_fixup()

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

References buf_displaced_step_closure::buf, debug_displaced, fprintf_unfiltered(), 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_syscall_p(), paddress(), read_memory_unsigned_integer(), regcache_cooked_read_unsigned(), regcache_cooked_write_unsigned(), and write_memory_unsigned_integer().

Referenced by i386_linux_init_abi().

## ◆ i386_dword_regnum_p()

int i386_dword_regnum_p | ( | struct gdbarch * | gdbarch,
|  | int | regnum
| ) |  |

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

References gdbarch_tdep::eax_regnum, gdbarch_tdep(), gdbarch_tdep::num_dword_regs, and regnum.

Referenced by amd64_ax_pseudo_register_collect(), amd64_pseudo_register_name(), amd64_pseudo_register_read_value(), amd64_pseudo_register_write(), i386_pseudo_register_type(), and i386_register_reggroup_p().

## ◆ i386_elf_init_abi()

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

Definition at line 4439 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_prefixes(), set_gdbarch_stap_is_single_operand(), set_gdbarch_stap_parse_special_token(), set_gdbarch_stap_register_indirection_prefixes(), set_gdbarch_stap_register_indirection_suffixes(), and set_gdbarch_stap_register_prefixes().

Referenced by i386_linux_init_abi(), i386_svr4_init_abi(), i386fbsd_init_abi(), i386gnu_init_abi(), i386nbsdelf_init_abi(), i386nto_init_abi(), and i386obsd_init_abi().

## ◆ i386_fp_regnum_p()

int i386_fp_regnum_p | ( | struct gdbarch * | ,
|  | int |
| ) |  |

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

References gdbarch_tdep(), I387_FCTRL_REGNUM, I387_ST0_REGNUM, and 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().

## ◆ i386_fpc_regnum_p()

int i386_fpc_regnum_p | ( | struct gdbarch * | ,
|  | int |
| ) |  |

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

References gdbarch_tdep(), I387_FCTRL_REGNUM, I387_ST0_REGNUM, I387_XMM0_REGNUM, and regnum.

Referenced by fetch_register(), i386_process_record(), i386_register_reggroup_p(), and store_register().

## ◆ 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
| ) |  |

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

References gdbarch_tdep::fpregset, gdbarch_tdep(), i386_gregset, gdbarch_tdep::sizeof_fpregset, and gdbarch_tdep::sizeof_gregset.

Referenced by i386_gdbarch_init().

## ◆ i386_k_regnum_p()

int i386_k_regnum_p | ( | struct gdbarch * | gdbarch,
|  | int | regnum
| ) |  |

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

References gdbarch_tdep(), I387_NUM_K_REGS, gdbarch_tdep::k0_regnum, and regnum.

Referenced by i386_ax_pseudo_register_collect(), i386_pseudo_register_read_into_value(), i386_pseudo_register_type(), and i386_pseudo_register_write().

## ◆ i386_mpx_enabled()

int i386_mpx_enabled | ( | void |  | ) |

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

References gdbarch_tdep(), get_current_arch(), gdbarch_tdep::tdesc, and tdesc_find_feature().

Referenced by i386_linux_handle_segmentation_fault(), i386_mpx_info_bounds(), and i386_mpx_set_bounds().

## ◆ i386_pe_skip_trampoline_code()

CORE_ADDR i386_pe_skip_trampoline_code | ( | struct frame_info * | frame,
|  | CORE_ADDR | pc,
|  | char * | name
| ) |  |

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

References gdbarch::byte_order, gdbarch_byte_order(), get_frame_arch(), lookup_minimal_symbol_by_pc(), bound_minimal_symbol::minsym, MSYMBOL_LINKAGE_NAME, name, read_memory_unsigned_integer(), and startswith().

Referenced by i386_cygwin_skip_trampoline_code().

## ◆ i386_pkru_regnum_p()

bool i386_pkru_regnum_p | ( | struct gdbarch * | gdbarch,
|  | int | regnum
| ) |  |

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

References gdbarch_tdep(), I387_NUM_PKEYS_REGS, gdbarch_tdep::pkru_regnum, and regnum.

Referenced by i386_register_reggroup_p().

## ◆ i386_process_record()

int i386_process_record | ( | struct gdbarch * | gdbarch,
|  | struct regcache * | regcache,
|  | CORE_ADDR | addr
| ) |  |

Definition at line 5025 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_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, 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, 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, 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
| ) |  |

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

References _, gdbarch_tdep::al_regnum, gdbarch_tdep::ax_regnum, gdbarch_tdep::bnd0_regnum, gdbarch_tdep(), i386_bnd_names, i386_bnd_regnum_p(), 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(), i386_zmm_names, i386_zmm_regnum_p(), I387_MM0_REGNUM, internal_error(), regnum, gdbarch_tdep::ymm0_regnum, and gdbarch_tdep::zmm0_regnum.

Referenced by amd64_pseudo_register_name(), and i386_gdbarch_init().

## ◆ i386_pseudo_register_read_into_value()

void i386_pseudo_register_read_into_value | ( | struct gdbarch * | gdbarch,
|  | struct regcache * | regcache,
|  | int | regnum,
|  | struct value * | result
| ) |  |

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

References _, gdbarch_tdep::al_regnum, gdbarch_tdep::ax_regnum, gdbarch_tdep::bnd0_regnum, extract_unsigned_integer(), gdbarch_byte_order(), gdbarch_tdep(), i386_bnd_regnum_p(), i386_byte_regnum_p(), i386_k_regnum_p(), I386_MAX_REGISTER_SIZE, i386_mmx_regnum_p(), i386_mmx_regnum_to_fp_regnum(), i386_word_regnum_p(), i386_ymm_avx512_regnum_p(), i386_ymm_regnum_p(), i386_zmm_regnum_p(), I387_BND0R_REGNUM, I387_XMM0_REGNUM, I387_XMM16_REGNUM, I387_YMM16H_REGNUM, internal_error(), gdbarch_tdep::k0_regnum, mark_value_bytes_unavailable(), num_lower_zmm_regs, REG_VALID, regcache_raw_read(), register_size(), regnum, size, status, target_gdbarch(), TYPE_LENGTH, value_contents_raw(), value_type(), gdbarch_tdep::ymm0_regnum, gdbarch_tdep::ymm0h_regnum, gdbarch_tdep::ymm16_regnum, gdbarch_tdep::ymm16h_regnum, gdbarch_tdep::zmm0_regnum, and gdbarch_tdep::zmm0h_regnum.

Referenced by amd64_pseudo_register_read_value(), and i386_pseudo_register_read_value().

## ◆ i386_pseudo_register_type()

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

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

References _, builtin_type::builtin_int16, builtin_type::builtin_int32, builtin_type::builtin_int64, builtin_type::builtin_int8, builtin_type(), i386_bnd_regnum_p(), i386_bnd_type(), i386_byte_regnum_p(), i386_dword_regnum_p(), i386_k_regnum_p(), i386_mmx_regnum_p(), i386_mmx_type(), i386_word_regnum_p(), i386_ymm_avx512_regnum_p(), i386_ymm_regnum_p(), i386_ymm_type(), i386_zmm_regnum_p(), i386_zmm_type(), internal_error(), and regnum.

Referenced by amd64_x32_pseudo_register_type(), and i386_gdbarch_init().

## ◆ i386_pseudo_register_write()

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

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

References _, gdbarch_tdep::al_regnum, gdbarch_tdep::ax_regnum, gdbarch_tdep::bnd0_regnum, extract_unsigned_integer(), gdbarch_byte_order(), gdbarch_tdep(), i386_bnd_regnum_p(), i386_byte_regnum_p(), i386_k_regnum_p(), I386_MAX_REGISTER_SIZE, i386_mmx_regnum_p(), i386_mmx_regnum_to_fp_regnum(), i386_word_regnum_p(), i386_ymm_avx512_regnum_p(), i386_ymm_regnum_p(), i386_zmm_regnum_p(), I387_BND0R_REGNUM, I387_XMM0_REGNUM, I387_XMM16_REGNUM, I387_YMM0_REGNUM, I387_YMM16H_REGNUM, internal_error(), gdbarch_tdep::k0_regnum, num_lower_zmm_regs, regcache_raw_read(), regcache_raw_write(), register_size(), regnum, size, target_gdbarch(), TYPE_LENGTH, gdbarch_tdep::ymm0_regnum, gdbarch_tdep::ymm0h_regnum, gdbarch_tdep::ymm16_regnum, gdbarch_tdep::ymm16h_regnum, gdbarch_tdep::zmm0_regnum, and gdbarch_tdep::zmm0h_regnum.

Referenced by amd64_pseudo_register_write(), and i386_gdbarch_init().

## ◆ i386_register_reggroup_p()

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

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

References all_reggroup, default_register_reggroup_p(), float_reggroup, gdbarch_tdep(), general_reggroup, i386_bnd_regnum_p(), i386_bndr_regnum_p(), i386_byte_regnum_p(), i386_dword_regnum_p(), i386_fp_regnum_p(), i386_fpc_regnum_p(), i386_mmx_reggroup, i386_mmx_regnum_p(), i386_mpx_ctrl_regnum_p(), i386_mxcsr_regnum_p(), i386_pkru_regnum_p(), i386_sse_reggroup, i386_word_regnum_p(), i386_xmm_avx512_regnum_p(), i386_xmm_regnum_p(), i386_ymm_avx512_regnum_p(), i386_ymm_regnum_p(), i386_ymmh_avx512_regnum_p(), i386_ymmh_regnum_p(), i386_zmm_regnum_p(), i386_zmmh_regnum_p(), regnum, vector_reggroup, X86_XSTATE_AVX_AVX512_MASK, X86_XSTATE_AVX_MASK, X86_XSTATE_MPX_MASK, X86_XSTATE_SSE_MASK, and gdbarch_tdep::xcr0.

Referenced by amd64_linux_register_reggroup_p(), i386_gdbarch_init(), and i386_linux_register_reggroup_p().

## ◆ i386_sigtramp_p()

int i386_sigtramp_p | ( | struct frame_info * | this_frame | ) |

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

## ◆ i386_skip_main_prologue()

CORE_ADDR i386_skip_main_prologue | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | pc
| ) |  |

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

References extract_signed_integer(), gdbarch_byte_order(), lookup_minimal_symbol_by_pc(), bound_minimal_symbol::minsym, MSYMBOL_LINKAGE_NAME, and target_read_code().

Referenced by i386_cygwin_init_abi().

## ◆ i386_stap_is_single_operand()

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

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

Referenced by amd64_init_abi(), and i386_elf_init_abi().

## ◆ i386_stap_parse_special_token()

int i386_stap_parse_special_token | ( | struct gdbarch * | gdbarch,
|  | struct stap_parse_info * | p
| ) |  |

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

References i386_stap_parse_special_token_three_arg_disp(), and i386_stap_parse_special_token_triplet().

Referenced by amd64_init_abi(), and i386_elf_init_abi().

## ◆ i386_supply_gregset()

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

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

References regcache::arch(), gdb_assert, gdbarch_tdep(), gdbarch_tdep::gregset_num_regs, gdbarch_tdep::gregset_reg_offset, regcache_raw_supply(), regnum, gdbarch_tdep::regs, and gdbarch_tdep::sizeof_gregset.

## ◆ i386_svr4_init_abi()

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

Definition at line 4467 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 _initialize_i386_tdep(), and i386_sol2_init_abi().

## ◆ i386_svr4_reg_to_regnum()

int i386_svr4_reg_to_regnum | ( | struct gdbarch * | gdbarch,
|  | int | reg
| ) |  |

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

References gdbarch_num_pseudo_regs(), gdbarch_num_regs(), i386_svr4_dwarf_reg_to_regnum(), and regnum.

Referenced by i386_elf_init_abi(), and i386_go32_init_abi().

## ◆ i386_target_description()

const struct target_desc* i386_target_description | ( | uint64_t | xcr0 | ) |

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

References i386_create_target_description(), X86_XSTATE_AVX, X86_XSTATE_AVX512, X86_XSTATE_MPX, X86_XSTATE_PKRU, and X86_XSTATE_SSE.

Referenced by _initialize_i386_tdep(), amd64fbsd_read_description(), i386_gdbarch_init(), i386_go32_init_abi(), and i386fbsd_core_read_description().

## ◆ i386_word_regnum_p()

int i386_word_regnum_p | ( | struct gdbarch * | gdbarch,
|  | int | regnum
| ) |  |

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

References gdbarch_tdep::ax_regnum, gdbarch_tdep(), gdbarch_tdep::num_word_regs, and regnum.

Referenced by amd64_pseudo_register_name(), i386_ax_pseudo_register_collect(), i386_pseudo_register_name(), i386_pseudo_register_read_into_value(), i386_pseudo_register_type(), i386_pseudo_register_write(), and i386_register_reggroup_p().

## ◆ i386_xmm_avx512_regnum_p()

int i386_xmm_avx512_regnum_p | ( | struct gdbarch * | gdbarch,
|  | int | regnum
| ) |  |

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

References gdbarch_tdep(), I387_NUM_XMM_AVX512_REGS, I387_XMM16_REGNUM, gdbarch_tdep::num_xmm_avx512_regs, and regnum.

Referenced by i386_register_reggroup_p().

## ◆ i386_xmm_regnum_p()

int i386_xmm_regnum_p | ( | struct gdbarch * | gdbarch,
|  | int | regnum
| ) |  |

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

References gdbarch_tdep(), I387_NUM_XMM_REGS, I387_XMM0_REGNUM, gdbarch_tdep::num_xmm_regs, and regnum.

Referenced by amd64_dwarf_reg_to_regnum(), i386_dbx_reg_to_regnum(), i386_process_record(), and i386_register_reggroup_p().

## ◆ i386_ymm_avx512_regnum_p()

int i386_ymm_avx512_regnum_p | ( | struct gdbarch * | gdbarch,
|  | int | regnum
| ) |  |

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

References gdbarch_tdep(), gdbarch_tdep::num_ymm_avx512_regs, regnum, and gdbarch_tdep::ymm16_regnum.

Referenced by amd64_pseudo_register_name(), i386_ax_pseudo_register_collect(), i386_pseudo_register_read_into_value(), i386_pseudo_register_type(), i386_pseudo_register_write(), and i386_register_reggroup_p().

## ◆ i386_ymm_regnum_p()

int i386_ymm_regnum_p | ( | struct gdbarch * | gdbarch,
|  | int | regnum
| ) |  |

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

References gdbarch_tdep(), gdbarch_tdep::num_ymm_regs, regnum, and gdbarch_tdep::ymm0_regnum.

Referenced by amd64_pseudo_register_name(), i386_ax_pseudo_register_collect(), i386_pseudo_register_name(), i386_pseudo_register_read_into_value(), i386_pseudo_register_type(), i386_pseudo_register_write(), and i386_register_reggroup_p().

## ◆ i386_zmm_regnum_p()

int i386_zmm_regnum_p | ( | struct gdbarch * | gdbarch,
|  | int | regnum
| ) |  |

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

References gdbarch_tdep(), gdbarch_tdep::num_zmm_regs, regnum, and gdbarch_tdep::zmm0_regnum.

Referenced by amd64_pseudo_register_name(), i386_ax_pseudo_register_collect(), i386_pseudo_register_name(), i386_pseudo_register_read_into_value(), i386_pseudo_register_type(), i386_pseudo_register_write(), and i386_register_reggroup_p().

## ◆ i386_zmmh_regnum_p()

int i386_zmmh_regnum_p | ( | struct gdbarch * | gdbarch,
|  | int | regnum
| ) |  |

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

References gdbarch_tdep(), gdbarch_tdep::num_zmm_regs, regnum, and gdbarch_tdep::zmm0h_regnum.

Referenced by i386_register_name(), and i386_register_reggroup_p().

## ◆ i386bsd_init_abi()

void i386bsd_init_abi | ( | struct gdbarch_info | ,
|  | struct gdbarch * |
| ) |  |

Definition at line 75 of file i386-bsd-tdep.c.

References gdbarch_tdep(), i386bsd_sc_reg_offset, i386bsd_sigcontext_addr(), gdbarch_tdep::jb_pc_offset, gdbarch_tdep::sc_num_regs, gdbarch_tdep::sc_reg_offset, gdbarch_tdep::sigcontext_addr, gdbarch_tdep::sigtramp_end, and gdbarch_tdep::sigtramp_start.

Referenced by amd64fbsd_init_abi(), i386fbsd_init_abi(), i386nbsd_init_abi(), and i386obsd_init_abi().

## ◆ i387_ext_type()

struct type* i387_ext_type | ( | struct gdbarch * | gdbarch | ) |

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

## Variable Documentation

## ◆ i386_fpregset

const struct regset i386_fpregset

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

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

## ◆ i386_gregset

const struct regset i386_gregset

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

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

## ◆ i386bsd_sc_reg_offset

int i386bsd_sc_reg_offset[]

Definition at line 54 of file i386-bsd-tdep.c.

Referenced by i386bsd_init_abi().

## ◆ i386fbsd4_sc_reg_offset

int i386fbsd4_sc_reg_offset[]

Definition at line 369 of file i386-fbsd-tdep.c.

Referenced by i386fbsd4_init_abi().

## ◆ i386fbsd_sc_reg_offset

int i386fbsd_sc_reg_offset[]

Definition at line 206 of file i386-fbsd-tdep.c.

Referenced by i386fbsd_init_abi().

## ◆ i386fbsd_sigtramp_end_addr

CORE_ADDR i386fbsd_sigtramp_end_addr

Definition at line 203 of file i386-fbsd-tdep.c.

Referenced by _initialize_i386fbsd_nat(), and i386fbsd_init_abi().

## ◆ i386fbsd_sigtramp_start_addr

CORE_ADDR i386fbsd_sigtramp_start_addr

Definition at line 202 of file i386-fbsd-tdep.c.

Referenced by _initialize_i386fbsd_nat(), and i386fbsd_init_abi().

## ◆ i386nbsd_sc_reg_offset

int i386nbsd_sc_reg_offset[]

Definition at line 58 of file i386-nbsd-tdep.c.

Referenced by i386nbsd_sigtramp_cache_init().

## ◆ i386obsd_sc_reg_offset

int i386obsd_sc_reg_offset[]

Definition at line 144 of file i386-obsd-tdep.c.

Referenced by i386obsd_init_abi().

## ◆ i386obsd_sigtramp_end_addr

CORE_ADDR i386obsd_sigtramp_end_addr

Definition at line 141 of file i386-obsd-tdep.c.

Referenced by _initialize_i386obsd_nat(), and i386obsd_init_abi().

## ◆ i386obsd_sigtramp_start_addr

CORE_ADDR i386obsd_sigtramp_start_addr

Definition at line 140 of file i386-obsd-tdep.c.

Referenced by _initialize_i386obsd_nat(), and i386obsd_init_abi().