GDB (xrefs)
|
#include "defs.h"
#include "arch-utils.h"
#include "prologue-value.h"
#include "target.h"
#include "regcache.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/msp430.h"
#include "opcode/msp430-decode.h"
#include "elf-bfd.h"
Go to the source code of this file.
Classes | |
struct | msp430_gdbarch_tdep |
struct | msp430_prologue |
Enumerations | |
enum | { MSP430_PC_RAW_REGNUM , MSP430_SP_RAW_REGNUM , MSP430_SR_RAW_REGNUM , MSP430_CG_RAW_REGNUM , MSP430_R4_RAW_REGNUM , MSP430_R5_RAW_REGNUM , MSP430_R6_RAW_REGNUM , MSP430_R7_RAW_REGNUM , MSP430_R8_RAW_REGNUM , MSP430_R9_RAW_REGNUM , MSP430_R10_RAW_REGNUM , MSP430_R11_RAW_REGNUM , MSP430_R12_RAW_REGNUM , MSP430_R13_RAW_REGNUM , MSP430_R14_RAW_REGNUM , MSP430_R15_RAW_REGNUM , MSP430_NUM_REGS , MSP430_PC_REGNUM = MSP430_NUM_REGS , MSP430_SP_REGNUM , MSP430_SR_REGNUM , MSP430_CG_REGNUM , MSP430_R4_REGNUM , MSP430_R5_REGNUM , MSP430_R6_REGNUM , MSP430_R7_REGNUM , MSP430_R8_REGNUM , MSP430_R9_REGNUM , MSP430_R10_REGNUM , MSP430_R11_REGNUM , MSP430_R12_REGNUM , MSP430_R13_REGNUM , MSP430_R14_REGNUM , MSP430_R15_REGNUM , MSP430_NUM_TOTAL_REGS , MSP430_NUM_PSEUDO_REGS = MSP430_NUM_TOTAL_REGS - MSP430_NUM_REGS } |
enum | { MSP_ISA_MSP430 , MSP_ISA_MSP430X } |
enum | { MSP_SMALL_CODE_MODEL , MSP_LARGE_CODE_MODEL } |
Functions | |
static struct type * | msp430_register_type (struct gdbarch *gdbarch, int reg_nr) |
static struct type * | msp430x_register_type (struct gdbarch *gdbarch, int reg_nr) |
static const char * | msp430_register_name (struct gdbarch *gdbarch, int regnr) |
static int | msp430_register_reggroup_p (struct gdbarch *gdbarch, int regnum, const struct reggroup *group) |
static enum register_status | msp430_pseudo_register_read (struct gdbarch *gdbarch, readable_regcache *regcache, int regnum, gdb_byte *buffer) |
static void | msp430_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache, int regnum, const gdb_byte *buffer) |
static int | msp430_register_sim_regno (struct gdbarch *gdbarch, int regnum) |
typedef | BP_MANIPULATION (msp430_break_insn) |
static int | msp430_get_opcode_byte (void *handle) |
static void | check_for_saved (void *result_untyped, pv_t addr, CORE_ADDR size, pv_t value) |
static void | msp430_analyze_prologue (struct gdbarch *gdbarch, CORE_ADDR start_pc, CORE_ADDR limit_pc, struct msp430_prologue *result) |
static CORE_ADDR | msp430_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc) |
static struct msp430_prologue * | msp430_analyze_frame_prologue (frame_info_ptr this_frame, void **this_prologue_cache) |
static CORE_ADDR | msp430_frame_base (frame_info_ptr this_frame, void **this_prologue_cache) |
static void | msp430_this_id (frame_info_ptr this_frame, void **this_prologue_cache, struct frame_id *this_id) |
static struct value * | msp430_prev_register (frame_info_ptr this_frame, void **this_prologue_cache, int regnum) |
static int | msp430_dwarf2_reg_to_regnum (struct gdbarch *gdbarch, int reg) |
static enum return_value_convention | msp430_return_value (struct gdbarch *gdbarch, struct value *function, struct type *valtype, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf) |
static CORE_ADDR | msp430_frame_align (struct gdbarch *gdbarch, CORE_ADDR sp) |
static CORE_ADDR | msp430_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 int | msp430_in_return_stub (struct gdbarch *gdbarch, CORE_ADDR pc, const char *name) |
static CORE_ADDR | msp430_skip_trampoline_code (frame_info_ptr frame, CORE_ADDR pc) |
static struct gdbarch * | msp430_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) |
void | _initialize_msp430_tdep () |
Variables | |
constexpr gdb_byte | msp430_break_insn [] = { 0x43, 0x43 } |
static const struct frame_unwind | msp430_unwind |
static const char | msp430_epilog_name_prefix [] = "__mspabi_func_epilog_" |
anonymous enum |
Definition at line 45 of file msp430-tdep.c.
anonymous enum |
Enumerator | |
---|---|
MSP_ISA_MSP430 | |
MSP_ISA_MSP430X |
Definition at line 87 of file msp430-tdep.c.
anonymous enum |
Enumerator | |
---|---|
MSP_SMALL_CODE_MODEL | |
MSP_LARGE_CODE_MODEL |
Definition at line 96 of file msp430-tdep.c.
void _initialize_msp430_tdep | ( | ) |
Definition at line 999 of file msp430-tdep.c.
References gdbarch_register(), and msp430_gdbarch_init().
typedef BP_MANIPULATION | ( | msp430_break_insn | ) |
Definition at line 283 of file msp430-tdep.c.
Definition at line 324 of file msp430-tdep.c.
References prologue_value::k, MSP430_SP_REGNUM, pv_is_register(), pvk_register, value::reg, msp430_prologue::reg_offset, register_size(), size, and target_gdbarch().
Referenced by msp430_analyze_prologue().
|
static |
Definition at line 460 of file msp430-tdep.c.
References FRAME_OBSTACK_ZALLOC, get_frame_arch(), get_frame_func(), get_frame_pc(), and msp430_analyze_prologue().
Referenced by msp430_frame_base(), and msp430_prev_register().
|
static |
Definition at line 339 of file msp430-tdep.c.
References check_for_saved(), msp430_gdbarch_tdep::code_model, msp430_prologue::frame_size, gdbarch_addr_bit(), prologue_value::k, msp430_get_opcode_byte(), MSP430_NUM_TOTAL_REGS, MSP430_PC_REGNUM, MSP430_SP_REGNUM, MSP_LARGE_CODE_MODEL, msp430_prologue::prologue_end, pv_add_constant(), pv_is_register(), pv_register(), msp430_prologue::reg_offset, pv_area::scan(), size, and pv_area::store().
Referenced by msp430_analyze_frame_prologue(), and msp430_skip_prologue().
|
static |
Definition at line 557 of file msp430-tdep.c.
References MSP430_NUM_REGS.
Referenced by msp430_gdbarch_init().
|
static |
Definition at line 638 of file msp430-tdep.c.
Referenced by msp430_gdbarch_init().
|
static |
Definition at line 488 of file msp430-tdep.c.
References msp430_prologue::frame_size, get_frame_register_unsigned(), msp430_analyze_frame_prologue(), and MSP430_SP_REGNUM.
Referenced by msp430_prev_register(), and msp430_this_id().
|
static |
Definition at line 836 of file msp430-tdep.c.
References arches, msp430_gdbarch_tdep::code_model, core_addr_lessthan(), dwarf2_append_unwinders(), msp430_gdbarch_tdep::elf_flags, floatformats_ieee_double, floatformats_ieee_single, frame_unwind_append_unwinder(), gdbarch_alloc(), gdbarch_bfd_arch_info(), gdbarch_list_lookup_by_info(), get_current_arch(), gdbarch::info(), msp430_gdbarch_tdep::isa, msp430_dwarf2_reg_to_regnum(), msp430_frame_align(), msp430_in_return_stub(), MSP430_NUM_PSEUDO_REGS, MSP430_NUM_REGS, MSP430_PC_REGNUM, msp430_pseudo_register_read(), msp430_pseudo_register_write(), msp430_push_dummy_call(), msp430_register_name(), msp430_register_reggroup_p(), msp430_register_sim_regno(), msp430_register_type(), msp430_return_value(), msp430_skip_prologue(), msp430_skip_trampoline_code(), MSP430_SP_REGNUM, msp430_unwind, msp430x_register_type(), MSP_ISA_MSP430, MSP_ISA_MSP430X, MSP_LARGE_CODE_MODEL, MSP_SMALL_CODE_MODEL, set_gdbarch_addr_bit(), 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_addr_size(), set_gdbarch_dwarf2_reg_to_regnum(), set_gdbarch_float_bit(), set_gdbarch_float_format(), set_gdbarch_frame_align(), set_gdbarch_in_solib_return_trampoline(), 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_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_skip_trampoline_code(), set_gdbarch_sp_regnum(), set_gdbarch_sw_breakpoint_from_kind(), and set_gdbarch_vbit_in_delta().
Referenced by _initialize_msp430_tdep().
|
static |
Definition at line 299 of file msp430-tdep.c.
References status, and target_read_memory().
Referenced by msp430_analyze_prologue().
|
static |
Definition at line 798 of file msp430-tdep.c.
References msp430_epilog_name_prefix, and name.
Referenced by msp430_gdbarch_init(), and msp430_skip_trampoline_code().
|
static |
Definition at line 511 of file msp430-tdep.c.
References frame_unwind_got_constant(), frame_unwind_got_memory(), frame_unwind_got_register(), msp430_analyze_frame_prologue(), msp430_frame_base(), MSP430_PC_REGNUM, MSP430_SP_REGNUM, msp430_prologue::reg_offset, regnum, and value_as_long().
|
static |
Definition at line 223 of file msp430-tdep.c.
References gdbarch_byte_order(), MSP430_NUM_REGS, MSP430_NUM_TOTAL_REGS, readable_regcache::raw_read(), register_size(), regnum, status, and store_unsigned_integer().
Referenced by msp430_gdbarch_init().
|
static |
Definition at line 248 of file msp430-tdep.c.
References extract_unsigned_integer(), gdbarch_byte_order(), MSP430_NUM_REGS, MSP430_NUM_TOTAL_REGS, regcache_raw_write_unsigned(), register_size(), and regnum.
Referenced by msp430_gdbarch_init().
|
static |
Definition at line 646 of file msp430-tdep.c.
References value::address, check_typedef(), type::code(), msp430_gdbarch_tdep::code_model, value::contents_all(), extract_unsigned_integer(), gdbarch_byte_order(), type::length(), MSP430_R12_REGNUM, MSP430_R15_REGNUM, MSP430_SP_REGNUM, MSP_LARGE_CODE_MODEL, MSP_SMALL_CODE_MODEL, regcache_cooked_write_unsigned(), return_method_struct, size, store_unsigned_integer(), value::type(), TYPE_IS_REFERENCE, write_memory(), and write_memory_unsigned_integer().
Referenced by msp430_gdbarch_init().
|
static |
Definition at line 188 of file msp430-tdep.c.
References gdb_static_assert(), MSP430_NUM_PSEUDO_REGS, and MSP430_NUM_REGS.
Referenced by msp430_gdbarch_init().
|
static |
Definition at line 207 of file msp430-tdep.c.
References all_reggroup, general_reggroup, MSP430_NUM_REGS, MSP430_NUM_TOTAL_REGS, regnum, restore_reggroup, and save_reggroup.
Referenced by msp430_gdbarch_init().
|
static |
Definition at line 271 of file msp430-tdep.c.
References MSP430_NUM_REGS, and regnum.
Referenced by msp430_gdbarch_init().
Definition at line 161 of file msp430-tdep.c.
References builtin_type::builtin_func_ptr, builtin_type(), builtin_type::builtin_uint16, builtin_type::builtin_uint32, MSP430_NUM_REGS, and MSP430_PC_REGNUM.
Referenced by msp430_gdbarch_init().
|
static |
Definition at line 567 of file msp430-tdep.c.
References type::code(), msp430_gdbarch_tdep::code_model, extract_unsigned_integer(), gdbarch_byte_order(), type::length(), MSP430_R12_REGNUM, MSP_LARGE_CODE_MODEL, regcache_cooked_read_unsigned(), regcache_cooked_write_unsigned(), RETURN_VALUE_REGISTER_CONVENTION, RETURN_VALUE_STRUCT_CONVENTION, size, and store_unsigned_integer().
Referenced by msp430_gdbarch_init().
|
static |
Definition at line 440 of file msp430-tdep.c.
References find_pc_partial_function(), msp430_analyze_prologue(), name, and msp430_prologue::prologue_end.
Referenced by msp430_gdbarch_init().
|
static |
Definition at line 807 of file msp430-tdep.c.
References msp430_gdbarch_tdep::code_model, gdbarch_byte_order(), get_frame_arch(), get_frame_register_unsigned(), general_symbol_info::linkage_name(), lookup_minimal_symbol_by_pc(), bound_minimal_symbol::minsym, msp430_epilog_name_prefix, msp430_in_return_stub(), MSP430_SP_REGNUM, MSP_SMALL_CODE_MODEL, and read_memory_integer().
Referenced by msp430_gdbarch_init().
|
static |
Definition at line 500 of file msp430-tdep.c.
References frame_id_build(), get_frame_func(), and msp430_frame_base().
Definition at line 175 of file msp430-tdep.c.
References builtin_type::builtin_func_ptr, builtin_type(), builtin_type::builtin_uint32, MSP430_NUM_REGS, and MSP430_PC_REGNUM.
Referenced by msp430_gdbarch_init().
|
constexpr |
Definition at line 281 of file msp430-tdep.c.
|
static |
Definition at line 793 of file msp430-tdep.c.
Referenced by msp430_in_return_stub(), and msp430_skip_trampoline_code().
|
static |
Definition at line 544 of file msp430-tdep.c.
Referenced by msp430_gdbarch_init().