GDB (xrefs)
Classes | Enumerations | Functions | Variables
/tmp/gdb-7.10/gdb/rx-tdep.c File Reference
#include "defs.h"
#include "arch-utils.h"
#include "prologue-value.h"
#include "target.h"
#include "regcache.h"
#include "opcode/rx.h"
#include "dis-asm.h"
#include "gdbtypes.h"
#include "frame.h"
#include "frame-unwind.h"
#include "frame-base.h"
#include "value.h"
#include "gdbcore.h"
#include "dwarf2-frame.h"
#include "elf/rx.h"
#include "elf-bfd.h"

Go to the source code of this file.

Classes

struct  gdbarch_tdep
 
struct  rx_prologue
 
struct  rx_get_opcode_byte_handle
 

Enumerations

enum  {
  RX_SP_REGNUM = 0, RX_R1_REGNUM = 1, RX_R4_REGNUM = 4, RX_FP_REGNUM = 6,
  RX_R15_REGNUM = 15, RX_USP_REGNUM = 16, RX_PSW_REGNUM = 18, RX_PC_REGNUM = 19,
  RX_BPSW_REGNUM = 21, RX_BPC_REGNUM = 22, RX_FPSW_REGNUM = 24, RX_ACC_REGNUM = 25,
  RX_NUM_REGS = 26
}
 
enum  rx_frame_type { RX_FRAME_TYPE_NORMAL, RX_FRAME_TYPE_EXCEPTION, RX_FRAME_TYPE_FAST_INTERRUPT }
 

Functions

static const char * rx_register_name (struct gdbarch *gdbarch, int regnr)
 
static struct typerx_register_type (struct gdbarch *gdbarch, int reg_nr)
 
static void check_for_saved (void *result_untyped, pv_t addr, CORE_ADDR size, pv_t value)
 
static int rx_get_opcode_byte (void *handle)
 
static void rx_analyze_prologue (CORE_ADDR start_pc, CORE_ADDR limit_pc, enum rx_frame_type frame_type, struct rx_prologue *result)
 
static CORE_ADDR rx_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
 
static struct rx_prologuerx_analyze_frame_prologue (struct frame_info *this_frame, enum rx_frame_type frame_type, void **this_prologue_cache)
 
static enum rx_frame_type rx_frame_type (struct frame_info *this_frame, void **this_cache)
 
static CORE_ADDR rx_frame_base (struct frame_info *this_frame, void **this_cache)
 
static void rx_frame_this_id (struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
 
static struct valuerx_frame_prev_register (struct frame_info *this_frame, void **this_cache, int regnum)
 
static int normal_frame_p (enum rx_frame_type frame_type)
 
static int exception_frame_p (enum rx_frame_type frame_type)
 
static int rx_frame_sniffer_common (const struct frame_unwind *self, struct frame_info *this_frame, void **this_cache, int(*sniff_p)(enum rx_frame_type))
 
static int rx_frame_sniffer (const struct frame_unwind *self, struct frame_info *this_frame, void **this_cache)
 
static int rx_exception_sniffer (const struct frame_unwind *self, struct frame_info *this_frame, void **this_cache)
 
static CORE_ADDR rx_unwind_pc (struct gdbarch *gdbarch, struct frame_info *this_frame)
 
static CORE_ADDR rx_unwind_sp (struct gdbarch *gdbarch, struct frame_info *this_frame)
 
static struct frame_id rx_dummy_id (struct gdbarch *gdbarch, struct frame_info *this_frame)
 
static CORE_ADDR rx_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 enum return_value_convention rx_return_value (struct gdbarch *gdbarch, struct value *function, struct type *valtype, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf)
 
static const gdb_byterx_breakpoint_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr, int *lenptr)
 
static int rx_dwarf_reg_to_regnum (struct gdbarch *gdbarch, int reg)
 
static struct gdbarchrx_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
 
void _initialize_rx_tdep (void)
 

Variables

static const struct frame_unwind rx_frame_unwind
 
static const struct frame_unwind rx_exception_unwind
 
initialize_file_ftype _initialize_rx_tdep
 

Enumeration Type Documentation

