GDB (xrefs)
|
#include "defs.h"
#include "frame.h"
#include "frame-base.h"
#include "trad-frame.h"
#include "frame-unwind.h"
#include "dwarf2-frame.h"
#include "gdbtypes.h"
#include "inferior.h"
#include "gdb_string.h"
#include "gdb_assert.h"
#include "gdbcore.h"
#include "arch-utils.h"
#include "regcache.h"
#include "dis-asm.h"
#include "osabi.h"
#include "elf-bfd.h"
#include "elf/v850.h"
Go to the source code of this file.
anonymous enum |
Definition at line 38 of file v850-tdep.c.
anonymous enum |
Definition at line 237 of file v850-tdep.c.
anonymous enum |
Definition at line 243 of file v850-tdep.c.
enum v850_abi |
Definition at line 261 of file v850-tdep.c.
void _initialize_v850_tdep | ( | void | ) |
Definition at line 1481 of file v850-tdep.c.
References _initialize_v850_tdep, register_gdbarch_init(), and v850_gdbarch_init().
static struct v850_frame_cache* v850_alloc_frame_cache | ( | struct frame_info * | this_frame | ) | [static, read] |
Definition at line 1198 of file v850-tdep.c.
References v850_frame_cache::base, FRAME_OBSTACK_ZALLOC, v850_frame_cache::pc, v850_frame_cache::saved_regs, v850_frame_cache::sp_offset, trad_frame_alloc_saved_regs(), and v850_frame_cache::uses_fp.
Referenced by v850_frame_cache().
static CORE_ADDR v850_analyze_prologue | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | func_addr, | ||
CORE_ADDR | pc, | ||
struct v850_frame_cache * | pi, | ||
ULONGEST | ctbp | ||
) | [static] |
Definition at line 777 of file v850-tdep.c.
References trad_frame_saved_reg::addr, pifsr::cur_frameoffset, E_EP_REGNUM, E_FP_REGNUM, E_R0_REGNUM, E_R12_REGNUM, E_R1_REGNUM, E_SP_REGNUM, gdbarch_byte_order(), gdb::printing::long, memset(), pifsr::offset, read_memory_integer(), read_memory_unsigned_integer(), pifsr::reg, v850_frame_cache::saved_regs, v850_frame_cache::sp_offset, v850_frame_cache::uses_fp, v850_handle_prepare(), v850_handle_pushm(), and v850_is_save_register().
Referenced by v850_frame_cache().
static const unsigned char* v850_breakpoint_from_pc | ( | struct gdbarch * | gdbarch, |
CORE_ADDR * | pcptr, | ||
int * | lenptr | ||
) | [static] |
Definition at line 1174 of file v850-tdep.c.
Referenced by v850_gdbarch_init().
static const unsigned char* v850_dbtrap_breakpoint_from_pc | ( | struct gdbarch * | gdbarch, |
CORE_ADDR * | pcptr, | ||
int * | lenptr | ||
) | [static] |
Definition at line 1188 of file v850-tdep.c.
Referenced by v850_gdbarch_init().
static struct frame_id v850_dummy_id | ( | struct gdbarch * | gdbarch, |
struct frame_info * | this_frame | ||
) | [static, read] |
Definition at line 1330 of file v850-tdep.c.
References frame_id_build(), gdbarch_sp_regnum(), get_frame_pc(), get_frame_register_unsigned(), and sp.
Referenced by v850_gdbarch_init().
static int v850_eight_byte_align_p | ( | struct type * | type | ) | [static] |
Definition at line 976 of file v850-tdep.c.
References check_typedef(), TYPE_FIELD_TYPE, TYPE_LENGTH, TYPE_NFIELDS, and v850_type_is_scalar().
Referenced by v850_push_dummy_call().
static void v850_extract_return_value | ( | struct type * | type, |
struct regcache * | regcache, | ||
gdb_byte * | valbuf | ||
) | [static] |
Definition at line 1113 of file v850-tdep.c.
References gdbarch::byte_order, E_V0_REGNUM, gdbarch_byte_order(), get_regcache_arch(), len, memcpy(), regcache_cooked_read_unsigned(), regcache_raw_read(), regnum, store_unsigned_integer(), TYPE_LENGTH, ULONGEST, and v850_reg_size.
Referenced by v850_return_value().
static CORE_ADDR v850_frame_align | ( | struct gdbarch * | ignore, |
CORE_ADDR | sp | ||
) | [static] |
Definition at line 996 of file v850-tdep.c.
Referenced by v850_gdbarch_init().
static CORE_ADDR v850_frame_base_address | ( | struct frame_info * | this_frame, |
void ** | this_cache | ||
) | [static] |
Definition at line 1338 of file v850-tdep.c.
References v850_frame_cache::base, and v850_frame_cache().
static struct v850_frame_cache* v850_frame_cache | ( | struct frame_info * | this_frame, |
void ** | this_cache | ||
) | [static, read] |
Definition at line 1217 of file v850-tdep.c.
References trad_frame_saved_reg::addr, v850_frame_cache::base, E_CTBP_REGNUM, E_FP_REGNUM, E_LP_REGNUM, E_PC_REGNUM, E_SP_REGNUM, gdbarch_num_regs(), get_frame_arch(), get_frame_func(), get_frame_pc(), get_frame_register_unsigned(), v850_frame_cache::pc, v850_frame_cache::saved_regs, v850_frame_cache::sp_offset, trad_frame_addr_p(), trad_frame_set_value(), ULONGEST, v850_frame_cache::uses_fp, v850_alloc_frame_cache(), and v850_analyze_prologue().
Referenced by v850_frame_base_address(), v850_frame_prev_register(), and v850_frame_this_id().
static struct value* v850_frame_prev_register | ( | struct frame_info * | this_frame, |
void ** | this_cache, | ||
int | regnum | ||
) | [static, read] |
Definition at line 1283 of file v850-tdep.c.
References gdb_assert, v850_frame_cache::saved_regs, trad_frame_get_prev_register(), and v850_frame_cache().
static void v850_frame_this_id | ( | struct frame_info * | this_frame, |
void ** | this_cache, | ||
struct frame_id * | this_id | ||
) | [static] |
Definition at line 1294 of file v850-tdep.c.
References trad_frame_saved_reg::addr, v850_frame_cache::base, E_SP_REGNUM, frame_id_build(), v850_frame_cache::pc, v850_frame_cache::saved_regs, and v850_frame_cache().
static struct gdbarch* v850_gdbarch_init | ( | struct gdbarch_info | info, |
struct gdbarch_list * | arches | ||
) | [static, read] |
Definition at line 1353 of file v850-tdep.c.
References gdbarch_info::abfd, gdbarch_tdep::abi, gdbarch_info::bfd_arch_info, core_addr_lessthan(), dwarf2_append_unwinders(), gdbarch_tdep::e_flags, gdbarch_tdep::e_machine, E_NUM_OF_V850_REGS, E_NUM_OF_V850E3V5_REGS, E_NUM_OF_V850E_REGS, E_NUM_REGS, E_PC_REGNUM, E_SP_REGNUM, gdbarch_tdep::eight_byte_align, frame_base_set_default(), frame_unwind_append_unwinder(), gdbarch_list::gdbarch, gdbarch_alloc(), gdbarch_init_osabi(), gdbarch_list_lookup_by_info(), gdbarch_tdep(), gdbarch_list::next, set_gdbarch_addr_bit(), set_gdbarch_breakpoint_from_pc(), set_gdbarch_char_signed(), set_gdbarch_double_bit(), set_gdbarch_dummy_id(), set_gdbarch_float_bit(), set_gdbarch_fp0_regnum(), set_gdbarch_frame_align(), set_gdbarch_inner_than(), set_gdbarch_int_bit(), set_gdbarch_long_bit(), set_gdbarch_long_double_bit(), set_gdbarch_long_long_bit(), set_gdbarch_num_pseudo_regs(), set_gdbarch_num_regs(), set_gdbarch_pc_regnum(), set_gdbarch_print_insn(), set_gdbarch_ptr_bit(), set_gdbarch_push_dummy_call(), set_gdbarch_register_name(), set_gdbarch_register_type(), set_gdbarch_return_value(), set_gdbarch_short_bit(), set_gdbarch_skip_prologue(), set_gdbarch_sp_regnum(), set_gdbarch_unwind_pc(), set_gdbarch_unwind_sp(), V850_ABI_GCC, V850_ABI_RH850, v850_breakpoint_from_pc(), v850_dbtrap_breakpoint_from_pc(), v850_dummy_id(), v850_frame_align(), v850_push_dummy_call(), v850_register_name(), v850_register_type(), v850_return_value(), v850_skip_prologue(), v850_unwind_pc(), v850_unwind_sp(), v850e2_register_name(), v850e3v5_register_name(), v850e_register_name(), and xmalloc().
Referenced by _initialize_v850_tdep().
static void v850_handle_prepare | ( | int | insn, |
int | insn2, | ||
CORE_ADDR * | current_pc_ptr, | ||
struct v850_frame_cache * | pi, | ||
struct pifsr ** | pifsr_ptr | ||
) | [static] |
Definition at line 599 of file v850-tdep.c.
References pifsr::cur_frameoffset, reg_list::mask, offset, pifsr::offset, pifsr::reg, reg_list::regno, v850_frame_cache::sp_offset, and v850_reg_size.
Referenced by v850_analyze_prologue().
static void v850_handle_pushm | ( | int | insn, |
int | insn2, | ||
struct v850_frame_cache * | pi, | ||
struct pifsr ** | pifsr_ptr | ||
) | [static] |
Definition at line 669 of file v850-tdep.c.
References pifsr::cur_frameoffset, E_PS_REGNUM, reg_list::mask, offset, pifsr::offset, pifsr::reg, reg_list::regno, v850_frame_cache::sp_offset, and v850_reg_size.
Referenced by v850_analyze_prologue().
static int v850_is_save_register | ( | int | reg | ) | [static] |
Definition at line 758 of file v850-tdep.c.
References E_R20_REGNUM, E_R29_REGNUM, E_R2_REGNUM, and E_R31_REGNUM.
Referenced by v850_analyze_prologue().
static CORE_ADDR v850_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 1011 of file v850-tdep.c.
References E_ARG0_REGNUM, E_ARGLAST_REGNUM, E_LP_REGNUM, E_MAX_RETTYPE_SIZE_IN_REGS, E_SP_REGNUM, gdbarch_tdep::eight_byte_align, extract_unsigned_integer(), gdbarch_byte_order(), len, regcache_cooked_write_unsigned(), store_unsigned_integer(), TYPE_LENGTH, V850_ABI_GCC, V850_ABI_RH850, v850_eight_byte_align_p(), v850_reg_size, v850_type_is_scalar(), value_address(), value_contents(), value_type(), and write_memory().
Referenced by v850_gdbarch_init().
static const char* v850_register_name | ( | struct gdbarch * | gdbarch, |
int | regnum | ||
) | [static] |
Definition at line 303 of file v850-tdep.c.
References E_NUM_OF_V850_REGS, and regnum.
Referenced by v850_gdbarch_init().
static struct type* v850_register_type | ( | struct gdbarch * | gdbarch, |
int | regnum | ||
) | [static, read] |
Definition at line 491 of file v850-tdep.c.
References builtin_type::builtin_func_ptr, builtin_type::builtin_int32, builtin_type(), builtin_type::builtin_uint64, E_PC_REGNUM, E_VR0_REGNUM, and E_VR31_REGNUM.
Referenced by v850_gdbarch_init().
static enum return_value_convention v850_return_value | ( | struct gdbarch * | gdbarch, |
struct value * | function, | ||
struct type * | type, | ||
struct regcache * | regcache, | ||
gdb_byte * | readbuf, | ||
const gdb_byte * | writebuf | ||
) | [static] |
Definition at line 1160 of file v850-tdep.c.
References RETURN_VALUE_REGISTER_CONVENTION, RETURN_VALUE_STRUCT_CONVENTION, v850_extract_return_value(), v850_store_return_value(), and v850_use_struct_convention().
Referenced by v850_gdbarch_init().
static CORE_ADDR v850_skip_prologue | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | pc | ||
) | [static] |
Definition at line 947 of file v850-tdep.c.
References find_pc_line(), find_pc_partial_function(), and symtab_and_line::pc.
Referenced by v850_gdbarch_init().
static void v850_store_return_value | ( | struct type * | type, |
struct regcache * | regcache, | ||
const gdb_byte * | valbuf | ||
) | [static] |
Definition at line 1140 of file v850-tdep.c.
References gdbarch::byte_order, E_V0_REGNUM, extract_unsigned_integer(), gdbarch_byte_order(), get_regcache_arch(), len, regcache_cooked_write_unsigned(), regcache_raw_write(), regnum, TYPE_LENGTH, and v850_reg_size.
Referenced by v850_return_value().
static int v850_type_is_scalar | ( | struct type * | t | ) | [static] |
Definition at line 501 of file v850-tdep.c.
References TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_STRUCT, and TYPE_CODE_UNION.
Referenced by v850_eight_byte_align_p(), v850_push_dummy_call(), and v850_use_struct_convention().
static CORE_ADDR v850_unwind_pc | ( | struct gdbarch * | gdbarch, |
struct frame_info * | next_frame | ||
) | [static] |
Definition at line 1323 of file v850-tdep.c.
References frame_unwind_register_unsigned(), and gdbarch_pc_regnum().
Referenced by v850_gdbarch_init().
static CORE_ADDR v850_unwind_sp | ( | struct gdbarch * | gdbarch, |
struct frame_info * | next_frame | ||
) | [static] |
Definition at line 1316 of file v850-tdep.c.
References frame_unwind_register_unsigned(), and gdbarch_sp_regnum().
Referenced by v850_gdbarch_init().
static int v850_use_struct_convention | ( | struct gdbarch * | gdbarch, |
struct type * | type | ||
) | [static] |
Definition at line 511 of file v850-tdep.c.
References TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_STRUCT, TYPE_CODE_UNION, TYPE_FIELD_TYPE, TYPE_LENGTH, TYPE_NFIELDS, TYPE_TARGET_TYPE, V850_ABI_RH850, and v850_type_is_scalar().
Referenced by v850_return_value().
static const char* v850e2_register_name | ( | struct gdbarch * | gdbarch, |
int | regnum | ||
) | [static] |
Definition at line 342 of file v850-tdep.c.
References E_NUM_OF_V850E2_REGS, and regnum.
Referenced by v850_gdbarch_init().
static const char* v850e3v5_register_name | ( | struct gdbarch * | gdbarch, |
int | regnum | ||
) | [static] |
Definition at line 388 of file v850-tdep.c.
References E_NUM_OF_V850E3V5_REGS, and regnum.
Referenced by v850_gdbarch_init().
static const char* v850e_register_name | ( | struct gdbarch * | gdbarch, |
int | regnum | ||
) | [static] |
Definition at line 322 of file v850-tdep.c.
References E_NUM_OF_V850E_REGS, and regnum.
Referenced by v850_gdbarch_init().
Referenced by _initialize_v850_tdep(), and initialize_all_files().
struct frame_base v850_frame_base [static] |
{ &v850_frame_unwind, v850_frame_base_address, v850_frame_base_address, v850_frame_base_address }
Definition at line 1345 of file v850-tdep.c.
struct frame_unwind v850_frame_unwind [static] |
{ NORMAL_FRAME, default_frame_unwind_stop_reason, v850_frame_this_id, v850_frame_prev_register, NULL, default_frame_sniffer }
Definition at line 1306 of file v850-tdep.c.