GDB (xrefs)
|
#include "defs.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 "sim-regno.h"
#include "sim/sim-frv.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"
#include "objfiles.h"
#include "gdbarch.h"
#include "cgen-remap.h"
#include "opcodes/frv-desc.h"
Go to the source code of this file.
Classes | |
struct | frv_unwind_cache |
struct | frv_gdbarch_tdep |
Macros | |
#define | GDB_CGEN_REMAP_PREFIX frv |
Typedefs | |
using | frv_gdbarch_tdep_up = std::unique_ptr<frv_gdbarch_tdep> |
Functions | |
enum frv_abi | frv_abi (struct gdbarch *gdbarch) |
int | frv_fdpic_loadmap_addresses (struct gdbarch *gdbarch, CORE_ADDR *interp_addr, CORE_ADDR *exec_addr) |
static frv_gdbarch_tdep_up | new_variant () |
static void | set_variant_num_gprs (frv_gdbarch_tdep *var, int num_gprs) |
static void | set_variant_num_fprs (frv_gdbarch_tdep *var, int num_fprs) |
static void | set_variant_abi_fdpic (frv_gdbarch_tdep *var) |
static void | set_variant_scratch_registers (frv_gdbarch_tdep *var) |
static const char * | frv_register_name (struct gdbarch *gdbarch, int reg) |
static struct type * | frv_register_type (struct gdbarch *gdbarch, int reg) |
static enum register_status | frv_pseudo_register_read (struct gdbarch *gdbarch, readable_regcache *regcache, int reg, gdb_byte *buffer) |
static void | frv_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache, int reg, const gdb_byte *buffer) |
static int | frv_register_sim_regno (struct gdbarch *gdbarch, int reg) |
typedef | BP_MANIPULATION (frv_break_insn) |
static int | is_caller_saves_reg (int reg) |
static int | is_callee_saves_reg (int reg) |
static int | is_argument_reg (int reg) |
static CORE_ADDR | frv_analyze_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, frame_info_ptr this_frame, struct frv_unwind_cache *info) |
static CORE_ADDR | frv_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc) |
static CORE_ADDR | frv_skip_main_prologue (struct gdbarch *gdbarch, CORE_ADDR pc) |
static struct frv_unwind_cache * | frv_frame_unwind_cache (frame_info_ptr this_frame, void **this_prologue_cache) |
static void | frv_extract_return_value (struct type *type, struct regcache *regcache, gdb_byte *valbuf) |
static CORE_ADDR | frv_frame_align (struct gdbarch *gdbarch, CORE_ADDR sp) |
static CORE_ADDR | find_func_descr (struct gdbarch *gdbarch, CORE_ADDR entry_point) |
static CORE_ADDR | frv_convert_from_func_ptr_addr (struct gdbarch *gdbarch, CORE_ADDR addr, struct target_ops *targ) |
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, function_call_return_method return_method, CORE_ADDR struct_addr) |
static void | frv_store_return_value (struct type *type, struct regcache *regcache, const gdb_byte *valbuf) |
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 void | frv_frame_this_id (frame_info_ptr this_frame, void **this_prologue_cache, struct frame_id *this_id) |
static struct value * | frv_frame_prev_register (frame_info_ptr this_frame, void **this_prologue_cache, int regnum) |
static CORE_ADDR | frv_frame_base_address (frame_info_ptr this_frame, void **this_cache) |
static struct gdbarch * | frv_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) |
void | _initialize_frv_tdep () |
Variables | |
constexpr gdb_byte | frv_break_insn [] = {0xc0, 0x70, 0x00, 0x01} |
static const struct frame_unwind | frv_frame_unwind |
static const struct frame_base | frv_frame_base |
#define GDB_CGEN_REMAP_PREFIX frv |
Definition at line 43 of file frv-tdep.c.
using frv_gdbarch_tdep_up = std::unique_ptr<frv_gdbarch_tdep> |
Definition at line 96 of file frv-tdep.c.
void _initialize_frv_tdep | ( | ) |
Definition at line 1573 of file frv-tdep.c.
References frv_gdbarch_init(), and gdbarch_register().
typedef BP_MANIPULATION | ( | frv_break_insn | ) |
Definition at line 424 of file frv-tdep.c.
References frv_instr_size, get_pc_function_start(), status, and target_read_memory().
|
static |
Definition at line 1142 of file frv-tdep.c.
References 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 100 of file frv-tdep.c.
|
static |
Definition at line 512 of file frv-tdep.c.
References 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(), lr_regnum, pc_regnum, skip_prologue_using_sal(), sp_regnum, and target_read_memory().
Referenced by frv_frame_unwind_cache(), and frv_skip_prologue().
|
static |
Definition at line 1173 of file frv-tdep.c.
References frv_fdpic_find_global_pointer(), gdbarch_byte_order(), and get_target_memory_unsigned().
Referenced by frv_gdbarch_init().
|
static |
Definition at line 1108 of file frv-tdep.c.
References reg_buffer::arch(), gdbarch_byte_order(), type::length(), regcache_cooked_read_unsigned(), and store_unsigned_integer().
Referenced by frv_return_value().
int frv_fdpic_loadmap_addresses | ( | struct gdbarch * | gdbarch, |
CORE_ADDR * | interp_addr, | ||
CORE_ADDR * | exec_addr ) |
Definition at line 110 of file frv-tdep.c.
References fdpic_loadmap_exec_regnum, fdpic_loadmap_interp_regnum, FRV_ABI_FDPIC, get_current_regcache(), and regcache_cooked_read_unsigned().
Referenced by enable_break2(), and frv_relocate_main_executable().
|
static |
Definition at line 1135 of file frv-tdep.c.
Referenced by frv_gdbarch_init().
|
static |
Definition at line 1419 of file frv-tdep.c.
References frv_frame_unwind_cache().
|
static |
Definition at line 1400 of file frv-tdep.c.
References frv_frame_unwind_cache(), regnum, and trad_frame_get_prev_register().
|
static |
Definition at line 1370 of file frv-tdep.c.
References frv_unwind_cache::base, frame_id_build(), frv_frame_unwind_cache(), func, get_frame_func(), lookup_minimal_symbol(), bound_minimal_symbol::minsym, and bound_minimal_symbol::value_address().
|
static |
Definition at line 1087 of file frv-tdep.c.
References FRAME_OBSTACK_ZALLOC, frv_analyze_prologue(), get_frame_arch(), get_frame_func(), and trad_frame_alloc_saved_regs().
Referenced by frv_frame_base_address(), frv_frame_prev_register(), and frv_frame_this_id().
|
static |
Definition at line 1434 of file frv-tdep.c.
References arches, core_addr_lessthan(), fp_regnum, frame_base_set_default(), frame_unwind_append_unwinder(), FRV_ABI_FDPIC, frv_convert_from_func_ptr_addr(), frv_fetch_objfile_link_map(), frv_frame_align(), frv_frame_base, frv_frame_unwind, 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, gdbarch_alloc(), gdbarch_init_osabi(), gdbarch_list_lookup_by_info(), gdbarch::info(), new_variant(), frv_gdbarch_tdep::num_hw_breakpoints, frv_gdbarch_tdep::num_hw_watchpoints, pc_regnum, set_gdbarch_adjust_breakpoint_address(), set_gdbarch_breakpoint_kind_from_pc(), set_gdbarch_convert_from_func_ptr_addr(), set_gdbarch_deprecated_fp_regnum(), set_gdbarch_double_bit(), 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_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_so_ops(), set_gdbarch_sp_regnum(), set_gdbarch_sw_breakpoint_from_kind(), set_variant_abi_fdpic(), set_variant_num_fprs(), set_variant_num_gprs(), set_variant_scratch_registers(), and sp_regnum.
Referenced by _initialize_frv_tdep().
|
static |
Definition at line 295 of file frv-tdep.c.
References accg0123_regnum, accg0_regnum, accg7_regnum, iacc0_regnum, iacc0h_regnum, iacc0l_regnum, readable_regcache::raw_read(), and status.
Referenced by frv_gdbarch_init().
|
static |
Definition at line 332 of file frv-tdep.c.
References accg0123_regnum, accg0_regnum, accg7_regnum, iacc0_regnum, iacc0h_regnum, iacc0l_regnum, readable_regcache::raw_read(), and regcache::raw_write().
Referenced by frv_gdbarch_init().
|
static |
Definition at line 1190 of file frv-tdep.c.
References value::address, check_typedef(), type::code(), value::contents(), extract_unsigned_integer(), find_func_descr(), find_function_addr(), first_gpr_regnum, FRV_ABI_FDPIC, frv_fdpic_find_global_pointer(), gdbarch_byte_order(), type::length(), lr_regnum, regcache_cooked_write_unsigned(), return_method_struct, sp_regnum, store_unsigned_integer(), struct_return_regnum, type::target_type(), value::type(), and write_memory().
Referenced by frv_gdbarch_init().
|
static |
Definition at line 276 of file frv-tdep.c.
References frv_gdbarch_tdep::register_names.
Referenced by frv_gdbarch_init().
|
static |
Definition at line 356 of file frv-tdep.c.
References first_fpr_regnum, first_gpr_regnum, first_spr_regnum, gdbarch_num_regs(), last_fpr_regnum, last_gpr_regnum, pc_regnum, and SIM_REGNO_DOES_NOT_EXIST.
Referenced by frv_gdbarch_init().
Definition at line 284 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 |
Definition at line 1340 of file frv-tdep.c.
References type::code(), frv_extract_return_value(), frv_store_return_value(), RETURN_VALUE_REGISTER_CONVENTION, and RETURN_VALUE_STRUCT_CONVENTION.
Referenced by frv_gdbarch_init().
|
static |
Definition at line 1011 of file frv-tdep.c.
References extract_unsigned_integer(), gdbarch_byte_order(), general_symbol_info::linkage_name(), lookup_minimal_symbol_by_pc(), bound_minimal_symbol::minsym, symtab_and_line::pc, and target_read_memory().
Referenced by frv_gdbarch_init().
|
static |
Definition at line 975 of file frv-tdep.c.
References symtab_and_line::end, find_pc_line(), find_pc_partial_function(), frv_analyze_prologue(), symtab_and_line::line, and symtab_and_line::pc.
Referenced by frv_gdbarch_init().
|
static |
Definition at line 1318 of file frv-tdep.c.
References regcache::cooked_write(), and type::length().
Referenced by frv_return_value().
|
static |
Definition at line 494 of file frv-tdep.c.
Referenced by frv_analyze_prologue().
|
static |
Definition at line 485 of file frv-tdep.c.
Referenced by frv_analyze_prologue().
|
static |
Definition at line 475 of file frv-tdep.c.
Referenced by frv_analyze_prologue().
|
static |
Definition at line 140 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, 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, msr0_regnum, msr1_regnum, pc_regnum, psr_regnum, tbr_regnum, and xmalloc().
Referenced by frv_gdbarch_init().
|
static |
Definition at line 258 of file frv-tdep.c.
References fdpic_loadmap_exec_regnum, fdpic_loadmap_interp_regnum, FRV_ABI_FDPIC, and frv_gdbarch_tdep::register_names.
Referenced by frv_gdbarch_init().
|
static |
Definition at line 242 of file frv-tdep.c.
References first_fpr_regnum, frv_gdbarch_tdep::num_fprs, and frv_gdbarch_tdep::register_names.
Referenced by frv_gdbarch_init().
|
static |
Definition at line 223 of file frv-tdep.c.
References first_gpr_regnum, frv_gdbarch_tdep::num_gprs, and frv_gdbarch_tdep::register_names.
Referenced by frv_gdbarch_init().
|
static |
Definition at line 267 of file frv-tdep.c.
References frv_gdbarch_tdep::register_names, scr0_regnum, scr1_regnum, scr2_regnum, and scr3_regnum.
Referenced by frv_gdbarch_init().
|
constexpr |
Definition at line 422 of file frv-tdep.c.
|
static |
Definition at line 1426 of file frv-tdep.c.
Referenced by frv_gdbarch_init().
|
static |
Definition at line 1408 of file frv-tdep.c.
Referenced by frv_gdbarch_init().