anonymous enum
Enumerator
RX_SP_REGNUM 
RX_R1_REGNUM 
RX_R4_REGNUM 
RX_FP_REGNUM 
RX_R15_REGNUM 
RX_USP_REGNUM 
RX_PSW_REGNUM 
RX_PC_REGNUM 
RX_BPSW_REGNUM 
RX_BPC_REGNUM 
RX_FPSW_REGNUM 
RX_ACC_REGNUM 
RX_NUM_REGS 

Definition at line 41 of file rx-tdep.c.

Enumerator
RX_FRAME_TYPE_NORMAL 
RX_FRAME_TYPE_EXCEPTION 
RX_FRAME_TYPE_FAST_INTERRUPT 

Definition at line 59 of file rx-tdep.c.

Function Documentation

void _initialize_rx_tdep ( void  )

Definition at line 1158 of file rx-tdep.c.

References register_gdbarch_init(), and rx_gdbarch_init().

static void check_for_saved ( void *  result_untyped,
pv_t  addr,
CORE_ADDR  size,
pv_t  value 
)
static
static int exception_frame_p ( enum rx_frame_type  frame_type)
static

Definition at line 613 of file rx-tdep.c.

References RX_FRAME_TYPE_EXCEPTION, and RX_FRAME_TYPE_FAST_INTERRUPT.

Referenced by rx_exception_sniffer().

static int normal_frame_p ( enum rx_frame_type  frame_type)
static

Definition at line 604 of file rx-tdep.c.

References RX_FRAME_TYPE_NORMAL.

Referenced by rx_frame_sniffer().

static struct rx_prologue* rx_analyze_frame_prologue ( struct frame_info this_frame,
enum rx_frame_type  frame_type,
void **  this_prologue_cache 
)
static
static void rx_analyze_prologue ( CORE_ADDR  start_pc,
CORE_ADDR  limit_pc,
enum rx_frame_type  frame_type,
struct rx_prologue result 
)
static
static const gdb_byte* rx_breakpoint_from_pc ( struct gdbarch gdbarch,
CORE_ADDR pcptr,
int lenptr 
)
static

Definition at line 994 of file rx-tdep.c.

Referenced by rx_gdbarch_init().

static struct frame_id rx_dummy_id ( struct gdbarch gdbarch,
struct frame_info this_frame 
)
static

Definition at line 721 of file rx-tdep.c.

References frame_id_build(), get_frame_pc(), get_frame_register_unsigned(), and RX_SP_REGNUM.

Referenced by rx_gdbarch_init().

static int rx_dwarf_reg_to_regnum ( struct gdbarch gdbarch,
int  reg 
)
static

Definition at line 1004 of file rx-tdep.c.

References _, internal_error(), RX_PC_REGNUM, and RX_PSW_REGNUM.

Referenced by rx_gdbarch_init().

static int rx_exception_sniffer ( const struct frame_unwind self,
struct frame_info this_frame,
void **  this_cache 
)
static

Definition at line 666 of file rx-tdep.c.

References exception_frame_p(), and rx_frame_sniffer_common().

static CORE_ADDR rx_frame_base ( struct frame_info this_frame,
void **  this_cache 
)
static
static struct value* rx_frame_prev_register ( struct frame_info this_frame,
void **  this_cache,
int  regnum 
)
static
static int rx_frame_sniffer ( const struct frame_unwind self,
struct frame_info this_frame,
void **  this_cache 
)
static

Definition at line 655 of file rx-tdep.c.

References normal_frame_p(), and rx_frame_sniffer_common().

static int rx_frame_sniffer_common ( const struct frame_unwind self,
struct frame_info this_frame,
void **  this_cache,
int(*)(enum rx_frame_type sniff_p 
)
static
static void rx_frame_this_id ( struct frame_info this_frame,
void **  this_cache,
struct frame_id this_id 
)
static

Definition at line 539 of file rx-tdep.c.

References frame_id_build(), get_frame_func(), and rx_frame_base().

static enum rx_frame_type rx_frame_type ( struct frame_info this_frame,
void **  this_cache 
)
static
static struct gdbarch* rx_gdbarch_init ( struct gdbarch_info  info,
struct gdbarch_list arches 
)
static

Definition at line 1020 of file rx-tdep.c.

References gdbarch_info::abfd, append_flags_type_flag(), arch_flags_type(), core_addr_lessthan(), dwarf2_append_unwinders(), gdbarch_tdep::elf_flags, floatformats_ieee_double, floatformats_ieee_single, frame_unwind_append_unwinder(), gdbarch_list::gdbarch, gdbarch_alloc(), gdbarch_list_lookup_by_info(), gdbarch_list::next, rx_breakpoint_from_pc(), rx_dummy_id(), rx_dwarf_reg_to_regnum(), gdbarch_tdep::rx_fpsw_type, RX_NUM_REGS, RX_PC_REGNUM, gdbarch_tdep::rx_psw_type, rx_push_dummy_call(), rx_register_name(), rx_register_type(), rx_return_value(), rx_skip_prologue(), RX_SP_REGNUM, rx_unwind_pc(), rx_unwind_sp(), set_gdbarch_breakpoint_from_pc(), set_gdbarch_char_signed(), set_gdbarch_decr_pc_after_break(), set_gdbarch_double_bit(), set_gdbarch_double_format(), set_gdbarch_dummy_id(), set_gdbarch_dwarf2_reg_to_regnum(), set_gdbarch_float_bit(), set_gdbarch_float_format(), set_gdbarch_inner_than(), set_gdbarch_int_bit(), set_gdbarch_long_bit(), set_gdbarch_long_double_bit(), set_gdbarch_long_double_format(), 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_vbit_in_delta(), and xmalloc().

Referenced by _initialize_rx_tdep().

static int rx_get_opcode_byte ( void *  handle)
static

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

References rx_get_opcode_byte_handle::pc, status, and target_read_memory().

Referenced by rx_analyze_prologue(), and rx_frame_type().

static CORE_ADDR rx_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* rx_register_name ( struct gdbarch gdbarch,
int  regnr 
)
static

Definition at line 118 of file rx-tdep.c.

Referenced by rx_gdbarch_init().

static struct type* rx_register_type ( struct gdbarch gdbarch,
int  reg_nr 
)
static
static enum return_value_convention rx_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 rx_skip_prologue ( struct gdbarch gdbarch,
CORE_ADDR  pc 
)
static
static CORE_ADDR rx_unwind_pc ( struct gdbarch gdbarch,
struct frame_info this_frame 
)
static

Definition at line 701 of file rx-tdep.c.

References frame_unwind_register_unsigned(), and RX_PC_REGNUM.

Referenced by rx_gdbarch_init().

static CORE_ADDR rx_unwind_sp ( struct gdbarch gdbarch,
struct frame_info this_frame 
)
static

Definition at line 711 of file rx-tdep.c.

References frame_unwind_register_unsigned(), and RX_SP_REGNUM.

Referenced by rx_gdbarch_init().

Variable Documentation

initialize_file_ftype _initialize_rx_tdep
const struct frame_unwind rx_exception_unwind
static
Initial value:
= {
NULL,
}
static struct value * rx_frame_prev_register(struct frame_info *this_frame, void **this_cache, int regnum)
Definition: rx-tdep.c:549
static void rx_frame_this_id(struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
Definition: rx-tdep.c:539
static int rx_exception_sniffer(const struct frame_unwind *self, struct frame_info *this_frame, void **this_cache)
Definition: rx-tdep.c:666
enum unwind_stop_reason default_frame_unwind_stop_reason(struct frame_info *this_frame, void **this_cache)
Definition: frame-unwind.c:180

Definition at line 689 of file rx-tdep.c.

const struct frame_unwind rx_frame_unwind
static
Initial value:
= {
NULL,
}
static struct value * rx_frame_prev_register(struct frame_info *this_frame, void **this_cache, int regnum)
Definition: rx-tdep.c:549
static void rx_frame_this_id(struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
Definition: rx-tdep.c:539
static int rx_frame_sniffer(const struct frame_unwind *self, struct frame_info *this_frame, void **this_cache)
Definition: rx-tdep.c:655
enum unwind_stop_reason default_frame_unwind_stop_reason(struct frame_info *this_frame, void **this_cache)
Definition: frame-unwind.c:180

Definition at line 677 of file rx-tdep.c.