GDB (xrefs)
Classes | Defines | Enumerations | Functions | Variables
/home/stan/gdb/src/gdb/amd64-tdep.c File Reference
#include "defs.h"
#include "opcode/i386.h"
#include "dis-asm.h"
#include "arch-utils.h"
#include "block.h"
#include "dummy-frame.h"
#include "frame.h"
#include "frame-base.h"
#include "frame-unwind.h"
#include "inferior.h"
#include "gdbcmd.h"
#include "gdbcore.h"
#include "objfiles.h"
#include "regcache.h"
#include "regset.h"
#include "symfile.h"
#include "disasm.h"
#include "gdb_assert.h"
#include "exceptions.h"
#include "amd64-tdep.h"
#include "i387-tdep.h"
#include "features/i386/amd64.c"
#include "features/i386/amd64-avx.c"
#include "features/i386/x32.c"
#include "features/i386/x32-avx.c"
#include "ax.h"
#include "ax-gdb.h"

Go to the source code of this file.

Classes

struct  amd64_insn
struct  displaced_step_closure
struct  amd64_frame_cache

Defines

#define AMD64_NUM_LOWER_BYTE_REGS   16
#define AMD64_NUM_SAVED_REGS   AMD64_NUM_GREGS

Enumerations

enum  amd64_reg_class {
  AMD64_INTEGER, AMD64_SSE, AMD64_SSEUP, AMD64_X87,
  AMD64_X87UP, AMD64_COMPLEX_X87, AMD64_NO_CLASS, AMD64_MEMORY
}

Functions

static int amd64_dwarf_reg_to_regnum (struct gdbarch *gdbarch, int reg)
static int amd64_arch_reg_to_regnum (int reg)
static const char * amd64_pseudo_register_name (struct gdbarch *gdbarch, int regnum)
static struct valueamd64_pseudo_register_read_value (struct gdbarch *gdbarch, struct regcache *regcache, int regnum)
static void amd64_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache, int regnum, const gdb_byte *buf)
static enum amd64_reg_class amd64_merge_classes (enum amd64_reg_class class1, enum amd64_reg_class class2)
static void amd64_classify (struct type *type, enum amd64_reg_class class[2])
static int amd64_non_pod_p (struct type *type)
static void amd64_classify_aggregate (struct type *type, enum amd64_reg_class class[2])
static enum return_value_convention amd64_return_value (struct gdbarch *gdbarch, struct value *function, struct type *type, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf)
static CORE_ADDR amd64_push_arguments (struct regcache *regcache, int nargs, struct value **args, CORE_ADDR sp, int struct_return)
static CORE_ADDR amd64_push_dummy_call (struct gdbarch *gdbarch, struct value *function, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr)
static int amd64_syscall_p (const struct amd64_insn *insn, int *lengthp)
static int rex_prefix_p (gdb_byte pfx)
static gdb_byteamd64_skip_prefixes (gdb_byte *insn)
static int amd64_get_unused_input_int_reg (const struct amd64_insn *details)
static void amd64_get_insn_details (gdb_byte *insn, struct amd64_insn *details)
static void fixup_riprel (struct gdbarch *gdbarch, struct displaced_step_closure *dsc, CORE_ADDR from, CORE_ADDR to, struct regcache *regs)
static void fixup_displaced_copy (struct gdbarch *gdbarch, struct displaced_step_closure *dsc, CORE_ADDR from, CORE_ADDR to, struct regcache *regs)
struct displaced_step_closureamd64_displaced_step_copy_insn (struct gdbarch *gdbarch, CORE_ADDR from, CORE_ADDR to, struct regcache *regs)
static int amd64_absolute_jmp_p (const struct amd64_insn *details)
static int amd64_absolute_call_p (const struct amd64_insn *details)
static int amd64_ret_p (const struct amd64_insn *details)
static int amd64_call_p (const struct amd64_insn *details)
void amd64_displaced_step_fixup (struct gdbarch *gdbarch, struct displaced_step_closure *dsc, CORE_ADDR from, CORE_ADDR to, struct regcache *regs)
static int rip_relative_offset (struct amd64_insn *insn)
static void append_insns (CORE_ADDR *to, ULONGEST len, const gdb_byte *buf)
static void amd64_relocate_instruction (struct gdbarch *gdbarch, CORE_ADDR *to, CORE_ADDR oldloc)
static void amd64_init_frame_cache (struct amd64_frame_cache *cache)
static struct amd64_frame_cacheamd64_alloc_frame_cache (void)
static CORE_ADDR amd64_analyze_stack_align (CORE_ADDR pc, CORE_ADDR current_pc, struct amd64_frame_cache *cache)
static CORE_ADDR amd64_x32_analyze_stack_align (CORE_ADDR pc, CORE_ADDR current_pc, struct amd64_frame_cache *cache)
static CORE_ADDR amd64_analyze_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR current_pc, struct amd64_frame_cache *cache)
static CORE_ADDR amd64_skip_xmm_prologue (CORE_ADDR pc, CORE_ADDR start_pc)
static CORE_ADDR amd64_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR start_pc)
static void amd64_frame_cache_1 (struct frame_info *this_frame, struct amd64_frame_cache *cache)
static struct amd64_frame_cacheamd64_frame_cache (struct frame_info *this_frame, void **this_cache)
static enum unwind_stop_reason amd64_frame_unwind_stop_reason (struct frame_info *this_frame, void **this_cache)
static void amd64_frame_this_id (struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
static struct valueamd64_frame_prev_register (struct frame_info *this_frame, void **this_cache, int regnum)
static void amd64_gen_return_address (struct gdbarch *gdbarch, struct agent_expr *ax, struct axs_value *value, CORE_ADDR scope)
static struct amd64_frame_cacheamd64_sigtramp_frame_cache (struct frame_info *this_frame, void **this_cache)
static enum unwind_stop_reason amd64_sigtramp_frame_unwind_stop_reason (struct frame_info *this_frame, void **this_cache)
static void amd64_sigtramp_frame_this_id (struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
static struct valueamd64_sigtramp_frame_prev_register (struct frame_info *this_frame, void **this_cache, int regnum)
static int amd64_sigtramp_frame_sniffer (const struct frame_unwind *self, struct frame_info *this_frame, void **this_cache)
static CORE_ADDR amd64_frame_base_address (struct frame_info *this_frame, void **this_cache)
static int amd64_in_function_epilogue_p (struct gdbarch *gdbarch, CORE_ADDR pc)
static int amd64_epilogue_frame_sniffer (const struct frame_unwind *self, struct frame_info *this_frame, void **this_prologue_cache)
static struct amd64_frame_cacheamd64_epilogue_frame_cache (struct frame_info *this_frame, void **this_cache)
static enum unwind_stop_reason amd64_epilogue_frame_unwind_stop_reason (struct frame_info *this_frame, void **this_cache)
static void amd64_epilogue_frame_this_id (struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
static struct frame_id amd64_dummy_id (struct gdbarch *gdbarch, struct frame_info *this_frame)
static CORE_ADDR amd64_frame_align (struct gdbarch *gdbarch, CORE_ADDR sp)
static void amd64_supply_fpregset (const struct regset *regset, struct regcache *regcache, int regnum, const void *fpregs, size_t len)
static void amd64_collect_fpregset (const struct regset *regset, const struct regcache *regcache, int regnum, void *fpregs, size_t len)
static void amd64_supply_xstateregset (const struct regset *regset, struct regcache *regcache, int regnum, const void *xstateregs, size_t len)
static void amd64_collect_xstateregset (const struct regset *regset, const struct regcache *regcache, int regnum, void *xstateregs, size_t len)
static struct regsetamd64_regset_from_core_section (struct gdbarch *gdbarch, const char *sect_name, size_t sect_size)
static int amd64_get_longjmp_target (struct frame_info *frame, CORE_ADDR *pc)
void amd64_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
static struct typeamd64_x32_pseudo_register_type (struct gdbarch *gdbarch, int regnum)
void amd64_x32_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
void _initialize_amd64_tdep (void)
void amd64_supply_fxsave (struct regcache *regcache, int regnum, const void *fxsave)
void amd64_supply_xsave (struct regcache *regcache, int regnum, const void *xsave)
void amd64_collect_fxsave (const struct regcache *regcache, int regnum, void *fxsave)
void amd64_collect_xsave (const struct regcache *regcache, int regnum, void *xsave, int gcore)

Variables

static const char * amd64_register_names []
static const char * amd64_ymm_names []
static const char * amd64_ymmh_names []
static int amd64_dwarf_regmap []
static const int amd64_dwarf_regmap_len
static const int amd64_arch_regmap [16]
static const int amd64_arch_regmap_len
static const char * amd64_byte_names []
static const char * amd64_word_names []
static const char * amd64_dword_names []
static const unsigned char onebyte_has_modrm [256]
static const unsigned char twobyte_has_modrm [256]
static struct frame_unwind amd64_frame_unwind
static struct frame_unwind amd64_sigtramp_frame_unwind
static struct frame_base amd64_frame_base
static struct frame_unwind amd64_epilogue_frame_unwind
static const int amd64_record_regmap []

Define Documentation

#define AMD64_NUM_LOWER_BYTE_REGS   16

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

Referenced by amd64_pseudo_register_read_value(), and amd64_pseudo_register_write().


Enumeration Type Documentation

Enumerator:
AMD64_INTEGER 
AMD64_SSE 
AMD64_SSEUP 
AMD64_X87 
AMD64_X87UP 
AMD64_COMPLEX_X87 
AMD64_NO_CLASS 
AMD64_MEMORY 

Definition at line 392 of file amd64-tdep.c.


Function Documentation

void _initialize_amd64_tdep ( void  )
static int amd64_absolute_call_p ( const struct amd64_insn details) [static]

Definition at line 1343 of file amd64-tdep.c.

References amd64_insn::opcode_offset, and amd64_insn::raw_insn.

Referenced by amd64_call_p(), and amd64_displaced_step_fixup().

static int amd64_absolute_jmp_p ( const struct amd64_insn details) [static]

Definition at line 1324 of file amd64-tdep.c.

References amd64_insn::opcode_offset, and amd64_insn::raw_insn.

Referenced by amd64_displaced_step_fixup().

static struct amd64_frame_cache* amd64_alloc_frame_cache ( void  ) [static, read]
static CORE_ADDR amd64_analyze_prologue ( struct gdbarch gdbarch,
CORE_ADDR  pc,
CORE_ADDR  current_pc,
struct amd64_frame_cache cache 
) [static]
static CORE_ADDR amd64_analyze_stack_align ( CORE_ADDR  pc,
CORE_ADDR  current_pc,
struct amd64_frame_cache cache 
) [static]
static int amd64_arch_reg_to_regnum ( int  reg) [static]

Definition at line 225 of file amd64-tdep.c.

References gdb_assert.

Referenced by amd64_analyze_stack_align(), amd64_x32_analyze_stack_align(), and fixup_riprel().

static int amd64_call_p ( const struct amd64_insn details) [static]
static void amd64_classify ( struct type type,
enum amd64_reg_class  class[2] 
) [static]
static void amd64_classify_aggregate ( struct type type,
enum amd64_reg_class  class[2] 
) [static]
static void amd64_collect_fpregset ( const struct regset regset,
const struct regcache regcache,
int  regnum,
void *  fpregs,
size_t  len 
) [static]
void amd64_collect_fxsave ( const struct regcache regcache,
int  regnum,
void *  fxsave 
)
void amd64_collect_xsave ( const struct regcache regcache,
int  regnum,
void *  xsave,
int  gcore 
)
static void amd64_collect_xstateregset ( const struct regset regset,
const struct regcache regcache,
int  regnum,
void *  xstateregs,
size_t  len 
) [static]

Definition at line 2744 of file amd64-tdep.c.

References amd64_collect_xsave().

Referenced by amd64_regset_from_core_section().

struct displaced_step_closure* amd64_displaced_step_copy_insn ( struct gdbarch gdbarch,
CORE_ADDR  from,
CORE_ADDR  to,
struct regcache regs 
) [read]
void amd64_displaced_step_fixup ( struct gdbarch gdbarch,
struct displaced_step_closure dsc,
CORE_ADDR  from,
CORE_ADDR  to,
struct regcache regs 
)
static struct frame_id amd64_dummy_id ( struct gdbarch gdbarch,
struct frame_info this_frame 
) [static, read]
static int amd64_dwarf_reg_to_regnum ( struct gdbarch gdbarch,
int  reg 
) [static]
static struct amd64_frame_cache* amd64_epilogue_frame_cache ( struct frame_info this_frame,
void **  this_cache 
) [static, read]
static int amd64_epilogue_frame_sniffer ( const struct frame_unwind self,
struct frame_info this_frame,
void **  this_prologue_cache 
) [static]
static void amd64_epilogue_frame_this_id ( struct frame_info this_frame,
void **  this_cache,
struct frame_id this_id 
) [static]
static enum unwind_stop_reason amd64_epilogue_frame_unwind_stop_reason ( struct frame_info this_frame,
void **  this_cache 
) [static]

Definition at line 2646 of file amd64-tdep.c.

References amd64_epilogue_frame_cache(), and amd64_frame_cache::base_p.

static CORE_ADDR amd64_frame_align ( struct gdbarch gdbarch,
CORE_ADDR  sp 
) [static]

Definition at line 2695 of file amd64-tdep.c.

Referenced by amd64_init_abi().

static CORE_ADDR amd64_frame_base_address ( struct frame_info this_frame,
void **  this_cache 
) [static]

Definition at line 2553 of file amd64-tdep.c.

References amd64_frame_cache(), and amd64_frame_cache::base.

static struct amd64_frame_cache* amd64_frame_cache ( struct frame_info this_frame,
void **  this_cache 
) [static, read]
static void amd64_frame_cache_1 ( struct frame_info this_frame,
struct amd64_frame_cache cache 
) [static]
static struct value* amd64_frame_prev_register ( struct frame_info this_frame,
void **  this_cache,
int  regnum 
) [static, read]
static void amd64_frame_this_id ( struct frame_info this_frame,
void **  this_cache,
struct frame_id this_id 
) [static]
static enum unwind_stop_reason amd64_frame_unwind_stop_reason ( struct frame_info this_frame,
void **  this_cache 
) [static]
static void amd64_gen_return_address ( struct gdbarch gdbarch,
struct agent_expr ax,
struct axs_value value,
CORE_ADDR  scope 
) [static]
static void amd64_get_insn_details ( gdb_byte insn,
struct amd64_insn details 
) [static]
static int amd64_get_longjmp_target ( struct frame_info frame,
CORE_ADDR pc 
) [static]
static int amd64_get_unused_input_int_reg ( const struct amd64_insn details) [static]
static int amd64_in_function_epilogue_p ( struct gdbarch gdbarch,
CORE_ADDR  pc 
) [static]
void amd64_init_abi ( struct gdbarch_info  info,
struct gdbarch gdbarch 
)

Definition at line 2825 of file amd64-tdep.c.

References amd64_dummy_id(), amd64_dwarf_reg_to_regnum(), AMD64_EFLAGS_REGNUM, amd64_frame_align(), amd64_gen_return_address(), amd64_get_longjmp_target(), AMD64_NUM_GREGS, AMD64_NUM_REGS, amd64_pseudo_register_name(), amd64_pseudo_register_read_value(), amd64_pseudo_register_write(), amd64_push_dummy_call(), amd64_record_regmap, amd64_register_names, amd64_regset_from_core_section(), amd64_relocate_instruction(), amd64_return_value(), AMD64_RIP_REGNUM, AMD64_RSP_REGNUM, amd64_skip_prologue(), AMD64_ST0_REGNUM, AMD64_YMM0H_REGNUM, amd64_ymmh_names, frame_base_set_default(), frame_unwind_append_unwinder(), frame_unwind_prepend_unwinder(), gdbarch_tdep(), gdbarch_tdep::gregset_reg_offset, i386_stap_is_single_operand(), i386_stap_parse_special_token(), i387_convert_register_p(), I387_NUM_REGS, i387_register_to_value(), I387_SIZEOF_FXSAVE, i387_value_to_register(), gdbarch_tdep::num_byte_regs, gdbarch_tdep::num_core_regs, gdbarch_tdep::num_dword_regs, gdbarch_tdep::num_mmx_regs, gdbarch_tdep::num_word_regs, gdbarch_tdep::num_xmm_regs, gdbarch_tdep::num_ymm_regs, gdbarch_tdep::record_regmap, gdbarch_tdep::register_names, set_gdbarch_convert_register_p(), set_gdbarch_dummy_id(), set_gdbarch_dwarf2_reg_to_regnum(), set_gdbarch_fp0_regnum(), set_gdbarch_frame_align(), set_gdbarch_frame_red_zone_size(), set_gdbarch_gen_return_address(), set_gdbarch_get_longjmp_target(), set_gdbarch_long_bit(), set_gdbarch_long_double_bit(), set_gdbarch_long_long_bit(), set_gdbarch_num_regs(), set_gdbarch_pc_regnum(), set_gdbarch_ps_regnum(), set_gdbarch_pseudo_register_read_value(), set_gdbarch_pseudo_register_write(), set_gdbarch_ptr_bit(), set_gdbarch_push_dummy_call(), set_gdbarch_register_to_value(), set_gdbarch_regset_from_core_section(), set_gdbarch_relocate_instruction(), set_gdbarch_return_value(), set_gdbarch_skip_prologue(), set_gdbarch_sp_regnum(), set_gdbarch_stab_reg_to_regnum(), set_gdbarch_stap_integer_prefix(), set_gdbarch_stap_is_single_operand(), set_gdbarch_stap_parse_special_token(), set_gdbarch_stap_register_indirection_prefix(), set_gdbarch_stap_register_indirection_suffix(), set_gdbarch_stap_register_prefix(), set_gdbarch_value_to_register(), set_tdesc_pseudo_register_name(), gdbarch_tdep::sizeof_fpregset, gdbarch_tdep::st0_regnum, gdbarch_info::target_desc, gdbarch_tdep::tdesc, tdesc_amd64, tdesc_find_feature(), tdesc_has_registers(), gdbarch_tdep::ymm0h_regnum, and gdbarch_tdep::ymmh_register_names.

Referenced by amd64_dicos_init_abi(), amd64_linux_init_abi(), amd64_sol2_init_abi(), amd64_windows_init_abi(), amd64_x32_init_abi(), amd64fbsd_init_abi(), amd64nbsd_init_abi(), amd64obsd_init_abi(), and x86_darwin_init_abi_64().

static void amd64_init_frame_cache ( struct amd64_frame_cache cache) [static]
static enum amd64_reg_class amd64_merge_classes ( enum amd64_reg_class  class1,
enum amd64_reg_class  class2 
) [static]
static int amd64_non_pod_p ( struct type type) [static]

Definition at line 445 of file amd64-tdep.c.

References TYPE_CODE, TYPE_CODE_STRUCT, and TYPE_N_BASECLASSES.

Referenced by amd64_classify_aggregate().

static const char* amd64_pseudo_register_name ( struct gdbarch gdbarch,
int  regnum 
) [static]
static struct value* amd64_pseudo_register_read_value ( struct gdbarch gdbarch,
struct regcache regcache,
int  regnum 
) [static, read]
static void amd64_pseudo_register_write ( struct gdbarch gdbarch,
struct regcache regcache,
int  regnum,
const gdb_byte buf 
) [static]
static CORE_ADDR amd64_push_arguments ( struct regcache regcache,
int  nargs,
struct value **  args,
CORE_ADDR  sp,
int  struct_return 
) [static]
static CORE_ADDR amd64_push_dummy_call ( struct gdbarch gdbarch,
struct value function,
struct regcache regcache,
CORE_ADDR  bp_addr,
int  nargs,
struct value **  args,
CORE_ADDR  sp,
int  struct_return,
CORE_ADDR  struct_addr 
) [static]
static struct regset* amd64_regset_from_core_section ( struct gdbarch gdbarch,
const char *  sect_name,
size_t  sect_size 
) [static, read]
static void amd64_relocate_instruction ( struct gdbarch gdbarch,
CORE_ADDR to,
CORE_ADDR  oldloc 
) [static]
static int amd64_ret_p ( const struct amd64_insn details) [static]

Definition at line 1362 of file amd64-tdep.c.

References amd64_insn::opcode_offset, and amd64_insn::raw_insn.

Referenced by amd64_displaced_step_fixup().

static enum return_value_convention amd64_return_value ( struct gdbarch gdbarch,
struct value function,
struct type type,
struct regcache regcache,
gdb_byte readbuf,
const gdb_byte writebuf 
) [static]
static struct amd64_frame_cache* amd64_sigtramp_frame_cache ( struct frame_info this_frame,
void **  this_cache 
) [static, read]
static struct value* amd64_sigtramp_frame_prev_register ( struct frame_info this_frame,
void **  this_cache,
int  regnum 
) [static, read]

Definition at line 2502 of file amd64-tdep.c.

References amd64_frame_prev_register(), and amd64_sigtramp_frame_cache().

static int amd64_sigtramp_frame_sniffer ( const struct frame_unwind self,
struct frame_info this_frame,
void **  this_cache 
) [static]
static void amd64_sigtramp_frame_this_id ( struct frame_info this_frame,
void **  this_cache,
struct frame_id this_id 
) [static]
static enum unwind_stop_reason amd64_sigtramp_frame_unwind_stop_reason ( struct frame_info this_frame,
void **  this_cache 
) [static]

Definition at line 2476 of file amd64-tdep.c.

References amd64_sigtramp_frame_cache(), and amd64_frame_cache::base_p.

static gdb_byte* amd64_skip_prefixes ( gdb_byte insn) [static]

Definition at line 1025 of file amd64-tdep.c.

Referenced by amd64_get_insn_details(), and amd64_relocate_instruction().

static CORE_ADDR amd64_skip_prologue ( struct gdbarch gdbarch,
CORE_ADDR  start_pc 
) [static]
static CORE_ADDR amd64_skip_xmm_prologue ( CORE_ADDR  pc,
CORE_ADDR  start_pc 
) [static]
static void amd64_supply_fpregset ( const struct regset regset,
struct regcache regcache,
int  regnum,
const void *  fpregs,
size_t  len 
) [static]
void amd64_supply_fxsave ( struct regcache regcache,
int  regnum,
const void *  fxsave 
)
void amd64_supply_xsave ( struct regcache regcache,
int  regnum,
const void *  xsave 
)
static void amd64_supply_xstateregset ( const struct regset regset,
struct regcache regcache,
int  regnum,
const void *  xstateregs,
size_t  len 
) [static]

Definition at line 2734 of file amd64-tdep.c.

References amd64_supply_xsave().

Referenced by amd64_regset_from_core_section().

static int amd64_syscall_p ( const struct amd64_insn insn,
int lengthp 
) [static]
static CORE_ADDR amd64_x32_analyze_stack_align ( CORE_ADDR  pc,
CORE_ADDR  current_pc,
struct amd64_frame_cache cache 
) [static]
void amd64_x32_init_abi ( struct gdbarch_info  info,
struct gdbarch gdbarch 
)
static struct type* amd64_x32_pseudo_register_type ( struct gdbarch gdbarch,
int  regnum 
) [static, read]
static void append_insns ( CORE_ADDR to,
ULONGEST  len,
const gdb_byte buf 
) [static]

Definition at line 1562 of file amd64-tdep.c.

References len, and target_write_memory().

Referenced by amd64_relocate_instruction().

static void fixup_displaced_copy ( struct gdbarch gdbarch,
struct displaced_step_closure dsc,
CORE_ADDR  from,
CORE_ADDR  to,
struct regcache regs 
) [static]
static void fixup_riprel ( struct gdbarch gdbarch,
struct displaced_step_closure dsc,
CORE_ADDR  from,
CORE_ADDR  to,
struct regcache regs 
) [static]
static int rex_prefix_p ( gdb_byte  pfx) [static]

Definition at line 1015 of file amd64-tdep.c.

Referenced by amd64_get_insn_details().

static int rip_relative_offset ( struct amd64_insn insn) [static]

Definition at line 1545 of file amd64-tdep.c.

References amd64_insn::modrm_offset, and amd64_insn::raw_insn.

Referenced by amd64_relocate_instruction().


Variable Documentation

const int amd64_arch_regmap[16] [static]
Initial value:
  (sizeof (amd64_arch_regmap) / sizeof (amd64_arch_regmap[0]))

Definition at line 218 of file amd64-tdep.c.

const char* amd64_byte_names[] [static]
Initial value:
{
  "al", "bl", "cl", "dl", "sil", "dil", "bpl", "spl",
  "r8l", "r9l", "r10l", "r11l", "r12l", "r13l", "r14l", "r15l",
  "ah", "bh", "ch", "dh"
}

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

int amd64_dwarf_regmap[] [static]

Definition at line 98 of file amd64-tdep.c.

Referenced by amd64_dwarf_reg_to_regnum().

Initial value:
  (sizeof (amd64_dwarf_regmap) / sizeof (amd64_dwarf_regmap[0]))

Definition at line 171 of file amd64-tdep.c.

Referenced by amd64_dwarf_reg_to_regnum().

const char* amd64_dword_names[] [static]
Initial value:
{
  "eax", "ebx", "ecx", "edx", "esi", "edi", "ebp", "esp", 
  "r8d", "r9d", "r10d", "r11d", "r12d", "r13d", "r14d", "r15d",
  "eip"
}

Definition at line 254 of file amd64-tdep.c.

struct frame_base amd64_frame_base [static]
Initial value:

Definition at line 2561 of file amd64-tdep.c.

const char* amd64_register_names[] [static]
Initial value:
 
{
  "rax", "rbx", "rcx", "rdx", "rsi", "rdi", "rbp", "rsp",

  
  "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
  "rip", "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",
  "xmm8", "xmm9", "xmm10", "xmm11", "xmm12", "xmm13", "xmm14", "xmm15",
  "mxcsr",
}

Definition at line 61 of file amd64-tdep.c.

Referenced by amd64_init_abi().

const char* amd64_word_names[] [static]
Initial value:
{
  "ax", "bx", "cx", "dx", "si", "di", "bp", "", 
  "r8w", "r9w", "r10w", "r11w", "r12w", "r13w", "r14w", "r15w"
}

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

const char* amd64_ymm_names[] [static]
Initial value:
 
{
  "ymm0", "ymm1", "ymm2", "ymm3",
  "ymm4", "ymm5", "ymm6", "ymm7",
  "ymm8", "ymm9", "ymm10", "ymm11",
  "ymm12", "ymm13", "ymm14", "ymm15"
}

Definition at line 79 of file amd64-tdep.c.

Referenced by amd64_pseudo_register_name().

const char* amd64_ymmh_names[] [static]
Initial value:
 
{
  "ymm0h", "ymm1h", "ymm2h", "ymm3h",
  "ymm4h", "ymm5h", "ymm6h", "ymm7h",
  "ymm8h", "ymm9h", "ymm10h", "ymm11h",
  "ymm12h", "ymm13h", "ymm14h", "ymm15h"
}

Definition at line 87 of file amd64-tdep.c.

Referenced by amd64_init_abi().

const unsigned char onebyte_has_modrm[256] [static]
Initial value:
 {
  
  
   1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0, 
   1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0, 
   1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0, 
   1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0, 
   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 
   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 
   0,0,1,1,0,0,0,0,0,1,0,1,0,0,0,0, 
   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 
   1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 
   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 
   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 
   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 
   1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0, 
   1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1, 
   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 
   0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1  
  
  
}

Definition at line 966 of file amd64-tdep.c.

const unsigned char twobyte_has_modrm[256] [static]
Initial value:
 {
  
  
   1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,1, 
   1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 
   1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1, 
   0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, 
   1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 
   1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 
   1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 
   1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1, 
   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 
   1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 
   0,0,0,1,1,1,1,1,0,0,0,1,1,1,1,1, 
   1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1, 
   1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, 
   1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 
   1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 
   1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0  
  
  
}

Definition at line 989 of file amd64-tdep.c.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines