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 "remote.h"
#include "target-descriptions.h"
#include "gdbarch.h"
#include "elf/rx.h"
#include "elf-bfd.h"
#include <algorithm>
#include "features/rx.c"
Go to the source code of this file.
Classes | |
struct | rx_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 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_prologue * | rx_analyze_frame_prologue (frame_info_ptr this_frame, enum rx_frame_type frame_type, void **this_prologue_cache) |
static enum rx_frame_type | rx_frame_type (frame_info_ptr this_frame, void **this_cache) |
static CORE_ADDR | rx_frame_base (frame_info_ptr this_frame, void **this_cache) |
static void | rx_frame_this_id (frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id) |
static struct value * | rx_frame_prev_register (frame_info_ptr 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, frame_info_ptr this_frame, void **this_cache, int(*sniff_p)(enum rx_frame_type)) |
static int | rx_frame_sniffer (const struct frame_unwind *self, frame_info_ptr this_frame, void **this_cache) |
static int | rx_exception_sniffer (const struct frame_unwind *self, frame_info_ptr this_frame, void **this_cache) |
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, function_call_return_method return_method, 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) |
typedef | BP_MANIPULATION (rx_break_insn) |
static struct gdbarch * | rx_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) |
void | _initialize_rx_tdep () |
Variables | |
static const char *const | rx_register_names [] |
static const struct frame_unwind | rx_frame_unwind |
static const struct frame_unwind | rx_exception_unwind |
constexpr gdb_byte | rx_break_insn [] = { 0x00 } |
anonymous enum |
enum rx_frame_type |
void _initialize_rx_tdep | ( | ) |
Definition at line 1065 of file rx-tdep.c.
References gdbarch_register(), initialize_tdesc_rx(), and rx_gdbarch_init().
typedef BP_MANIPULATION | ( | rx_break_insn | ) |
Definition at line 926 of file rx-tdep.c.
References RX_PC_REGNUM, and RX_PSW_REGNUM.
Definition at line 138 of file rx-tdep.c.
References prologue_value::k, pv_is_register(), pvk_register, value::reg, rx_prologue::reg_offset, register_size(), RX_SP_REGNUM, size, and target_gdbarch().
Referenced by rx_analyze_prologue().
|
static |
Definition at line 569 of file rx-tdep.c.
References RX_FRAME_TYPE_EXCEPTION, and RX_FRAME_TYPE_FAST_INTERRUPT.
Referenced by rx_exception_sniffer().
|
static |
Definition at line 560 of file rx-tdep.c.
References RX_FRAME_TYPE_NORMAL.
Referenced by rx_frame_sniffer().
|
static |
Definition at line 385 of file rx-tdep.c.
References FRAME_OBSTACK_ZALLOC, get_frame_func(), get_frame_pc(), and rx_analyze_prologue().
Referenced by rx_frame_base(), rx_frame_prev_register(), and rx_frame_sniffer_common().
|
static |
Definition at line 182 of file rx-tdep.c.
References check_for_saved(), rx_prologue::frame_ptr_offset, rx_prologue::frame_size, rx_prologue::frame_type, gdbarch_addr_bit(), rx_prologue::has_frame_ptr, prologue_value::k, rx_get_opcode_byte_handle::pc, rx_prologue::prologue_end, pv_add_constant(), pv_is_register(), pv_register(), prologue_value::reg, rx_prologue::reg_offset, RX_BPC_REGNUM, RX_BPSW_REGNUM, RX_FP_REGNUM, RX_FRAME_TYPE_EXCEPTION, RX_FRAME_TYPE_FAST_INTERRUPT, rx_get_opcode_byte(), RX_NUM_REGS, RX_PC_REGNUM, RX_PSW_REGNUM, RX_R1_REGNUM, RX_R4_REGNUM, RX_SP_REGNUM, pv_area::scan(), pv_area::store(), and target_gdbarch().
Referenced by rx_analyze_frame_prologue(), and rx_skip_prologue().
|
static |
Definition at line 622 of file rx-tdep.c.
References exception_frame_p(), and rx_frame_sniffer_common().
|
static |
Definition at line 468 of file rx-tdep.c.
References rx_prologue::frame_ptr_offset, rx_prologue::frame_size, get_frame_register_unsigned(), rx_prologue::has_frame_ptr, rx_analyze_frame_prologue(), RX_FP_REGNUM, and RX_SP_REGNUM.
Referenced by rx_frame_prev_register(), and rx_frame_this_id().
|
static |
Definition at line 505 of file rx-tdep.c.
References value::contents_all(), extract_unsigned_integer(), frame_unwind_got_constant(), frame_unwind_got_memory(), frame_unwind_got_register(), gdbarch_byte_order(), get_frame_arch(), rx_prologue::reg_offset, regnum, rx_analyze_frame_prologue(), RX_BPC_REGNUM, RX_BPSW_REGNUM, rx_frame_base(), rx_frame_prev_register(), RX_FRAME_TYPE_EXCEPTION, RX_FRAME_TYPE_FAST_INTERRUPT, RX_PC_REGNUM, RX_PSW_REGNUM, RX_SP_REGNUM, and RX_USP_REGNUM.
Referenced by rx_frame_prev_register().
|
static |
Definition at line 611 of file rx-tdep.c.
References normal_frame_p(), and rx_frame_sniffer_common().
|
static |
Definition at line 578 of file rx-tdep.c.
References rx_prologue::frame_type, and rx_analyze_frame_prologue().
Referenced by rx_exception_sniffer(), and rx_frame_sniffer().
|
static |
Definition at line 495 of file rx-tdep.c.
References frame_id_build(), get_frame_func(), and rx_frame_base().
|
static |
Definition at line 414 of file rx-tdep.c.
References find_pc_partial_function(), rx_prologue::frame_type, get_frame_pc(), name, rx_get_opcode_byte_handle::pc, RX_FRAME_TYPE_EXCEPTION, RX_FRAME_TYPE_FAST_INTERRUPT, RX_FRAME_TYPE_NORMAL, and rx_get_opcode_byte().
|
static |
Definition at line 945 of file rx-tdep.c.
References arches, core_addr_lessthan(), dwarf2_append_unwinders(), rx_gdbarch_tdep::elf_flags, floatformats_ieee_double, floatformats_ieee_single, frame_unwind_append_unwinder(), gdbarch_alloc(), gdbarch_list_lookup_by_info(), registry< T >::get(), rx_exception_unwind, rx_frame_unwind, RX_NUM_REGS, RX_PC_REGNUM, rx_push_dummy_call(), rx_register_names, rx_return_value(), rx_skip_prologue(), RX_SP_REGNUM, set_gdbarch_breakpoint_kind_from_pc(), set_gdbarch_char_signed(), set_gdbarch_decr_pc_after_break(), set_gdbarch_double_bit(), set_gdbarch_double_format(), 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_ptr_bit(), set_gdbarch_push_dummy_call(), set_gdbarch_return_value(), set_gdbarch_short_bit(), set_gdbarch_skip_prologue(), set_gdbarch_sp_regnum(), set_gdbarch_sw_breakpoint_from_kind(), set_gdbarch_vbit_in_delta(), tdesc_data, tdesc_data_alloc(), tdesc_find_feature(), tdesc_has_registers(), tdesc_numbered_register(), tdesc_rx, and tdesc_use_registers().
Referenced by _initialize_rx_tdep().
|
static |
Definition at line 161 of file rx-tdep.c.
References rx_get_opcode_byte_handle::pc, status, and target_read_code().
Referenced by rx_analyze_prologue(), and rx_frame_type().
|
static |
Definition at line 659 of file rx-tdep.c.
References check_typedef(), type::code(), value::contents_all(), extract_unsigned_integer(), gdbarch_byte_order(), type::length(), type::num_fields(), regcache_cooked_write_unsigned(), return_method_struct, RX_R15_REGNUM, RX_R1_REGNUM, RX_R4_REGNUM, RX_SP_REGNUM, value::type(), write_memory(), and write_memory_unsigned_integer().
Referenced by rx_gdbarch_init().
|
static |
Definition at line 870 of file rx-tdep.c.
References type::code(), extract_unsigned_integer(), gdbarch_byte_order(), type::length(), regcache_cooked_read_unsigned(), regcache_cooked_write_unsigned(), RETURN_VALUE_REGISTER_CONVENTION, RETURN_VALUE_STRUCT_CONVENTION, RX_R1_REGNUM, and store_unsigned_integer().
Referenced by rx_gdbarch_init().
|
static |
Definition at line 363 of file rx-tdep.c.
References find_pc_partial_function(), name, rx_prologue::prologue_end, rx_analyze_prologue(), and RX_FRAME_TYPE_NORMAL.
Referenced by rx_gdbarch_init().
|
static |
Definition at line 646 of file rx-tdep.c.
Referenced by rx_gdbarch_init().
|
static |
Definition at line 633 of file rx-tdep.c.
Referenced by rx_gdbarch_init().
|
static |
Definition at line 123 of file rx-tdep.c.
Referenced by rx_gdbarch_init().