GDB (xrefs)
|
#include "defs.h"
#include "arch-utils.h"
#include "prologue-value.h"
#include "target.h"
#include "regcache.h"
#include "opcode/rl78.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 "reggroups.h"
#include "gdbarch.h"
#include "elf/rl78.h"
#include "elf-bfd.h"
Go to the source code of this file.
Classes | |
struct | rl78_gdbarch_tdep |
struct | rl78_prologue |
Macros | |
#define | RL78_SP_ADDR 0xffff8 |
Functions | |
static struct type * | rl78_psw_type (struct gdbarch *gdbarch) |
static struct type * | rl78_register_type (struct gdbarch *gdbarch, int reg_nr) |
static const char * | rl78_register_name (struct gdbarch *gdbarch, int regnr) |
static const char * | rl78_g10_register_name (struct gdbarch *gdbarch, int regnr) |
static int | rl78_register_reggroup_p (struct gdbarch *gdbarch, int regnum, const struct reggroup *group) |
static CORE_ADDR | rl78_make_instruction_address (CORE_ADDR addr) |
static CORE_ADDR | rl78_make_data_address (CORE_ADDR addr) |
static enum register_status | rl78_pseudo_register_read (struct gdbarch *gdbarch, readable_regcache *regcache, int reg, gdb_byte *buffer) |
static void | rl78_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache, int reg, const gdb_byte *buffer) |
typedef | BP_MANIPULATION (rl78_break_insn) |
static int | opc_reg_to_gdb_regnum (int opcreg) |
static int | rl78_get_opcode_byte (void *handle) |
static void | check_for_saved (void *result_untyped, pv_t addr, CORE_ADDR size, pv_t value) |
static void | rl78_analyze_prologue (CORE_ADDR start_pc, CORE_ADDR limit_pc, struct rl78_prologue *result) |
static CORE_ADDR | rl78_addr_bits_remove (struct gdbarch *gdbarch, CORE_ADDR addr) |
static void | rl78_address_to_pointer (struct gdbarch *gdbarch, struct type *type, gdb_byte *buf, CORE_ADDR addr) |
static CORE_ADDR | rl78_pointer_to_address (struct gdbarch *gdbarch, struct type *type, const gdb_byte *buf) |
static CORE_ADDR | rl78_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc) |
static CORE_ADDR | rl78_unwind_pc (struct gdbarch *arch, frame_info_ptr next_frame) |
static struct rl78_prologue * | rl78_analyze_frame_prologue (frame_info_ptr this_frame, void **this_prologue_cache) |
static CORE_ADDR | rl78_frame_base (frame_info_ptr this_frame, void **this_prologue_cache) |
static void | rl78_this_id (frame_info_ptr this_frame, void **this_prologue_cache, struct frame_id *this_id) |
static struct value * | rl78_prev_register (frame_info_ptr this_frame, void **this_prologue_cache, int regnum) |
static int | rl78_dwarf_reg_to_regnum (struct gdbarch *gdbarch, int reg) |
static int | rl78_register_sim_regno (struct gdbarch *gdbarch, int regnum) |
static enum return_value_convention | rl78_return_value (struct gdbarch *gdbarch, struct value *function, struct type *valtype, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf) |
static CORE_ADDR | rl78_frame_align (struct gdbarch *gdbarch, CORE_ADDR sp) |
static struct frame_id | rl78_dummy_id (struct gdbarch *gdbarch, frame_info_ptr this_frame) |
static CORE_ADDR | rl78_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 struct gdbarch * | rl78_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) |
void | _initialize_rl78_tdep () |
Variables | |
constexpr gdb_byte | rl78_break_insn [] = { 0xff } |
static const struct frame_unwind | rl78_unwind |
#define RL78_SP_ADDR 0xffff8 |
Definition at line 209 of file rl78-tdep.c.
Referenced by rl78_analyze_prologue().
anonymous enum |
Enumerator | |
---|---|
RL78_BANK0 | |
RL78_BANK1 | |
RL78_BANK2 | |
RL78_BANK3 | |
RL78_NUMBANKS | |
RL78_REGS_PER_BANK |
Definition at line 44 of file rl78-tdep.c.
anonymous enum |
Definition at line 56 of file rl78-tdep.c.
void _initialize_rl78_tdep | ( | ) |
Definition at line 1490 of file rl78-tdep.c.
References gdbarch_register(), and rl78_gdbarch_init().
typedef BP_MANIPULATION | ( | rl78_break_insn | ) |
Definition at line 801 of file rl78-tdep.c.
Definition at line 892 of file rl78-tdep.c.
References prologue_value::k, pv_is_register(), pvk_register, value::reg, rl78_prologue::reg_offset, register_size(), RL78_SP_REGNUM, size, and target_gdbarch().
Referenced by rl78_analyze_prologue().
|
static |
Definition at line 811 of file rl78-tdep.c.
References RL78_A_REGNUM, RL78_AX_REGNUM, RL78_B_REGNUM, RL78_BC_REGNUM, RL78_C_REGNUM, RL78_CS_REGNUM, RL78_D_REGNUM, RL78_DE_REGNUM, RL78_E_REGNUM, RL78_ES_REGNUM, RL78_H_REGNUM, RL78_HL_REGNUM, RL78_L_REGNUM, RL78_MEM_REGNUM, RL78_PMC_REGNUM, RL78_PSW_REGNUM, RL78_SP_REGNUM, and RL78_X_REGNUM.
Referenced by rl78_analyze_prologue().
|
static |
Definition at line 1023 of file rl78-tdep.c.
Referenced by rl78_gdbarch_init(), and rl78_unwind_pc().
|
static |
Definition at line 1031 of file rl78-tdep.c.
References gdbarch_byte_order(), type::length(), and store_unsigned_integer().
Referenced by rl78_gdbarch_init().
|
static |
Definition at line 1093 of file rl78-tdep.c.
References FRAME_OBSTACK_ZALLOC, get_frame_func(), get_frame_pc(), and rl78_analyze_prologue().
Referenced by rl78_frame_base(), and rl78_prev_register().
|
static |
Definition at line 908 of file rl78-tdep.c.
References check_for_saved(), rl78_prologue::frame_size, gdbarch_addr_bit(), prologue_value::k, opc_reg_to_gdb_regnum(), rl78_prologue::prologue_end, pv_add_constant(), pv_is_register(), pv_register(), rl78_prologue::reg_offset, regnum, rl78_get_opcode_byte(), RL78_NUM_TOTAL_REGS, RL78_PC_REGNUM, RL78_REGS_PER_BANK, RL78_SP_ADDR, RL78_SP_REGNUM, pv_area::scan(), pv_area::store(), and target_gdbarch().
Referenced by rl78_analyze_frame_prologue(), and rl78_skip_prologue().
|
static |
Definition at line 1317 of file rl78-tdep.c.
References frame_id_build(), get_frame_pc(), get_frame_register_unsigned(), rl78_make_data_address(), and RL78_SP_REGNUM.
Referenced by rl78_gdbarch_init().
|
static |
Definition at line 1198 of file rl78-tdep.c.
References RL78_BANK0_RP0_PTR_REGNUM, RL78_CS_REGNUM, RL78_ES_REGNUM, RL78_PC_REGNUM, RL78_PSW_REGNUM, and RL78_SP_REGNUM.
Referenced by rl78_gdbarch_init().
|
static |
Definition at line 1308 of file rl78-tdep.c.
References rl78_make_data_address().
Referenced by rl78_gdbarch_init().
|
static |
Definition at line 1120 of file rl78-tdep.c.
References rl78_prologue::frame_size, get_frame_register_unsigned(), rl78_analyze_frame_prologue(), rl78_make_data_address(), and RL78_SP_REGNUM.
Referenced by rl78_prev_register(), and rl78_this_id().
|
static |
Definition at line 453 of file rl78-tdep.c.
Referenced by rl78_gdbarch_init().
|
static |
Definition at line 1376 of file rl78-tdep.c.
References arches, core_addr_lessthan(), dwarf2_append_unwinders(), rl78_gdbarch_tdep::elf_flags, floatformats_ieee_double, floatformats_ieee_single, frame_unwind_append_unwinder(), gdbarch_alloc(), gdbarch_list_lookup_by_info(), gdbarch::info(), init_integer_type(), init_pointer_type(), type_allocator::new_type(), rl78_addr_bits_remove(), rl78_address_to_pointer(), rl78_gdbarch_tdep::rl78_code_pointer, rl78_gdbarch_tdep::rl78_data_pointer, rl78_dummy_id(), rl78_dwarf_reg_to_regnum(), rl78_frame_align(), rl78_g10_register_name(), rl78_gdbarch_tdep::rl78_int16, rl78_gdbarch_tdep::rl78_int32, rl78_gdbarch_tdep::rl78_int8, RL78_NUM_PSEUDO_REGS, RL78_NUM_REGS, RL78_PC_REGNUM, rl78_pointer_to_address(), rl78_pseudo_register_read(), rl78_pseudo_register_write(), rl78_push_dummy_call(), rl78_register_name(), rl78_register_reggroup_p(), rl78_register_sim_regno(), rl78_register_type(), rl78_return_value(), rl78_skip_prologue(), RL78_SP_REGNUM, rl78_gdbarch_tdep::rl78_uint16, rl78_gdbarch_tdep::rl78_uint32, rl78_gdbarch_tdep::rl78_uint8, rl78_unwind, rl78_unwind_pc(), rl78_gdbarch_tdep::rl78_void, set_gdbarch_addr_bit(), set_gdbarch_addr_bits_remove(), set_gdbarch_address_to_pointer(), 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_dummy_id(), set_gdbarch_dwarf2_addr_size(), set_gdbarch_dwarf2_reg_to_regnum(), set_gdbarch_float_bit(), set_gdbarch_float_format(), set_gdbarch_frame_align(), 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_pointer_to_address(), 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_reggroup_p(), set_gdbarch_register_sim_regno(), set_gdbarch_register_type(), set_gdbarch_return_value(), set_gdbarch_short_bit(), set_gdbarch_skip_prologue(), set_gdbarch_sp_regnum(), set_gdbarch_sw_breakpoint_from_kind(), set_gdbarch_unwind_pc(), and set_gdbarch_vbit_in_delta().
Referenced by _initialize_rl78_tdep().
|
static |
Definition at line 867 of file rl78-tdep.c.
References status, and target_read_memory().
Referenced by rl78_analyze_prologue().
|
static |
Definition at line 635 of file rl78-tdep.c.
Referenced by rl78_dummy_id(), rl78_frame_align(), rl78_frame_base(), rl78_pointer_to_address(), and rl78_push_dummy_call().
|
static |
Definition at line 627 of file rl78-tdep.c.
Referenced by rl78_pointer_to_address(), and rl78_prev_register().
|
static |
Definition at line 1043 of file rl78-tdep.c.
References type::code(), extract_unsigned_integer(), gdbarch_byte_order(), type::length(), rl78_make_data_address(), rl78_make_instruction_address(), type::target_type(), and TYPE_CODE_SPACE.
Referenced by rl78_gdbarch_init().
|
static |
Definition at line 1143 of file rl78-tdep.c.
References frame_unwind_got_constant(), frame_unwind_got_memory(), frame_unwind_got_register(), rl78_prologue::reg_offset, regnum, rl78_analyze_frame_prologue(), rl78_frame_base(), rl78_make_instruction_address(), RL78_PC_REGNUM, RL78_SP_REGNUM, RL78_SPH_REGNUM, RL78_SPL_REGNUM, and value_as_long().
|
static |
Definition at line 643 of file rl78-tdep.c.
References readable_regcache::raw_read(), RL78_AX_REGNUM, RL78_BANK0_R0_REGNUM, RL78_BANK0_RP0_PTR_REGNUM, RL78_BANK0_RP0_REGNUM, RL78_BANK3_R7_REGNUM, RL78_BANK3_RP3_PTR_REGNUM, RL78_BANK3_RP3_REGNUM, RL78_H_REGNUM, RL78_HL_REGNUM, RL78_PC_REGNUM, RL78_PSW_REGNUM, RL78_RAW_BANK0_R0_REGNUM, RL78_RAW_PC_REGNUM, RL78_REGS_PER_BANK, RL78_SP_REGNUM, RL78_SPH_REGNUM, RL78_SPL_REGNUM, RL78_X_REGNUM, and status.
Referenced by rl78_gdbarch_init().
|
static |
Definition at line 725 of file rl78-tdep.c.
References regcache::raw_write(), regcache_raw_read_unsigned(), RL78_AX_REGNUM, RL78_BANK0_R0_REGNUM, RL78_BANK0_RP0_PTR_REGNUM, RL78_BANK0_RP0_REGNUM, RL78_BANK3_R7_REGNUM, RL78_BANK3_RP3_PTR_REGNUM, RL78_BANK3_RP3_REGNUM, RL78_H_REGNUM, RL78_HL_REGNUM, RL78_PC_REGNUM, RL78_PSW_REGNUM, RL78_RAW_BANK0_R0_REGNUM, RL78_RAW_PC_REGNUM, RL78_REGS_PER_BANK, RL78_SP_REGNUM, RL78_SPH_REGNUM, RL78_SPL_REGNUM, and RL78_X_REGNUM.
Referenced by rl78_gdbarch_init().
Definition at line 268 of file rl78-tdep.c.
References append_flags_type_flag(), arch_flags_type(), and rl78_gdbarch_tdep::rl78_psw_type.
Referenced by rl78_register_type().
|
static |
Definition at line 1330 of file rl78-tdep.c.
References gdbarch_byte_order(), type::length(), regcache_cooked_write_unsigned(), return_method_struct, rl78_make_data_address(), RL78_SP_REGNUM, store_unsigned_integer(), and write_memory().
Referenced by rl78_gdbarch_init().
|
static |
Definition at line 318 of file rl78-tdep.c.
Referenced by rl78_gdbarch_init().
|
static |
Definition at line 588 of file rl78-tdep.c.
References all_reggroup, general_reggroup, regnum, restore_reggroup, RL78_BANK0_R0_REGNUM, RL78_BANK0_RP0_REGNUM, RL78_BANK3_R7_REGNUM, RL78_BANK3_RP3_REGNUM, RL78_CS_REGNUM, RL78_ES_REGNUM, RL78_MEM_REGNUM, RL78_NUM_REGS, RL78_PC_REGNUM, RL78_PMC_REGNUM, RL78_RAW_PC_REGNUM, RL78_SP_REGNUM, RL78_SPH_REGNUM, RL78_SPL_REGNUM, save_reggroup, and system_reggroup.
Referenced by rl78_gdbarch_init().
|
static |
Definition at line 1229 of file rl78-tdep.c.
References regnum, and RL78_NUM_REGS.
Referenced by rl78_gdbarch_init().
Definition at line 292 of file rl78-tdep.c.
References RL78_BANK0_R0_REGNUM, RL78_BANK0_RP0_PTR_REGNUM, RL78_BANK3_R7_REGNUM, RL78_BANK3_RP3_PTR_REGNUM, rl78_gdbarch_tdep::rl78_code_pointer, rl78_gdbarch_tdep::rl78_data_pointer, RL78_H_REGNUM, rl78_gdbarch_tdep::rl78_int16, rl78_gdbarch_tdep::rl78_int8, RL78_MEM_REGNUM, RL78_PC_REGNUM, RL78_PSW_REGNUM, rl78_psw_type(), RL78_RAW_PC_REGNUM, RL78_SP_REGNUM, rl78_gdbarch_tdep::rl78_uint32, and RL78_X_REGNUM.
Referenced by rl78_gdbarch_init().
|
static |
Definition at line 1242 of file rl78-tdep.c.
References rl78_gdbarch_tdep::elf_flags, extract_unsigned_integer(), gdbarch_byte_order(), type::length(), read_memory_integer(), regcache_cooked_read_unsigned(), regcache_cooked_write_unsigned(), RETURN_VALUE_REGISTER_CONVENTION, RETURN_VALUE_STRUCT_CONVENTION, RL78_RAW_BANK1_R0_REGNUM, store_unsigned_integer(), and write_memory().
Referenced by rl78_gdbarch_init().
|
static |
Definition at line 1063 of file rl78-tdep.c.
References find_pc_partial_function(), name, rl78_prologue::prologue_end, and rl78_analyze_prologue().
Referenced by rl78_gdbarch_init().
|
static |
Definition at line 1132 of file rl78-tdep.c.
References frame_id_build(), get_frame_func(), and rl78_frame_base().
|
static |
Definition at line 1080 of file rl78-tdep.c.
References frame_unwind_register_unsigned(), rl78_addr_bits_remove(), and RL78_PC_REGNUM.
Referenced by rl78_gdbarch_init().
|
constexpr |
Definition at line 799 of file rl78-tdep.c.
|
static |
Definition at line 1184 of file rl78-tdep.c.
Referenced by rl78_gdbarch_init().