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 "elf/msp430.h"
#include "opcode/msp430-decode.h"
#include "elf-bfd.h"
Go to the source code of this file.
anonymous enum |
Definition at line 44 of file msp430-tdep.c.
anonymous enum |
Definition at line 86 of file msp430-tdep.c.
anonymous enum |
Definition at line 95 of file msp430-tdep.c.
void _initialize_msp430_tdep | ( | void | ) |
Definition at line 1038 of file msp430-tdep.c.
References _initialize_msp430_tdep, msp430_gdbarch_init(), and register_gdbarch_init().
static void check_for_saved | ( | void * | result_untyped, |
pv_t | addr, | ||
CORE_ADDR | size, | ||
pv_t | value | ||
) | [static] |
Definition at line 331 of file msp430-tdep.c.
References prologue_value::k, prologue_value::kind, MSP430_SP_REGNUM, pv_is_register(), prologue_value::reg, msp430_prologue::reg_offset, register_size(), and target_gdbarch().
Referenced by msp430_analyze_prologue().
static struct msp430_prologue* msp430_analyze_frame_prologue | ( | struct frame_info * | this_frame, |
void ** | this_prologue_cache | ||
) | [static, read] |
Definition at line 487 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 void msp430_analyze_prologue | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | start_pc, | ||
CORE_ADDR | limit_pc, | ||
struct msp430_prologue * | result | ||
) | [static] |
Definition at line 346 of file msp430-tdep.c.
References check_for_saved(), gdbarch_tdep::code_model, do_cleanups(), msp430_prologue::frame_size, gdbarch_addr_bit(), gdbarch_tdep(), prologue_value::k, make_cleanup_free_pv_area(), make_pv_area(), memset(), msp430_get_opcode_byte(), MSP430_NUM_TOTAL_REGS, MSP430_PC_REGNUM, MSP430_SP_REGNUM, MSP_LARGE_CODE_MODEL, msp430_get_opcode_byte_handle::pc, msp430_prologue::prologue_end, pv_add_constant(), pv_area_scan(), pv_area_store(), pv_is_register(), pv_register(), msp430_prologue::reg_offset, and size.
Referenced by msp430_analyze_frame_prologue(), and msp430_skip_prologue().
static const gdb_byte* msp430_breakpoint_from_pc | ( | struct gdbarch * | gdbarch, |
CORE_ADDR * | pcptr, | ||
int * | lenptr | ||
) | [static] |
Definition at line 284 of file msp430-tdep.c.
Referenced by msp430_gdbarch_init().
static struct frame_id msp430_dummy_id | ( | struct gdbarch * | gdbarch, |
struct frame_info * | this_frame | ||
) | [static, read] |
Definition at line 675 of file msp430-tdep.c.
References frame_id_build(), get_frame_pc(), get_frame_register_unsigned(), and MSP430_SP_REGNUM.
Referenced by msp430_gdbarch_init().
static int msp430_dwarf2_reg_to_regnum | ( | struct gdbarch * | gdbarch, |
int | reg | ||
) | [static] |
Definition at line 582 of file msp430-tdep.c.
References _, MSP430_NUM_REGS, and warning().
Referenced by msp430_gdbarch_init().
static CORE_ADDR msp430_frame_align | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | sp | ||
) | [static] |
Definition at line 666 of file msp430-tdep.c.
References align_down().
Referenced by msp430_gdbarch_init().
static CORE_ADDR msp430_frame_base | ( | struct frame_info * | this_frame, |
void ** | this_prologue_cache | ||
) | [static] |
Definition at line 514 of file msp430-tdep.c.
References msp430_prologue::frame_size, get_frame_register_unsigned(), msp430_analyze_frame_prologue(), MSP430_SP_REGNUM, p, and sp.
Referenced by msp430_prev_register(), and msp430_this_id().
static struct gdbarch* msp430_gdbarch_init | ( | struct gdbarch_info | info, |
struct gdbarch_list * | arches | ||
) | [static, read] |
Definition at line 871 of file msp430-tdep.c.
References _, gdbarch_info::abfd, gdbarch_tdep::code_model, core_addr_lessthan(), dwarf2_append_unwinders(), gdbarch_tdep::elf_flags, error(), floatformats_ieee_double, floatformats_ieee_single, frame_unwind_append_unwinder(), gdbarch_list::gdbarch, gdbarch_alloc(), gdbarch_bfd_arch_info(), gdbarch_list_lookup_by_info(), gdbarch_tdep(), get_current_arch(), internal_error(), gdbarch_tdep::isa, msp430_breakpoint_from_pc(), msp430_dummy_id(), 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_pc(), msp430_unwind_sp(), msp430x_register_type(), MSP_ISA_MSP430, MSP_ISA_MSP430X, MSP_LARGE_CODE_MODEL, MSP_SMALL_CODE_MODEL, gdbarch_list::next, set_gdbarch_addr_bit(), 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_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_print_insn(), 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_unwind_pc(), set_gdbarch_unwind_sp(), set_gdbarch_vbit_in_delta(), and xmalloc().
Referenced by _initialize_msp430_tdep().
static int msp430_get_opcode_byte | ( | void * | handle | ) | [static] |
Definition at line 307 of file msp430-tdep.c.
References msp430_get_opcode_byte_handle::pc, exsummary::status, and target_read_memory().
Referenced by msp430_analyze_prologue().
static int msp430_in_return_stub | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | pc, | ||
const char * | name | ||
) | [static] |
Definition at line 833 of file msp430-tdep.c.
References msp430_epilog_name_prefix.
Referenced by msp430_gdbarch_init(), and msp430_skip_trampoline_code().
static struct value* msp430_prev_register | ( | struct frame_info * | this_frame, |
void ** | this_prologue_cache, | ||
int | regnum | ||
) | [static, read] |
Definition at line 537 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, p, msp430_prologue::reg_offset, ULONGEST, and value_as_long().
static enum register_status msp430_pseudo_register_read | ( | struct gdbarch * | gdbarch, |
struct regcache * | regcache, | ||
int | regnum, | ||
gdb_byte * | buffer | ||
) | [static] |
Definition at line 220 of file msp430-tdep.c.
References gdb_assert_not_reached, gdbarch_byte_order(), MSP430_NUM_REGS, MSP430_NUM_TOTAL_REGS, REG_UNKNOWN, REG_VALID, regcache_raw_read_unsigned(), register_size(), exsummary::status, store_unsigned_integer(), and ULONGEST.
Referenced by msp430_gdbarch_init().
static void msp430_pseudo_register_write | ( | struct gdbarch * | gdbarch, |
struct regcache * | regcache, | ||
int | regnum, | ||
const gdb_byte * | buffer | ||
) | [static] |
Definition at line 247 of file msp430-tdep.c.
References extract_unsigned_integer(), gdb_assert_not_reached, gdbarch_byte_order(), MSP430_NUM_REGS, MSP430_NUM_TOTAL_REGS, regcache_raw_write_unsigned(), register_size(), and ULONGEST.
Referenced by msp430_gdbarch_init().
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, | ||
int | struct_return, | ||
CORE_ADDR | struct_addr | ||
) | [static] |
Definition at line 687 of file msp430-tdep.c.
References align_down(), check_typedef(), gdbarch_tdep::code_model, extract_unsigned_integer(), gdb_assert, gdbarch_byte_order(), gdbarch_tdep(), MSP430_R12_REGNUM, MSP430_R15_REGNUM, MSP430_SP_REGNUM, MSP_LARGE_CODE_MODEL, MSP_SMALL_CODE_MODEL, offset, regcache_cooked_write_unsigned(), size, store_unsigned_integer(), TYPE_CODE, TYPE_CODE_FUNC, TYPE_CODE_METHOD, TYPE_CODE_PTR, TYPE_CODE_STRUCT, TYPE_CODE_UNION, TYPE_LENGTH, TYPE_TARGET_TYPE, ULONGEST, value_address(), value_contents_all(), value_type(), write_memory(), and write_memory_unsigned_integer().
Referenced by msp430_gdbarch_init().
static const char* msp430_register_name | ( | struct gdbarch * | gdbarch, |
int | regnr | ||
) | [static] |
Definition at line 187 of file msp430-tdep.c.
Referenced by msp430_gdbarch_init().
static int msp430_register_reggroup_p | ( | struct gdbarch * | gdbarch, |
int | regnum, | ||
struct reggroup * | group | ||
) | [static] |
Definition at line 204 of file msp430-tdep.c.
References all_reggroup, general_reggroup, MSP430_NUM_REGS, MSP430_NUM_TOTAL_REGS, restore_reggroup, and save_reggroup.
Referenced by msp430_gdbarch_init().
static int msp430_register_sim_regno | ( | struct gdbarch * | gdbarch, |
int | regnum | ||
) | [static] |
Definition at line 271 of file msp430-tdep.c.
References gdb_assert, MSP430_NUM_REGS, and regnum.
Referenced by msp430_gdbarch_init().
static struct type* msp430_register_type | ( | struct gdbarch * | gdbarch, |
int | reg_nr | ||
) | [static, read] |
Definition at line 160 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 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] |
Definition at line 596 of file msp430-tdep.c.
References gdbarch_tdep::code_model, extract_unsigned_integer(), gdbarch_byte_order(), gdbarch_tdep(), LONGEST, MSP430_R12_REGNUM, MSP_LARGE_CODE_MODEL, offset, regcache_cooked_read_unsigned(), regcache_cooked_write_unsigned(), RETURN_VALUE_REGISTER_CONVENTION, RETURN_VALUE_STRUCT_CONVENTION, size, store_unsigned_integer(), TYPE_CODE, TYPE_CODE_PTR, TYPE_CODE_STRUCT, TYPE_CODE_UNION, TYPE_LENGTH, and ULONGEST.
Referenced by msp430_gdbarch_init().
static CORE_ADDR msp430_skip_prologue | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | pc | ||
) | [static] |
Definition at line 451 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 CORE_ADDR msp430_skip_trampoline_code | ( | struct frame_info * | frame, |
CORE_ADDR | pc | ||
) | [static] |
Definition at line 843 of file msp430-tdep.c.
References gdbarch_byte_order(), get_frame_arch(), get_frame_register_unsigned(), lookup_minimal_symbol_by_pc(), bound_minimal_symbol::minsym, msp430_epilog_name_prefix, msp430_in_return_stub(), MSP430_SP_REGNUM, MSP_SMALL_CODE_MODEL, read_memory_integer(), sp, and SYMBOL_LINKAGE_NAME.
Referenced by msp430_gdbarch_init().
static void msp430_this_id | ( | struct frame_info * | this_frame, |
void ** | this_prologue_cache, | ||
struct frame_id * | this_id | ||
) | [static] |
Definition at line 526 of file msp430-tdep.c.
References frame_id_build(), get_frame_func(), and msp430_frame_base().
static CORE_ADDR msp430_unwind_pc | ( | struct gdbarch * | arch, |
struct frame_info * | next_frame | ||
) | [static] |
Definition at line 468 of file msp430-tdep.c.
References frame_unwind_register_unsigned(), and MSP430_PC_REGNUM.
Referenced by msp430_gdbarch_init().
static CORE_ADDR msp430_unwind_sp | ( | struct gdbarch * | arch, |
struct frame_info * | next_frame | ||
) | [static] |
Definition at line 476 of file msp430-tdep.c.
References frame_unwind_register_unsigned(), and MSP430_SP_REGNUM.
Referenced by msp430_gdbarch_init().
static struct type* msp430x_register_type | ( | struct gdbarch * | gdbarch, |
int | reg_nr | ||
) | [static, read] |
Definition at line 174 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().
Referenced by _initialize_msp430_tdep(), and initialize_all_files().
const char msp430_epilog_name_prefix[] = "__mspabi_func_epilog_" [static] |
Definition at line 828 of file msp430-tdep.c.
Referenced by msp430_in_return_stub(), and msp430_skip_trampoline_code().
struct frame_unwind msp430_unwind [static] |
{ NORMAL_FRAME, default_frame_unwind_stop_reason, msp430_this_id, msp430_prev_register, NULL, default_frame_sniffer }
Definition at line 570 of file msp430-tdep.c.