GDB (xrefs)
|
#include "defs.h"
#include "arch-utils.h"
#include "dis-asm.h"
#include "gdbtypes.h"
#include "regcache.h"
#include "gdbcore.h"
#include "value.h"
#include "frame.h"
#include "frame-unwind.h"
#include "frame-base.h"
#include "symtab.h"
#include "dwarf2/frame.h"
#include "osabi.h"
#include "infcall.h"
#include "prologue-value.h"
#include "target.h"
#include "mn10300-tdep.h"
Go to the source code of this file.
Classes | |
struct | mn10300_prologue |
Macros | |
#define | MN10300_MAX_NUM_REGS 64 |
#define | MN10300_MAX_REGISTER_SIZE 64 |
Functions | |
static int | mn10300_type_align (struct type *type) |
static int | mn10300_use_struct_convention (struct type *type) |
static void | mn10300_store_return_value (struct gdbarch *gdbarch, struct type *type, struct regcache *regcache, const gdb_byte *valbuf) |
static void | mn10300_extract_return_value (struct gdbarch *gdbarch, struct type *type, struct regcache *regcache, void *valbuf) |
static enum return_value_convention | mn10300_return_value (struct gdbarch *gdbarch, struct value *function, struct type *type, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf) |
static const char * | register_name (int reg, const char **regs, long num_regs) |
static const char * | mn10300_generic_register_name (struct gdbarch *gdbarch, int reg) |
static const char * | am33_register_name (struct gdbarch *gdbarch, int reg) |
static const char * | am33_2_register_name (struct gdbarch *gdbarch, int reg) |
static struct type * | mn10300_register_type (struct gdbarch *gdbarch, int reg) |
typedef | BP_MANIPULATION (mn10300_break_insn) |
static int | translate_rreg (int rreg) |
static void | check_for_saved (void *result_untyped, pv_t addr, CORE_ADDR size, pv_t value) |
static void | mn10300_analyze_prologue (struct gdbarch *gdbarch, CORE_ADDR start_pc, CORE_ADDR limit_pc, struct mn10300_prologue *result) |
static CORE_ADDR | mn10300_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc) |
static struct mn10300_prologue * | mn10300_analyze_frame_prologue (frame_info_ptr this_frame, void **this_prologue_cache) |
static CORE_ADDR | mn10300_frame_base (frame_info_ptr this_frame, void **this_prologue_cache) |
static void | mn10300_frame_this_id (frame_info_ptr this_frame, void **this_prologue_cache, struct frame_id *this_id) |
static struct value * | mn10300_frame_prev_register (frame_info_ptr this_frame, void **this_prologue_cache, int regnum) |
static void | mn10300_frame_unwind_init (struct gdbarch *gdbarch) |
static CORE_ADDR | mn10300_push_dummy_call (struct gdbarch *gdbarch, struct value *target_func, 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 int | mn10300_dwarf2_reg_to_regnum (struct gdbarch *gdbarch, int dwarf2) |
static struct gdbarch * | mn10300_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) |
static void | mn10300_dump_tdep (struct gdbarch *gdbarch, struct ui_file *file) |
void | _initialize_mn10300_tdep () |
Variables | |
constexpr gdb_byte | mn10300_break_insn [] = {0xff} |
static const struct frame_unwind | mn10300_frame_unwind |
#define MN10300_MAX_NUM_REGS 64 |
Definition at line 41 of file mn10300-tdep.c.
Referenced by mn10300_analyze_prologue().
#define MN10300_MAX_REGISTER_SIZE 64 |
Definition at line 44 of file mn10300-tdep.c.
Referenced by mn10300_extract_return_value(), and mn10300_push_dummy_call().
void _initialize_mn10300_tdep | ( | ) |
Definition at line 1417 of file mn10300-tdep.c.
References gdbarch_register(), mn10300_dump_tdep(), and mn10300_gdbarch_init().
|
static |
Definition at line 283 of file mn10300-tdep.c.
References register_name().
Referenced by mn10300_gdbarch_init().
|
static |
Definition at line 271 of file mn10300-tdep.c.
References register_name().
Referenced by mn10300_gdbarch_init().
typedef BP_MANIPULATION | ( | mn10300_break_insn | ) |
Definition at line 313 of file mn10300-tdep.c.
References E_SP_REGNUM, pv_add_constant(), regnum, and pv_area::store().
Definition at line 346 of file mn10300-tdep.c.
References E_SP_REGNUM, mn10300_prologue::gdbarch, prologue_value::k, pv_is_register(), pvk_register, value::reg, mn10300_prologue::reg_offset, register_size(), and size.
Referenced by mn10300_analyze_prologue().
|
static |
Definition at line 1045 of file mn10300-tdep.c.
References FRAME_OBSTACK_ZALLOC, get_frame_arch(), get_frame_func(), get_frame_pc(), and mn10300_analyze_prologue().
Referenced by mn10300_frame_base(), and mn10300_frame_prev_register().
|
static |
Definition at line 362 of file mn10300-tdep.c.
References check_for_saved(), E_A0_REGNUM, E_A1_REGNUM, E_A2_REGNUM, E_A3_REGNUM, E_D0_REGNUM, E_D1_REGNUM, E_D2_REGNUM, E_D3_REGNUM, E_E0_REGNUM, E_E1_REGNUM, E_E2_REGNUM, E_E3_REGNUM, E_E4_REGNUM, E_E5_REGNUM, E_E6_REGNUM, E_E7_REGNUM, E_FS0_REGNUM, E_LAR_REGNUM, E_LIR_REGNUM, E_MCRH_REGNUM, E_MCRL_REGNUM, E_MCVF_REGNUM, E_MDR_REGNUM, E_MDRQ_REGNUM, E_PC_REGNUM, E_SP_REGNUM, extract_signed_integer(), mn10300_prologue::frame_ptr_offset, mn10300_prologue::frame_size, mn10300_prologue::gdbarch, gdbarch_addr_bit(), gdbarch_byte_order(), get_am33_mode(), mn10300_prologue::has_frame_ptr, prologue_value::k, MN10300_MAX_NUM_REGS, movm_a2_bit, movm_a3_bit, movm_d2_bit, movm_d3_bit, movm_exother_bit, movm_exreg0_bit, movm_exreg1_bit, movm_other_bit, mn10300_prologue::prologue_end, pv_add(), pv_add_constant(), pv_constant(), pv_is_register(), pv_register(), mn10300_prologue::reg_offset, pv_area::scan(), status, pv_area::store(), target_read_memory(), and translate_rreg().
Referenced by mn10300_analyze_frame_prologue(), and mn10300_skip_prologue().
Definition at line 1408 of file mn10300-tdep.c.
References mn10300_gdbarch_tdep::am33_mode, and gdb_printf().
Referenced by _initialize_mn10300_tdep().
|
static |
Definition at line 1295 of file mn10300-tdep.c.
References E_A0_REGNUM, E_A1_REGNUM, E_A2_REGNUM, E_A3_REGNUM, E_D0_REGNUM, E_D1_REGNUM, E_D2_REGNUM, E_D3_REGNUM, E_E0_REGNUM, E_E1_REGNUM, E_E2_REGNUM, E_E3_REGNUM, E_E4_REGNUM, E_E5_REGNUM, E_E6_REGNUM, E_E7_REGNUM, E_FS0_REGNUM, E_MDR_REGNUM, E_PC_REGNUM, E_PSW_REGNUM, and E_SP_REGNUM.
Referenced by mn10300_gdbarch_init().
|
static |
Definition at line 197 of file mn10300-tdep.c.
References type::code(), type::length(), MN10300_MAX_REGISTER_SIZE, readable_regcache::raw_read(), and register_size().
Referenced by mn10300_return_value().
|
static |
Definition at line 1074 of file mn10300-tdep.c.
References E_A3_REGNUM, E_SP_REGNUM, mn10300_prologue::frame_ptr_offset, mn10300_prologue::frame_size, get_frame_register_unsigned(), mn10300_prologue::has_frame_ptr, and mn10300_analyze_frame_prologue().
Referenced by mn10300_frame_prev_register(), and mn10300_frame_this_id().
|
static |
Definition at line 1109 of file mn10300-tdep.c.
References E_SP_REGNUM, frame_unwind_got_constant(), frame_unwind_got_memory(), frame_unwind_got_register(), mn10300_analyze_frame_prologue(), mn10300_frame_base(), mn10300_prologue::reg_offset, and regnum.
|
static |
Definition at line 1098 of file mn10300-tdep.c.
References frame_id_build(), get_frame_func(), and mn10300_frame_base().
|
static |
Definition at line 1141 of file mn10300-tdep.c.
References dwarf2_append_unwinders(), frame_unwind_append_unwinder(), and mn10300_frame_unwind.
Referenced by mn10300_gdbarch_init().
|
static |
Definition at line 1332 of file mn10300-tdep.c.
References am33_2_register_name(), mn10300_gdbarch_tdep::am33_mode, am33_register_name(), arches, core_addr_lessthan(), E_PC_REGNUM, E_SP_REGNUM, gdbarch_alloc(), gdbarch_init_osabi(), gdbarch_list_lookup_by_info(), gdbarch::info(), mn10300_dwarf2_reg_to_regnum(), mn10300_frame_unwind_init(), mn10300_generic_register_name(), mn10300_push_dummy_call(), mn10300_register_type(), mn10300_return_value(), mn10300_skip_prologue(), set_gdbarch_breakpoint_kind_from_pc(), set_gdbarch_char_signed(), set_gdbarch_dwarf2_reg_to_regnum(), set_gdbarch_fp0_regnum(), set_gdbarch_inner_than(), set_gdbarch_num_regs(), set_gdbarch_pc_regnum(), set_gdbarch_push_dummy_call(), set_gdbarch_register_name(), set_gdbarch_register_type(), set_gdbarch_return_value(), set_gdbarch_skip_prologue(), set_gdbarch_sp_regnum(), and set_gdbarch_sw_breakpoint_from_kind().
Referenced by _initialize_mn10300_tdep().
|
static |
Definition at line 258 of file mn10300-tdep.c.
References register_name().
Referenced by mn10300_gdbarch_init().
|
static |
Definition at line 1155 of file mn10300-tdep.c.
References create_new_frame(), E_D0_REGNUM, E_MDR_REGNUM, E_PC_REGNUM, E_SP_REGNUM, extract_unsigned_integer(), find_function_addr(), gdbarch_byte_order(), gdbarch_unwind_sp(), MN10300_MAX_REGISTER_SIZE, regcache_cooked_write_unsigned(), register_size(), return_method_struct, store_unsigned_integer(), write_memory(), and write_memory_unsigned_integer().
Referenced by mn10300_gdbarch_init().
Definition at line 300 of file mn10300-tdep.c.
References builtin_type::builtin_int, and builtin_type().
Referenced by mn10300_gdbarch_init().
|
static |
Definition at line 235 of file mn10300-tdep.c.
References mn10300_extract_return_value(), mn10300_store_return_value(), mn10300_use_struct_convention(), RETURN_VALUE_REGISTER_CONVENTION, and RETURN_VALUE_STRUCT_CONVENTION.
Referenced by mn10300_gdbarch_init().
|
static |
Definition at line 1027 of file mn10300-tdep.c.
References find_pc_partial_function(), mn10300_analyze_prologue(), name, and mn10300_prologue::prologue_end.
Referenced by mn10300_gdbarch_init().
|
static |
Definition at line 171 of file mn10300-tdep.c.
References type::code(), type::length(), regcache::raw_write(), regcache::raw_write_part(), and register_size().
Referenced by mn10300_return_value().
|
static |
Definition at line 87 of file mn10300-tdep.c.
References check_typedef(), type::code(), type::field(), type::length(), mn10300_type_align(), type::num_fields(), and field::type().
Referenced by mn10300_type_align(), and mn10300_use_struct_convention().
|
static |
Definition at line 133 of file mn10300-tdep.c.
References check_typedef(), type::code(), type::field(), type::length(), mn10300_type_align(), mn10300_use_struct_convention(), type::num_fields(), and field::type().
Referenced by mn10300_return_value(), and mn10300_use_struct_convention().
|
static |
Definition at line 251 of file mn10300-tdep.c.
Referenced by am33_2_register_name(), am33_register_name(), mn10300_generic_register_name(), register_descriptor_iter_find(), and set_gdbarch_register_name().
|
static |
Definition at line 328 of file mn10300-tdep.c.
References E_A0_REGNUM, E_D0_REGNUM, and E_E0_REGNUM.
Referenced by mn10300_analyze_prologue().
|
constexpr |
Definition at line 311 of file mn10300-tdep.c.
|
static |
Definition at line 1130 of file mn10300-tdep.c.
Referenced by mn10300_frame_unwind_init().