GDB (xrefs)
|
#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_PC_REGNUM = 19, RX_ACC_REGNUM = 25, RX_NUM_REGS = 26 } |
Functions | |
static const char * | rx_register_name (struct gdbarch *gdbarch, int regnr) |
static struct type * | rx_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, struct rx_prologue *result) |
static CORE_ADDR | rx_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc) |
static struct rx_prologue * | rx_analyze_frame_prologue (struct frame_info *this_frame, void **this_prologue_cache) |
static CORE_ADDR | rx_frame_base (struct frame_info *this_frame, void **this_prologue_cache) |
static void | rx_frame_this_id (struct frame_info *this_frame, void **this_prologue_cache, struct frame_id *this_id) |
static struct value * | rx_frame_prev_register (struct frame_info *this_frame, void **this_prologue_cache, int regnum) |
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_byte * | rx_breakpoint_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr, int *lenptr) |
static struct gdbarch * | rx_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) |
void | _initialize_rx_tdep (void) |
Variables | |
static struct frame_unwind | rx_frame_unwind |
initialize_file_ftype | _initialize_rx_tdep |
anonymous enum |
void _initialize_rx_tdep | ( | void | ) |
Definition at line 868 of file rx-tdep.c.
References _initialize_rx_tdep, 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] |
Definition at line 150 of file rx-tdep.c.
References prologue_value::k, prologue_value::kind, pv_is_register(), prologue_value::reg, rx_prologue::reg_offset, register_size(), RX_SP_REGNUM, and target_gdbarch().
Referenced by rx_analyze_prologue().
static struct rx_prologue* rx_analyze_frame_prologue | ( | struct frame_info * | this_frame, |
void ** | this_prologue_cache | ||
) | [static, read] |
Definition at line 373 of file rx-tdep.c.
References FRAME_OBSTACK_ZALLOC, get_frame_func(), get_frame_pc(), and rx_analyze_prologue().
Referenced by rx_frame_base(), and rx_frame_prev_register().
static void rx_analyze_prologue | ( | CORE_ADDR | start_pc, |
CORE_ADDR | limit_pc, | ||
struct rx_prologue * | result | ||
) | [static] |
Definition at line 192 of file rx-tdep.c.
References check_for_saved(), do_cleanups(), rx_prologue::frame_ptr_offset, rx_prologue::frame_size, gdbarch_addr_bit(), rx_prologue::has_frame_ptr, prologue_value::k, make_cleanup_free_pv_area(), make_pv_area(), memset(), rx_get_opcode_byte_handle::pc, pv_add_constant(), pv_area_scan(), pv_area_store(), pv_is_register(), pv_register(), prologue_value::reg, rx_prologue::reg_offset, RX_FP_REGNUM, rx_get_opcode_byte(), RX_NUM_REGS, RX_PC_REGNUM, RX_R1_REGNUM, RX_R4_REGNUM, RX_SP_REGNUM, reg::size, and target_gdbarch().
Referenced by rx_analyze_frame_prologue(), and rx_skip_prologue().
static const gdb_byte* rx_breakpoint_from_pc | ( | struct gdbarch * | gdbarch, |
CORE_ADDR * | pcptr, | ||
int * | lenptr | ||
) | [static] |
Definition at line 760 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, read] |
Definition at line 487 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 CORE_ADDR rx_frame_base | ( | struct frame_info * | this_frame, |
void ** | this_prologue_cache | ||
) | [static] |
Definition at line 399 of file rx-tdep.c.
References rx_prologue::frame_ptr_offset, rx_prologue::frame_size, get_frame_register_unsigned(), rx_prologue::has_frame_ptr, p, rx_analyze_frame_prologue(), RX_FP_REGNUM, RX_SP_REGNUM, and sp.
Referenced by rx_frame_prev_register(), and rx_frame_this_id().
static struct value* rx_frame_prev_register | ( | struct frame_info * | this_frame, |
void ** | this_prologue_cache, | ||
int | regnum | ||
) | [static, read] |
Definition at line 433 of file rx-tdep.c.
References frame_unwind_got_constant(), frame_unwind_got_memory(), frame_unwind_got_register(), get_frame_arch(), p, rx_prologue::reg_offset, register_size(), rx_analyze_frame_prologue(), rx_frame_base(), and RX_SP_REGNUM.
static void rx_frame_this_id | ( | struct frame_info * | this_frame, |
void ** | this_prologue_cache, | ||
struct frame_id * | this_id | ||
) | [static] |
Definition at line 424 of file rx-tdep.c.
References frame_id_build(), get_frame_func(), and rx_frame_base().
static struct gdbarch* rx_gdbarch_init | ( | struct gdbarch_info | info, |
struct gdbarch_list * | arches | ||
) | [static, read] |
Definition at line 769 of file rx-tdep.c.
References gdbarch_info::abfd, 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_NUM_REGS, RX_PC_REGNUM, 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_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 173 of file rx-tdep.c.
References rx_get_opcode_byte_handle::pc, exsummary::status, and target_read_memory().
Referenced by rx_analyze_prologue().
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] |
Definition at line 496 of file rx-tdep.c.
References align_down(), align_up(), check_typedef(), extract_unsigned_integer(), gdb_assert, gdbarch_byte_order(), len, min, regcache_cooked_write_unsigned(), RX_R15_REGNUM, RX_R1_REGNUM, RX_R4_REGNUM, RX_SP_REGNUM, TYPE_CODE, TYPE_CODE_FUNC, TYPE_CODE_METHOD, TYPE_CODE_PTR, TYPE_CODE_STRUCT, TYPE_CODE_UNION, TYPE_FIELD_TYPE, TYPE_LENGTH, TYPE_NFIELDS, TYPE_PROTOTYPED, TYPE_TARGET_TYPE, TYPE_VARARGS, ULONGEST, value_contents_all(), value_type(), write_memory(), and write_memory_unsigned_integer().
Referenced by rx_gdbarch_init().
static const char* rx_register_name | ( | struct gdbarch * | gdbarch, |
int | regnr | ||
) | [static] |
Definition at line 96 of file rx-tdep.c.
Referenced by rx_gdbarch_init().
static struct type* rx_register_type | ( | struct gdbarch * | gdbarch, |
int | reg_nr | ||
) | [static, read] |
Definition at line 132 of file rx-tdep.c.
References builtin_type::builtin_func_ptr, builtin_type(), builtin_type::builtin_unsigned_long, builtin_type::builtin_unsigned_long_long, RX_ACC_REGNUM, and RX_PC_REGNUM.
Referenced by rx_gdbarch_init().
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] |
Definition at line 704 of file rx-tdep.c.
References extract_unsigned_integer(), gdbarch_byte_order(), len, min, offset, regcache_cooked_read_unsigned(), regcache_cooked_write_unsigned(), RETURN_VALUE_REGISTER_CONVENTION, RETURN_VALUE_STRUCT_CONVENTION, RX_R1_REGNUM, store_unsigned_integer(), TYPE_CODE, TYPE_CODE_STRUCT, TYPE_CODE_UNION, TYPE_LENGTH, and ULONGEST.
Referenced by rx_gdbarch_init().
static CORE_ADDR rx_skip_prologue | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | pc | ||
) | [static] |
Definition at line 354 of file rx-tdep.c.
References find_pc_partial_function(), name, rx_prologue::prologue_end, and rx_analyze_prologue().
Referenced by rx_gdbarch_init().
static CORE_ADDR rx_unwind_pc | ( | struct gdbarch * | gdbarch, |
struct frame_info * | this_frame | ||
) | [static] |
Definition at line 467 of file rx-tdep.c.
References frame_unwind_register_unsigned(), RX_PC_REGNUM, and ULONGEST.
Referenced by rx_gdbarch_init().
static CORE_ADDR rx_unwind_sp | ( | struct gdbarch * | gdbarch, |
struct frame_info * | this_frame | ||
) | [static] |
Definition at line 477 of file rx-tdep.c.
References frame_unwind_register_unsigned(), RX_SP_REGNUM, sp, and ULONGEST.
Referenced by rx_gdbarch_init().
Referenced by _initialize_rx_tdep(), and initialize_all_files().
struct frame_unwind rx_frame_unwind [static] |