GDB (xrefs)
|
#include "defs.h"
#include "gdb_string.h"
#include "inferior.h"
#include "gdbcore.h"
#include "arch-utils.h"
#include "regcache.h"
#include "frame.h"
#include "frame-unwind.h"
#include "frame-base.h"
#include "trad-frame.h"
#include "dis-asm.h"
#include "gdb_assert.h"
#include "sim-regno.h"
#include "gdb/sim-frv.h"
#include "opcodes/frv-desc.h"
#include "symtab.h"
#include "elf-bfd.h"
#include "elf/frv.h"
#include "osabi.h"
#include "infcall.h"
#include "solib.h"
#include "frv-tdep.h"
Go to the source code of this file.
void _initialize_frv_tdep | ( | void | ) |
static CORE_ADDR find_func_descr | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | entry_point | ||
) | [static] |
Definition at line 1153 of file frv-tdep.c.
References gdbarch::byte_order, find_pc_partial_function(), frv_fdpic_find_canonical_descriptor(), frv_fdpic_find_global_pointer(), gdbarch_byte_order(), store_unsigned_integer(), value_allocate_space_in_inferior(), value_as_long(), and write_memory().
Referenced by frv_push_dummy_call().
Definition at line 96 of file frv-tdep.c.
References gdbarch_tdep::frv_abi, and gdbarch_tdep().
static CORE_ADDR frv_adjust_breakpoint_address | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | bpaddr | ||
) | [static] |
Definition at line 448 of file frv-tdep.c.
References frv_instr_size, get_pc_function_start(), max_instrs_per_bundle, exsummary::status, and target_read_memory().
Referenced by frv_gdbarch_init().
static CORE_ADDR frv_analyze_prologue | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | pc, | ||
struct frame_info * | this_frame, | ||
struct frv_unwind_cache * | info | ||
) | [static] |
Definition at line 523 of file frv-tdep.c.
References trad_frame_saved_reg::addr, frv_unwind_cache::base, extract_signed_integer(), fp_regnum, frv_instr_size, gdbarch_byte_order(), get_frame_pc(), get_frame_register_unsigned(), is_argument_reg(), is_callee_saves_reg(), is_caller_saves_reg(), LONGEST, lr_regnum, memset(), offset, pc_regnum, frv_unwind_cache::prev_sp, frv_unwind_cache::saved_regs, skip_prologue_using_sal(), sp_regnum, target_read_memory(), trad_frame_set_value(), and ULONGEST.
Referenced by frv_frame_unwind_cache(), and frv_skip_prologue().
static const unsigned char* frv_breakpoint_from_pc | ( | struct gdbarch * | gdbarch, |
CORE_ADDR * | pcptr, | ||
int * | lenp | ||
) | [static] |
Definition at line 430 of file frv-tdep.c.
Referenced by frv_gdbarch_init().
static CORE_ADDR frv_convert_from_func_ptr_addr | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | addr, | ||
struct target_ops * | targ | ||
) | [static] |
Definition at line 1184 of file frv-tdep.c.
References gdbarch::byte_order, frv_fdpic_find_global_pointer(), gdbarch_byte_order(), and get_target_memory_unsigned().
Referenced by frv_gdbarch_init().
static struct frame_id frv_dummy_id | ( | struct gdbarch * | gdbarch, |
struct frame_info * | this_frame | ||
) | [static, read] |
Definition at line 1461 of file frv-tdep.c.
References frame_id_build(), get_frame_pc(), get_frame_register_unsigned(), sp, and sp_regnum.
Referenced by frv_gdbarch_init().
static void frv_extract_return_value | ( | struct type * | type, |
struct regcache * | regcache, | ||
gdb_byte * | valbuf | ||
) | [static] |
Definition at line 1118 of file frv-tdep.c.
References _, gdbarch::byte_order, gdbarch_byte_order(), get_regcache_arch(), internal_error(), len, regcache_cooked_read_unsigned(), store_unsigned_integer(), TYPE_LENGTH, and ULONGEST.
Referenced by frv_return_value().
int frv_fdpic_loadmap_addresses | ( | struct gdbarch * | gdbarch, |
CORE_ADDR * | interp_addr, | ||
CORE_ADDR * | exec_addr | ||
) |
Definition at line 105 of file frv-tdep.c.
References fdpic_loadmap_exec_regnum, fdpic_loadmap_interp_regnum, FRV_ABI_FDPIC, get_current_regcache(), regcache_cooked_read_unsigned(), and ULONGEST.
Referenced by enable_break2(), and frv_relocate_main_executable().
static CORE_ADDR frv_frame_align | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | sp | ||
) | [static] |
Definition at line 1146 of file frv-tdep.c.
References align_down().
Referenced by frv_gdbarch_init().
static CORE_ADDR frv_frame_base_address | ( | struct frame_info * | this_frame, |
void ** | this_cache | ||
) | [static] |
Definition at line 1435 of file frv-tdep.c.
References frv_unwind_cache::base, and frv_frame_unwind_cache().
static struct value* frv_frame_prev_register | ( | struct frame_info * | this_frame, |
void ** | this_prologue_cache, | ||
int | regnum | ||
) | [static, read] |
Definition at line 1417 of file frv-tdep.c.
References frv_frame_unwind_cache(), frv_unwind_cache::saved_regs, and trad_frame_get_prev_register().
static void frv_frame_this_id | ( | struct frame_info * | this_frame, |
void ** | this_prologue_cache, | ||
struct frame_id * | this_id | ||
) | [static] |
Definition at line 1387 of file frv-tdep.c.
References frv_unwind_cache::base, frame_id_build(), frv_frame_unwind_cache(), func, get_frame_func(), lookup_minimal_symbol(), frv_unwind_cache::prev_sp, and SYMBOL_VALUE_ADDRESS.
static struct frv_unwind_cache* frv_frame_unwind_cache | ( | struct frame_info * | this_frame, |
void ** | this_prologue_cache | ||
) | [static, read] |
Definition at line 1097 of file frv-tdep.c.
References FRAME_OBSTACK_ZALLOC, frv_analyze_prologue(), get_frame_arch(), get_frame_func(), frv_unwind_cache::saved_regs, and trad_frame_alloc_saved_regs().
Referenced by frv_frame_base_address(), frv_frame_prev_register(), and frv_frame_this_id().
static struct gdbarch* frv_gdbarch_init | ( | struct gdbarch_info | info, |
struct gdbarch_list * | arches | ||
) | [static, read] |
Definition at line 1468 of file frv-tdep.c.
References gdbarch_info::abfd, gdbarch_info::bfd_arch_info, core_addr_lessthan(), gdbarch_tdep::elf_flags, fp_regnum, frame_base_set_default(), frame_unwind_append_unwinder(), FRV_ABI_FDPIC, frv_adjust_breakpoint_address(), frv_breakpoint_from_pc(), frv_convert_from_func_ptr_addr(), frv_dummy_id(), frv_fetch_objfile_link_map(), frv_frame_align(), frv_num_pseudo_regs, frv_num_regs, frv_pseudo_register_read(), frv_pseudo_register_write(), frv_push_dummy_call(), frv_register_name(), frv_register_sim_regno(), frv_register_type(), frv_return_value(), frv_skip_main_prologue(), frv_skip_prologue(), frv_so_ops, frv_unwind_pc(), frv_unwind_sp(), gdbarch_list::gdbarch, gdbarch_alloc(), gdbarch_init_osabi(), gdbarch_list_lookup_by_info(), new_variant(), gdbarch_tdep::num_hw_breakpoints, gdbarch_tdep::num_hw_watchpoints, pc_regnum, set_gdbarch_adjust_breakpoint_address(), set_gdbarch_breakpoint_from_pc(), set_gdbarch_convert_from_func_ptr_addr(), set_gdbarch_deprecated_fp_regnum(), set_gdbarch_double_bit(), set_gdbarch_dummy_id(), set_gdbarch_fetch_tls_load_module_address(), set_gdbarch_float_bit(), 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_pseudo_register_read(), set_gdbarch_pseudo_register_write(), set_gdbarch_ptr_bit(), set_gdbarch_push_dummy_call(), set_gdbarch_register_name(), set_gdbarch_register_sim_regno(), set_gdbarch_register_type(), set_gdbarch_return_value(), set_gdbarch_short_bit(), set_gdbarch_skip_main_prologue(), set_gdbarch_skip_prologue(), set_gdbarch_sp_regnum(), set_gdbarch_unwind_pc(), set_gdbarch_unwind_sp(), set_solib_ops(), set_variant_abi_fdpic(), set_variant_num_fprs(), set_variant_num_gprs(), set_variant_scratch_registers(), and sp_regnum.
static enum register_status frv_pseudo_register_read | ( | struct gdbarch * | gdbarch, |
struct regcache * | regcache, | ||
int | reg, | ||
gdb_byte * | buffer | ||
) | [static] |
Definition at line 302 of file frv-tdep.c.
References accg0123_regnum, accg0_regnum, accg7_regnum, gdb_assert_not_reached, iacc0_regnum, iacc0h_regnum, iacc0l_regnum, memset(), REG_VALID, regcache_raw_read(), and exsummary::status.
Referenced by frv_gdbarch_init().
static void frv_pseudo_register_write | ( | struct gdbarch * | gdbarch, |
struct regcache * | regcache, | ||
int | reg, | ||
const gdb_byte * | buffer | ||
) | [static] |
Definition at line 339 of file frv-tdep.c.
References accg0123_regnum, accg0_regnum, accg7_regnum, iacc0_regnum, iacc0h_regnum, iacc0l_regnum, regcache_raw_read(), and regcache_raw_write().
Referenced by frv_gdbarch_init().
static CORE_ADDR frv_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 1201 of file frv-tdep.c.
References align_down(), align_up(), gdbarch::byte_order, check_typedef(), extract_unsigned_integer(), find_func_descr(), find_function_addr(), first_gpr_regnum, FRV_ABI_FDPIC, frv_fdpic_find_global_pointer(), gdbarch_byte_order(), len, lr_regnum, regcache_cooked_write_unsigned(), sp_regnum, store_unsigned_integer(), struct_return_regnum, TYPE_CODE, TYPE_CODE_FUNC, TYPE_CODE_PTR, TYPE_CODE_STRUCT, TYPE_CODE_UNION, TYPE_LENGTH, TYPE_TARGET_TYPE, value_address(), value_contents(), value_type(), and write_memory().
Referenced by frv_gdbarch_init().
static const char* frv_register_name | ( | struct gdbarch * | gdbarch, |
int | reg | ||
) | [static] |
Definition at line 279 of file frv-tdep.c.
References frv_num_pseudo_regs, frv_num_regs, gdbarch_tdep(), and gdbarch_tdep::register_names.
Referenced by frv_gdbarch_init().
static int frv_register_sim_regno | ( | struct gdbarch * | gdbarch, |
int | reg | ||
) | [static] |
Definition at line 363 of file frv-tdep.c.
References _, first_fpr_regnum, first_gpr_regnum, first_spr_regnum, gdb_assert, gdbarch_num_regs(), internal_error(), last_fpr_regnum, last_gpr_regnum, pc_regnum, and SIM_REGNO_DOES_NOT_EXIST.
Referenced by frv_gdbarch_init().
static struct type* frv_register_type | ( | struct gdbarch * | gdbarch, |
int | reg | ||
) | [static, read] |
Definition at line 291 of file frv-tdep.c.
References builtin_type::builtin_float, builtin_type::builtin_int32, builtin_type::builtin_int64, builtin_type(), first_fpr_regnum, iacc0_regnum, and last_fpr_regnum.
Referenced by frv_gdbarch_init().
static enum return_value_convention frv_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 1351 of file frv-tdep.c.
References frv_extract_return_value(), frv_store_return_value(), gdb_assert, RETURN_VALUE_REGISTER_CONVENTION, RETURN_VALUE_STRUCT_CONVENTION, TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_STRUCT, and TYPE_CODE_UNION.
Referenced by frv_gdbarch_init().
static CORE_ADDR frv_skip_main_prologue | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | pc | ||
) | [static] |
Definition at line 1021 of file frv-tdep.c.
References extract_unsigned_integer(), gdbarch_byte_order(), LONGEST, lookup_minimal_symbol_by_pc(), bound_minimal_symbol::minsym, symtab_and_line::pc, SYMBOL_LINKAGE_NAME, and target_read_memory().
Referenced by frv_gdbarch_init().
static CORE_ADDR frv_skip_prologue | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | pc | ||
) | [static] |
Definition at line 985 of file frv-tdep.c.
References find_pc_line(), find_pc_partial_function(), and frv_analyze_prologue().
Referenced by frv_gdbarch_init().
static void frv_store_return_value | ( | struct type * | type, |
struct regcache * | regcache, | ||
const gdb_byte * | valbuf | ||
) | [static] |
Definition at line 1328 of file frv-tdep.c.
References _, internal_error(), len, memcpy(), memset(), regcache_cooked_write(), and TYPE_LENGTH.
Referenced by frv_return_value().
static CORE_ADDR frv_unwind_pc | ( | struct gdbarch * | gdbarch, |
struct frame_info * | next_frame | ||
) | [static] |
Definition at line 1378 of file frv-tdep.c.
References frame_unwind_register_unsigned(), and pc_regnum.
Referenced by frv_gdbarch_init().
static CORE_ADDR frv_unwind_sp | ( | struct gdbarch * | gdbarch, |
struct frame_info * | next_frame | ||
) | [static] |
Definition at line 1450 of file frv-tdep.c.
References frame_unwind_register_unsigned(), and sp_regnum.
Referenced by frv_gdbarch_init().
static int is_argument_reg | ( | int | reg | ) | [static] |
Definition at line 505 of file frv-tdep.c.
Referenced by frv_analyze_prologue().
static int is_callee_saves_reg | ( | int | reg | ) | [static] |
Definition at line 496 of file frv-tdep.c.
Referenced by frv_analyze_prologue().
static int is_caller_saves_reg | ( | int | reg | ) | [static] |
Definition at line 486 of file frv-tdep.c.
Referenced by frv_analyze_prologue().
static struct gdbarch_tdep* new_variant | ( | void | ) | [static, read] |
Definition at line 135 of file frv-tdep.c.
References acc0_regnum, acc7_regnum, accg0_regnum, accg7_regnum, brr_regnum, cccr_regnum, ccr_regnum, dbar0_regnum, dbar1_regnum, dbar2_regnum, dbar3_regnum, fner0_regnum, fner1_regnum, gdbarch_tdep::frv_abi, FRV_ABI_EABI, frv_num_pseudo_regs, frv_num_regs, fsr0_regnum, gner0_regnum, gner1_regnum, iacc0_regnum, iacc0h_regnum, iacc0l_regnum, lcr_regnum, lr_regnum, memset(), msr0_regnum, msr1_regnum, gdbarch_tdep::num_fprs, gdbarch_tdep::num_gprs, gdbarch_tdep::num_hw_breakpoints, gdbarch_tdep::num_hw_watchpoints, pc_regnum, psr_regnum, gdbarch_tdep::register_names, tbr_regnum, xmalloc(), and xstrprintf().
Referenced by frv_gdbarch_init().
static void set_variant_abi_fdpic | ( | struct gdbarch_tdep * | var | ) | [static] |
Definition at line 261 of file frv-tdep.c.
References fdpic_loadmap_exec_regnum, fdpic_loadmap_interp_regnum, gdbarch_tdep::frv_abi, FRV_ABI_FDPIC, and gdbarch_tdep::register_names.
Referenced by frv_gdbarch_init().
static void set_variant_num_fprs | ( | struct gdbarch_tdep * | var, |
int | num_fprs | ||
) | [static] |
Definition at line 245 of file frv-tdep.c.
References first_fpr_regnum, gdbarch_tdep::num_fprs, gdbarch_tdep::register_names, and xsnprintf().
Referenced by frv_gdbarch_init().
static void set_variant_num_gprs | ( | struct gdbarch_tdep * | var, |
int | num_gprs | ||
) | [static] |
Definition at line 226 of file frv-tdep.c.
References first_gpr_regnum, gdbarch_tdep::num_gprs, gdbarch_tdep::register_names, and xsnprintf().
Referenced by frv_gdbarch_init().
static void set_variant_scratch_registers | ( | struct gdbarch_tdep * | var | ) | [static] |
Definition at line 270 of file frv-tdep.c.
References gdbarch_tdep::register_names, scr0_regnum, scr1_regnum, scr2_regnum, and scr3_regnum.
Referenced by frv_gdbarch_init().
struct frame_base frv_frame_base [static] |
{ &frv_frame_unwind, frv_frame_base_address, frv_frame_base_address, frv_frame_base_address }
Definition at line 1442 of file frv-tdep.c.
struct frame_unwind frv_frame_unwind [static] |
{ NORMAL_FRAME, default_frame_unwind_stop_reason, frv_frame_this_id, frv_frame_prev_register, NULL, default_frame_sniffer }
Definition at line 1425 of file frv-tdep.c.
const int frv_instr_size = 4 [static] |
Definition at line 442 of file frv-tdep.c.
Referenced by frv_adjust_breakpoint_address(), and frv_analyze_prologue().
const int max_instrs_per_bundle = 8 [static] |
Definition at line 439 of file frv-tdep.c.
Referenced by frv_adjust_breakpoint_address().