GDB (xrefs)
Classes | Functions | Variables
/home/stan/gdb/src/gdb/frv-tdep.c File Reference
#include "defs.h"
#include "gdb_string.h"
#include "inferior.h"
#include "gdbcore.h"
#include "arch-utils.h"
#include "regcache.h"
#include "frame.h"
#include "frame-unwind.h"
#include "frame-base.h"
#include "trad-frame.h"
#include "dis-asm.h"
#include "gdb_assert.h"
#include "sim-regno.h"
#include "gdb/sim-frv.h"
#include "opcodes/frv-desc.h"
#include "symtab.h"
#include "elf-bfd.h"
#include "elf/frv.h"
#include "osabi.h"
#include "infcall.h"
#include "solib.h"
#include "frv-tdep.h"

Go to the source code of this file.

Classes

struct  frv_unwind_cache
struct  gdbarch_tdep

Functions

void _initialize_frv_tdep (void)
enum frv_abi frv_abi (struct gdbarch *gdbarch)
int frv_fdpic_loadmap_addresses (struct gdbarch *gdbarch, CORE_ADDR *interp_addr, CORE_ADDR *exec_addr)
static struct gdbarch_tdepnew_variant (void)
static void set_variant_num_gprs (struct gdbarch_tdep *var, int num_gprs)
static void set_variant_num_fprs (struct gdbarch_tdep *var, int num_fprs)
static void set_variant_abi_fdpic (struct gdbarch_tdep *var)
static void set_variant_scratch_registers (struct gdbarch_tdep *var)
static const char * frv_register_name (struct gdbarch *gdbarch, int reg)
static struct typefrv_register_type (struct gdbarch *gdbarch, int reg)
static enum register_status frv_pseudo_register_read (struct gdbarch *gdbarch, struct regcache *regcache, int reg, gdb_byte *buffer)
static void frv_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache, int reg, const gdb_byte *buffer)
static int frv_register_sim_regno (struct gdbarch *gdbarch, int reg)
static const unsigned char * frv_breakpoint_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr, int *lenp)
static CORE_ADDR frv_adjust_breakpoint_address (struct gdbarch *gdbarch, CORE_ADDR bpaddr)
static int is_caller_saves_reg (int reg)
static int is_callee_saves_reg (int reg)
static int is_argument_reg (int reg)
static CORE_ADDR frv_analyze_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, struct frame_info *this_frame, struct frv_unwind_cache *info)
static CORE_ADDR frv_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
static CORE_ADDR frv_skip_main_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
static struct frv_unwind_cachefrv_frame_unwind_cache (struct frame_info *this_frame, void **this_prologue_cache)
static void frv_extract_return_value (struct type *type, struct regcache *regcache, gdb_byte *valbuf)
static CORE_ADDR frv_frame_align (struct gdbarch *gdbarch, CORE_ADDR sp)
static CORE_ADDR find_func_descr (struct gdbarch *gdbarch, CORE_ADDR entry_point)
static CORE_ADDR frv_convert_from_func_ptr_addr (struct gdbarch *gdbarch, CORE_ADDR addr, struct target_ops *targ)
static CORE_ADDR frv_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 void frv_store_return_value (struct type *type, struct regcache *regcache, const gdb_byte *valbuf)
static enum return_value_convention frv_return_value (struct gdbarch *gdbarch, struct value *function, struct type *valtype, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf)
static CORE_ADDR frv_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
static void frv_frame_this_id (struct frame_info *this_frame, void **this_prologue_cache, struct frame_id *this_id)
static struct valuefrv_frame_prev_register (struct frame_info *this_frame, void **this_prologue_cache, int regnum)
static CORE_ADDR frv_frame_base_address (struct frame_info *this_frame, void **this_cache)
static CORE_ADDR frv_unwind_sp (struct gdbarch *gdbarch, struct frame_info *next_frame)
static struct frame_id frv_dummy_id (struct gdbarch *gdbarch, struct frame_info *this_frame)
static struct gdbarchfrv_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)

Variables

static const int max_instrs_per_bundle = 8
static const int frv_instr_size = 4
static struct frame_unwind frv_frame_unwind
static struct frame_base frv_frame_base

Function Documentation

void _initialize_frv_tdep ( void  )
static CORE_ADDR find_func_descr ( struct gdbarch gdbarch,
CORE_ADDR  entry_point 
) [static]
enum frv_abi frv_abi ( struct gdbarch gdbarch)

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

References gdbarch_tdep::frv_abi, and gdbarch_tdep().

static CORE_ADDR frv_adjust_breakpoint_address ( struct gdbarch gdbarch,
CORE_ADDR  bpaddr 
) [static]
static CORE_ADDR frv_analyze_prologue ( struct gdbarch gdbarch,
CORE_ADDR  pc,
struct frame_info this_frame,
struct frv_unwind_cache info 
) [static]
static const unsigned char* frv_breakpoint_from_pc ( struct gdbarch gdbarch,
CORE_ADDR pcptr,
int lenp 
) [static]

Definition at line 430 of file frv-tdep.c.

Referenced by frv_gdbarch_init().

static CORE_ADDR frv_convert_from_func_ptr_addr ( struct gdbarch gdbarch,
CORE_ADDR  addr,
struct target_ops targ 
) [static]
static struct frame_id frv_dummy_id ( struct gdbarch gdbarch,
struct frame_info this_frame 
) [static, read]

Definition at line 1461 of file frv-tdep.c.

References frame_id_build(), get_frame_pc(), get_frame_register_unsigned(), sp, and sp_regnum.

Referenced by frv_gdbarch_init().

static void frv_extract_return_value ( struct type type,
struct regcache regcache,
gdb_byte valbuf 
) [static]
int frv_fdpic_loadmap_addresses ( struct gdbarch gdbarch,
CORE_ADDR interp_addr,
CORE_ADDR exec_addr 
)
static CORE_ADDR frv_frame_align ( struct gdbarch gdbarch,
CORE_ADDR  sp 
) [static]

Definition at line 1146 of file frv-tdep.c.

References align_down().

Referenced by frv_gdbarch_init().

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

Definition at line 1435 of file frv-tdep.c.

References frv_unwind_cache::base, and frv_frame_unwind_cache().

static struct value* frv_frame_prev_register ( struct frame_info this_frame,
void **  this_prologue_cache,
int  regnum 
) [static, read]
static void frv_frame_this_id ( struct frame_info this_frame,
void **  this_prologue_cache,
struct frame_id this_id 
) [static]
static struct frv_unwind_cache* frv_frame_unwind_cache ( struct frame_info this_frame,
void **  this_prologue_cache 
) [static, read]
static struct gdbarch* frv_gdbarch_init ( struct gdbarch_info  info,
struct gdbarch_list arches 
) [static, read]

Definition at line 1468 of file frv-tdep.c.

References gdbarch_info::abfd, gdbarch_info::bfd_arch_info, core_addr_lessthan(), gdbarch_tdep::elf_flags, fp_regnum, frame_base_set_default(), frame_unwind_append_unwinder(), FRV_ABI_FDPIC, frv_adjust_breakpoint_address(), frv_breakpoint_from_pc(), frv_convert_from_func_ptr_addr(), frv_dummy_id(), frv_fetch_objfile_link_map(), frv_frame_align(), frv_num_pseudo_regs, frv_num_regs, frv_pseudo_register_read(), frv_pseudo_register_write(), frv_push_dummy_call(), frv_register_name(), frv_register_sim_regno(), frv_register_type(), frv_return_value(), frv_skip_main_prologue(), frv_skip_prologue(), frv_so_ops, frv_unwind_pc(), frv_unwind_sp(), gdbarch_list::gdbarch, gdbarch_alloc(), gdbarch_init_osabi(), gdbarch_list_lookup_by_info(), new_variant(), gdbarch_tdep::num_hw_breakpoints, gdbarch_tdep::num_hw_watchpoints, pc_regnum, set_gdbarch_adjust_breakpoint_address(), set_gdbarch_breakpoint_from_pc(), set_gdbarch_convert_from_func_ptr_addr(), set_gdbarch_deprecated_fp_regnum(), set_gdbarch_double_bit(), set_gdbarch_dummy_id(), set_gdbarch_fetch_tls_load_module_address(), set_gdbarch_float_bit(), set_gdbarch_frame_align(), 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_pseudo_register_read(), set_gdbarch_pseudo_register_write(), set_gdbarch_ptr_bit(), set_gdbarch_push_dummy_call(), set_gdbarch_register_name(), set_gdbarch_register_sim_regno(), set_gdbarch_register_type(), set_gdbarch_return_value(), set_gdbarch_short_bit(), set_gdbarch_skip_main_prologue(), set_gdbarch_skip_prologue(), set_gdbarch_sp_regnum(), set_gdbarch_unwind_pc(), set_gdbarch_unwind_sp(), set_solib_ops(), set_variant_abi_fdpic(), set_variant_num_fprs(), set_variant_num_gprs(), set_variant_scratch_registers(), and sp_regnum.

static enum register_status frv_pseudo_register_read ( struct gdbarch gdbarch,
struct regcache regcache,
int  reg,
gdb_byte buffer 
) [static]
static void frv_pseudo_register_write ( struct gdbarch gdbarch,
struct regcache regcache,
int  reg,
const gdb_byte buffer 
) [static]
static CORE_ADDR frv_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* frv_register_name ( struct gdbarch gdbarch,
int  reg 
) [static]

Definition at line 279 of file frv-tdep.c.

References frv_num_pseudo_regs, frv_num_regs, gdbarch_tdep(), and gdbarch_tdep::register_names.

Referenced by frv_gdbarch_init().

static int frv_register_sim_regno ( struct gdbarch gdbarch,
int  reg 
) [static]
static struct type* frv_register_type ( struct gdbarch gdbarch,
int  reg 
) [static, read]
static enum return_value_convention frv_return_value ( struct gdbarch gdbarch,
struct value function,
struct type valtype,
struct regcache regcache,
gdb_byte readbuf,
const gdb_byte writebuf 
) [static]
static CORE_ADDR frv_skip_main_prologue ( struct gdbarch gdbarch,
CORE_ADDR  pc 
) [static]
static CORE_ADDR frv_skip_prologue ( struct gdbarch gdbarch,
CORE_ADDR  pc 
) [static]

Definition at line 985 of file frv-tdep.c.

References find_pc_line(), find_pc_partial_function(), and frv_analyze_prologue().

Referenced by frv_gdbarch_init().

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

Definition at line 1328 of file frv-tdep.c.

References _, internal_error(), len, memcpy(), memset(), regcache_cooked_write(), and TYPE_LENGTH.

Referenced by frv_return_value().

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

Definition at line 1378 of file frv-tdep.c.

References frame_unwind_register_unsigned(), and pc_regnum.

Referenced by frv_gdbarch_init().

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

Definition at line 1450 of file frv-tdep.c.

References frame_unwind_register_unsigned(), and sp_regnum.

Referenced by frv_gdbarch_init().

static int is_argument_reg ( int  reg) [static]

Definition at line 505 of file frv-tdep.c.

Referenced by frv_analyze_prologue().

static int is_callee_saves_reg ( int  reg) [static]

Definition at line 496 of file frv-tdep.c.

Referenced by frv_analyze_prologue().

static int is_caller_saves_reg ( int  reg) [static]

Definition at line 486 of file frv-tdep.c.

Referenced by frv_analyze_prologue().

static struct gdbarch_tdep* new_variant ( void  ) [static, read]
static void set_variant_abi_fdpic ( struct gdbarch_tdep var) [static]
static void set_variant_num_fprs ( struct gdbarch_tdep var,
int  num_fprs 
) [static]
static void set_variant_num_gprs ( struct gdbarch_tdep var,
int  num_gprs 
) [static]
static void set_variant_scratch_registers ( struct gdbarch_tdep var) [static]

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

References gdbarch_tdep::register_names, scr0_regnum, scr1_regnum, scr2_regnum, and scr3_regnum.

Referenced by frv_gdbarch_init().


Variable Documentation

struct frame_base frv_frame_base [static]
Initial value:

Definition at line 1442 of file frv-tdep.c.

struct frame_unwind frv_frame_unwind [static]
const int frv_instr_size = 4 [static]

Definition at line 442 of file frv-tdep.c.

Referenced by frv_adjust_breakpoint_address(), and frv_analyze_prologue().

Definition at line 439 of file frv-tdep.c.

Referenced by frv_adjust_breakpoint_address().

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines