GDB (API)
Defines | Enumerations | Functions | Variables
/home/stan/gdb/src/gdb/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 "doublest.h"
#include "frame.h"
#include "frame-base.h"
#include "frame-unwind.h"
#include "inferior.h"
#include "gdbcmd.h"
#include "gdbcore.h"
#include "gdbtypes.h"
#include "objfiles.h"
#include "osabi.h"
#include "regcache.h"
#include "reggroups.h"
#include "regset.h"
#include "symfile.h"
#include "symtab.h"
#include "target.h"
#include "value.h"
#include "dis-asm.h"
#include "disasm.h"
#include "remote.h"
#include "exceptions.h"
#include "gdb_assert.h"
#include "gdb_string.h"
#include "i386-tdep.h"
#include "i387-tdep.h"
#include "i386-xstate.h"
#include "record.h"
#include "record-full.h"
#include <stdint.h>
#include "features/i386/i386.c"
#include "features/i386/i386-avx.c"
#include "features/i386/i386-mmx.c"
#include "ax.h"
#include "ax-gdb.h"
#include "stap-probe.h"
#include "user-regs.h"
#include "cli/cli-utils.h"
#include "expression.h"
#include "parser-defs.h"
#include <ctype.h>

Go to the source code of this file.

Defines

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

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

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_ymm_regnum_p (struct gdbarch *gdbarch, int regnum)
int i386_xmm_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)
const char * i386_pseudo_register_name (struct gdbarch *gdbarch, int regnum)
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)
CORE_ADDR i386_skip_main_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
struct typei387_ext_type (struct gdbarch *gdbarch)
struct typei386_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_value)
void i386_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache, int regnum, const gdb_byte *buf)
void i386_supply_gregset (const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t len)
void i386_collect_gregset (const struct regset *regset, const struct regcache *regcache, int regnum, void *gregs, size_t len)
struct regseti386_regset_from_core_section (struct gdbarch *gdbarch, const char *sect_name, size_t sect_size)
CORE_ADDR i386_pe_skip_trampoline_code (struct frame_info *frame, CORE_ADDR pc, char *name)
int i386_sigtramp_p (struct frame_info *this_frame)
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)
void i386_elf_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
void i386_svr4_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
int i386_register_reggroup_p (struct gdbarch *gdbarch, int regnum, struct reggroup *group)
int i386_process_record (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR input_addr)
void _initialize_i386_tdep (void)

Variables

struct i386_insn i386_frame_setup_skip_insns []
struct i386_insn i386_tramp_chain_in_reg_insns []
struct i386_insn i386_tramp_chain_on_stack_insns []

Define Documentation

#define HIGH_RETURN_REGNUM   I386_EDX_REGNUM /* %edx */

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

#define I386_MAX_MATCHED_INSN_LEN   6

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

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

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

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

#define I386_SAVE_FPU_ENV   0xfffe

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

#define I386_SAVE_FPU_ENV_REG_STACK   0xffff

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

#define I386_SAVE_FPU_REGS   0xfffd

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

#define LOW_RETURN_REGNUM   I386_EAX_REGNUM /* %eax */

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

#define PREFIX_ADDR   0x10

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

#define PREFIX_DATA   0x08

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

#define PREFIX_LOCK   0x04

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

#define PREFIX_REPNZ   0x02

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

#define PREFIX_REPZ   0x01

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


Enumeration Type Documentation

anonymous enum
Enumerator:
OT_BYTE 
OT_WORD 
OT_LONG 
OT_QUAD 
OT_DQUAD 

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

anonymous enum
Enumerator:
OP_ADDL 
OP_ORL 
OP_ADCL 
OP_SBBL 
OP_ANDL 
OP_SUBL 
OP_XORL 
OP_CMPL 

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


Function Documentation

void _initialize_i386_tdep ( void  )
int i386_byte_regnum_p ( struct gdbarch *  gdbarch,
int  regnum 
)

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

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

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

struct displaced_step_closure* i386_displaced_step_copy_insn ( struct gdbarch *  gdbarch,
CORE_ADDR  from,
CORE_ADDR  to,
struct regcache *  regs 
) [read]

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

void i386_displaced_step_fixup ( struct gdbarch *  gdbarch,
struct displaced_step_closure *  closure,
CORE_ADDR  from,
CORE_ADDR  to,
struct regcache *  regs 
)

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

int i386_dword_regnum_p ( struct gdbarch *  gdbarch,
int  regnum 
)

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

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

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

int i386_fp_regnum_p ( struct gdbarch *  gdbarch,
int  regnum 
)

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

int i386_fpc_regnum_p ( struct gdbarch *  gdbarch,
int  regnum 
)

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

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

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

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

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

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

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

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

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

struct type* i386_pseudo_register_type ( struct gdbarch *  gdbarch,
int  regnum 
) [read]

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

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

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

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

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

struct regset* i386_regset_from_core_section ( struct gdbarch *  gdbarch,
const char *  sect_name,
size_t  sect_size 
) [read]

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

int i386_sigtramp_p ( struct frame_info *  this_frame)

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

CORE_ADDR i386_skip_main_prologue ( struct gdbarch *  gdbarch,
CORE_ADDR  pc 
)

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

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

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

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

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

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

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

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

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

int i386_word_regnum_p ( struct gdbarch *  gdbarch,
int  regnum 
)

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

int i386_xmm_regnum_p ( struct gdbarch *  gdbarch,
int  regnum 
)

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

int i386_ymm_regnum_p ( struct gdbarch *  gdbarch,
int  regnum 
)

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

struct type* i387_ext_type ( struct gdbarch *  gdbarch) [read]

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


Variable Documentation

struct i386_insn i386_frame_setup_skip_insns[]

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

struct i386_insn i386_tramp_chain_in_reg_insns[]
Initial value:
{
  
  { 5, { 0xb8 }, { 0xfe } },

  
  { 5, { 0xe9 }, { 0xff } },

  {0}
}

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

struct i386_insn i386_tramp_chain_on_stack_insns[]
Initial value:
{
  
  { 5, { 0x68 }, { 0xff } },

  
  { 5, { 0xe9 }, { 0xff } },

  {0}
}

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

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines