GDB (xrefs)
Classes | Defines | Enumerations | Functions | Variables
/home/stan/gdb/src/gdb/tilegx-tdep.c File Reference
#include "defs.h"
#include "frame.h"
#include "frame-base.h"
#include "frame-unwind.h"
#include "dwarf2-frame.h"
#include "trad-frame.h"
#include "symtab.h"
#include "gdbtypes.h"
#include "gdbcmd.h"
#include "gdbcore.h"
#include "value.h"
#include "dis-asm.h"
#include "inferior.h"
#include "gdb_string.h"
#include "gdb_assert.h"
#include "arch-utils.h"
#include "floatformat.h"
#include "regcache.h"
#include "regset.h"
#include "doublest.h"
#include "osabi.h"
#include "linux-tdep.h"
#include "objfiles.h"
#include "solib-svr4.h"
#include "tilegx-tdep.h"
#include "opcode/tilegx.h"

Go to the source code of this file.

Classes

struct  tilegx_frame_cache
struct  tilegx_reverse_regs

Defines

#define INT_SWINT_1_SIGRETURN   (~0)

Enumerations

enum  reverse_state { REVERSE_STATE_REGISTER, REVERSE_STATE_VALUE, REVERSE_STATE_UNKNOWN }

Functions

static const char * tilegx_register_name (struct gdbarch *gdbarch, int regnum)
static struct typetilegx_register_type (struct gdbarch *gdbarch, int regnum)
static int tilegx_dwarf2_reg_to_regnum (struct gdbarch *gdbarch, int num)
static int tilegx_type_is_scalar (struct type *t)
static int tilegx_use_struct_convention (struct type *type)
static void tilegx_extract_return_value (struct type *type, struct regcache *regcache, gdb_byte *valbuf)
static void tilegx_store_return_value (struct type *type, struct regcache *regcache, const void *valbuf)
static enum return_value_convention tilegx_return_value (struct gdbarch *gdbarch, struct value *function, struct type *type, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf)
static CORE_ADDR tilegx_frame_align (struct gdbarch *gdbarch, CORE_ADDR addr)
static CORE_ADDR tilegx_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 CORE_ADDR tilegx_analyze_prologue (struct gdbarch *gdbarch, CORE_ADDR start_addr, CORE_ADDR end_addr, struct tilegx_frame_cache *cache, struct frame_info *next_frame)
static CORE_ADDR tilegx_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR start_pc)
static int tilegx_in_function_epilogue_p (struct gdbarch *gdbarch, CORE_ADDR pc)
static int tilegx_get_longjmp_target (struct frame_info *frame, CORE_ADDR *pc)
static void tilegx_write_pc (struct regcache *regcache, CORE_ADDR pc)
static const unsigned char * tilegx_breakpoint_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr, int *lenptr)
static struct tilegx_frame_cachetilegx_frame_cache (struct frame_info *this_frame, void **this_cache)
static struct valuetilegx_frame_prev_register (struct frame_info *this_frame, void **this_cache, int regnum)
static void tilegx_frame_this_id (struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
static CORE_ADDR tilegx_frame_base_address (struct frame_info *this_frame, void **this_cache)
static CORE_ADDR tilegx_unwind_sp (struct gdbarch *gdbarch, struct frame_info *next_frame)
static CORE_ADDR tilegx_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
static struct frame_id tilegx_unwind_dummy_id (struct gdbarch *gdbarch, struct frame_info *this_frame)
static int tilegx_cannot_reference_register (struct gdbarch *gdbarch, int regno)
static struct gdbarchtilegx_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
void _initialize_tilegx_tdep (void)

Variables

static struct tilegx_reverse_regs template_reverse_regs [TILEGX_NUM_PHYS_REGS]
static struct frame_unwind tilegx_frame_unwind
static struct frame_base tilegx_frame_base
initialize_file_ftype _initialize_tilegx_tdep

Define Documentation

#define INT_SWINT_1_SIGRETURN   (~0)

Definition at line 823 of file tilegx-tdep.c.

Referenced by tilegx_write_pc().


Enumeration Type Documentation

Enumerator:
REVERSE_STATE_REGISTER 
REVERSE_STATE_VALUE 
REVERSE_STATE_UNKNOWN 

Definition at line 60 of file tilegx-tdep.c.


Function Documentation

void _initialize_tilegx_tdep ( void  )
static CORE_ADDR tilegx_analyze_prologue ( struct gdbarch gdbarch,
CORE_ADDR  start_addr,
CORE_ADDR  end_addr,
struct tilegx_frame_cache cache,
struct frame_info next_frame 
) [static]
static const unsigned char* tilegx_breakpoint_from_pc ( struct gdbarch gdbarch,
CORE_ADDR pcptr,
int lenptr 
) [static]

Definition at line 853 of file tilegx-tdep.c.

Referenced by tilegx_gdbarch_init().

static int tilegx_cannot_reference_register ( struct gdbarch gdbarch,
int  regno 
) [static]

Definition at line 978 of file tilegx-tdep.c.

References TILEGX_FAULTNUM_REGNUM, TILEGX_NUM_EASY_REGS, and TILEGX_PC_REGNUM.

Referenced by tilegx_gdbarch_init().

static int tilegx_dwarf2_reg_to_regnum ( struct gdbarch gdbarch,
int  num 
) [static]

Definition at line 183 of file tilegx-tdep.c.

Referenced by tilegx_gdbarch_init().

static void tilegx_extract_return_value ( struct type type,
struct regcache regcache,
gdb_byte valbuf 
) [static]

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

References len, regcache_raw_read(), regnum, TILEGX_R0_REGNUM, tilegx_reg_size, and TYPE_LENGTH.

Referenced by tilegx_return_value().

static CORE_ADDR tilegx_frame_align ( struct gdbarch gdbarch,
CORE_ADDR  addr 
) [static]

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

Referenced by tilegx_gdbarch_init(), and tilegx_push_dummy_call().

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

Definition at line 927 of file tilegx-tdep.c.

References tilegx_frame_cache::base, and tilegx_frame_cache().

static struct tilegx_frame_cache* tilegx_frame_cache ( struct frame_info this_frame,
void **  this_cache 
) [static, read]
static struct value* tilegx_frame_prev_register ( struct frame_info this_frame,
void **  this_cache,
int  regnum 
) [static, read]
static void tilegx_frame_this_id ( struct frame_info this_frame,
void **  this_cache,
struct frame_id this_id 
) [static]
static struct gdbarch* tilegx_gdbarch_init ( struct gdbarch_info  info,
struct gdbarch_list arches 
) [static, read]

Definition at line 990 of file tilegx-tdep.c.

References gdbarch_info::abfd, core_addr_lessthan(), dwarf2_append_unwinders(), frame_base_set_default(), frame_unwind_append_unwinder(), gdbarch_list::gdbarch, gdbarch_alloc(), gdbarch_init_osabi(), gdbarch_list_lookup_by_info(), gdbarch_ptr_bit(), gdbarch_list::next, set_gdbarch_addr_bit(), set_gdbarch_breakpoint_from_pc(), set_gdbarch_cannot_fetch_register(), set_gdbarch_cannot_store_register(), set_gdbarch_double_bit(), set_gdbarch_dummy_id(), set_gdbarch_dwarf2_reg_to_regnum(), set_gdbarch_float_bit(), set_gdbarch_frame_align(), set_gdbarch_get_longjmp_target(), set_gdbarch_in_function_epilogue_p(), set_gdbarch_inner_than(), set_gdbarch_int_bit(), set_gdbarch_long_bit(), set_gdbarch_long_double_bit(), set_gdbarch_long_long_bit(), set_gdbarch_num_pseudo_regs(), set_gdbarch_num_regs(), set_gdbarch_pc_regnum(), set_gdbarch_print_insn(), set_gdbarch_ptr_bit(), set_gdbarch_push_dummy_call(), set_gdbarch_register_name(), set_gdbarch_register_type(), set_gdbarch_return_value(), set_gdbarch_short_bit(), set_gdbarch_skip_prologue(), set_gdbarch_sp_regnum(), set_gdbarch_unwind_pc(), set_gdbarch_unwind_sp(), set_gdbarch_write_pc(), tilegx_breakpoint_from_pc(), tilegx_cannot_reference_register(), tilegx_dwarf2_reg_to_regnum(), tilegx_frame_align(), tilegx_get_longjmp_target(), tilegx_in_function_epilogue_p(), TILEGX_NUM_REGS, TILEGX_PC_REGNUM, tilegx_push_dummy_call(), tilegx_register_name(), tilegx_register_type(), tilegx_return_value(), tilegx_skip_prologue(), TILEGX_SP_REGNUM, tilegx_unwind_dummy_id(), tilegx_unwind_pc(), tilegx_unwind_sp(), and tilegx_write_pc().

Referenced by _initialize_tilegx_tdep().

static int tilegx_get_longjmp_target ( struct frame_info frame,
CORE_ADDR pc 
) [static]
static int tilegx_in_function_epilogue_p ( struct gdbarch gdbarch,
CORE_ADDR  pc 
) [static]

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

References find_pc_partial_function(), and ULONGEST.

Referenced by tilegx_gdbarch_init().

static CORE_ADDR tilegx_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 const char* tilegx_register_name ( struct gdbarch gdbarch,
int  regnum 
) [static]

Definition at line 146 of file tilegx-tdep.c.

References internal_error(), regnum, and TILEGX_NUM_REGS.

Referenced by tilegx_gdbarch_init().

static struct type* tilegx_register_type ( struct gdbarch gdbarch,
int  regnum 
) [static, read]
static enum return_value_convention tilegx_return_value ( struct gdbarch gdbarch,
struct value function,
struct type type,
struct regcache regcache,
gdb_byte readbuf,
const gdb_byte writebuf 
) [static]
static CORE_ADDR tilegx_skip_prologue ( struct gdbarch gdbarch,
CORE_ADDR  start_pc 
) [static]
static void tilegx_store_return_value ( struct type type,
struct regcache regcache,
const void *  valbuf 
) [static]
static int tilegx_type_is_scalar ( struct type t) [static]

Definition at line 192 of file tilegx-tdep.c.

References TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_STRUCT, and TYPE_CODE_UNION.

Referenced by tilegx_use_struct_convention().

static struct frame_id tilegx_unwind_dummy_id ( struct gdbarch gdbarch,
struct frame_info this_frame 
) [static, read]
static CORE_ADDR tilegx_unwind_pc ( struct gdbarch gdbarch,
struct frame_info next_frame 
) [static]

Definition at line 959 of file tilegx-tdep.c.

References frame_unwind_register_unsigned(), and TILEGX_PC_REGNUM.

Referenced by tilegx_gdbarch_init().

static CORE_ADDR tilegx_unwind_sp ( struct gdbarch gdbarch,
struct frame_info next_frame 
) [static]

Definition at line 953 of file tilegx-tdep.c.

References frame_unwind_register_unsigned(), and TILEGX_SP_REGNUM.

Referenced by tilegx_gdbarch_init().

static int tilegx_use_struct_convention ( struct type type) [static]
static void tilegx_write_pc ( struct regcache regcache,
CORE_ADDR  pc 
) [static]

Variable Documentation

Definition at line 75 of file tilegx-tdep.c.

struct frame_base tilegx_frame_base [static]
Initial value:

Definition at line 945 of file tilegx-tdep.c.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines