GDB (xrefs)
|
#include "defs.h"
#include "frame.h"
#include "frame-base.h"
#include "frame-unwind.h"
#include "dwarf2/frame.h"
#include "trad-frame.h"
#include "symtab.h"
#include "gdbtypes.h"
#include "gdbcmd.h"
#include "gdbcore.h"
#include "value.h"
#include "dis-asm.h"
#include "inferior.h"
#include "arch-utils.h"
#include "regcache.h"
#include "regset.h"
#include "osabi.h"
#include "linux-tdep.h"
#include "objfiles.h"
#include "solib-svr4.h"
#include "tilegx-tdep.h"
#include "opcode/tilegx.h"
#include <algorithm>
#include "gdbsupport/byte-vector.h"
Go to the source code of this file.
Classes | |
struct | tilegx_frame_cache |
struct | tilegx_reverse_regs |
Macros | |
#define | INT_SWINT_1_SIGRETURN (~0) |
Enumerations | |
enum | reverse_state { REVERSE_STATE_REGISTER , REVERSE_STATE_VALUE , REVERSE_STATE_UNKNOWN } |
Functions | |
static const char * | tilegx_register_name (struct gdbarch *gdbarch, int regnum) |
static struct type * | tilegx_register_type (struct gdbarch *gdbarch, int regnum) |
static int | tilegx_dwarf2_reg_to_regnum (struct gdbarch *gdbarch, int num) |
static int | tilegx_type_is_scalar (struct type *t) |
static int | tilegx_use_struct_convention (struct type *type) |
static void | tilegx_extract_return_value (struct type *type, struct regcache *regcache, gdb_byte *valbuf) |
static void | tilegx_store_return_value (struct type *type, struct regcache *regcache, const void *valbuf) |
static enum return_value_convention | tilegx_return_value (struct gdbarch *gdbarch, struct value *function, struct type *type, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf) |
static CORE_ADDR | tilegx_frame_align (struct gdbarch *gdbarch, CORE_ADDR addr) |
static CORE_ADDR | tilegx_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 CORE_ADDR | tilegx_analyze_prologue (struct gdbarch *gdbarch, CORE_ADDR start_addr, CORE_ADDR end_addr, struct tilegx_frame_cache *cache, frame_info_ptr next_frame) |
static CORE_ADDR | tilegx_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR start_pc) |
static int | tilegx_stack_frame_destroyed_p (struct gdbarch *gdbarch, CORE_ADDR pc) |
static int | tilegx_get_longjmp_target (frame_info_ptr frame, CORE_ADDR *pc) |
static void | tilegx_write_pc (struct regcache *regcache, CORE_ADDR pc) |
typedef | BP_MANIPULATION (tilegx_break_insn) |
static struct value * | tilegx_frame_prev_register (frame_info_ptr this_frame, void **this_cache, int regnum) |
static void | tilegx_frame_this_id (frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id) |
static CORE_ADDR | tilegx_frame_base_address (frame_info_ptr this_frame, void **this_cache) |
static int | tilegx_cannot_reference_register (struct gdbarch *gdbarch, int regno) |
static struct gdbarch * | tilegx_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) |
void | _initialize_tilegx_tdep () |
Variables | |
static const struct tilegx_reverse_regs | template_reverse_regs [TILEGX_NUM_PHYS_REGS] |
constexpr gdb_byte | tilegx_break_insn [] |
static const struct frame_unwind | tilegx_frame_unwind |
static const struct frame_base | tilegx_frame_base |
#define INT_SWINT_1_SIGRETURN (~0) |
Definition at line 800 of file tilegx-tdep.c.
Referenced by tilegx_write_pc().
enum reverse_state |
Enumerator | |
---|---|
REVERSE_STATE_REGISTER | |
REVERSE_STATE_VALUE | |
REVERSE_STATE_UNKNOWN |
Definition at line 57 of file tilegx-tdep.c.
void _initialize_tilegx_tdep | ( | ) |
Definition at line 1025 of file tilegx-tdep.c.
References gdbarch_register(), and tilegx_gdbarch_init().
typedef BP_MANIPULATION | ( | tilegx_break_insn | ) |
Definition at line 831 of file tilegx-tdep.c.
References tilegx_frame_cache::base, FRAME_OBSTACK_ZALLOC, get_frame_arch(), get_frame_func(), get_frame_pc(), get_frame_register_unsigned(), tilegx_frame_cache::saved_regs, trad_frame_saved_reg::set_value(), tilegx_frame_cache::start_pc, tilegx_analyze_prologue(), TILEGX_LR_REGNUM, TILEGX_PC_REGNUM, TILEGX_SP_REGNUM, and trad_frame_alloc_saved_regs().
|
static |
Definition at line 362 of file tilegx-tdep.c.
References trad_frame_saved_reg::addr, extract_unsigned_integer(), gdbarch_byte_order(), memory_error(), REVERSE_STATE_REGISTER, REVERSE_STATE_UNKNOWN, REVERSE_STATE_VALUE, safe_frame_unwind_memory(), tilegx_frame_cache::saved_regs, trad_frame_saved_reg::set_addr(), trad_frame_saved_reg::set_realreg(), trad_frame_saved_reg::set_value(), tilegx_reverse_regs::state, status, TARGET_XFER_E_IO, template_reverse_regs, TILEGX_LR_REGNUM, TILEGX_NUM_PHYS_REGS, TILEGX_R52_REGNUM, TILEGX_SP_REGNUM, TILEGX_ZERO_REGNUM, and tilegx_reverse_regs::value.
Referenced by BP_MANIPULATION(), and tilegx_skip_prologue().
|
static |
Definition at line 924 of file tilegx-tdep.c.
References TILEGX_FAULTNUM_REGNUM, TILEGX_NUM_EASY_REGS, and TILEGX_PC_REGNUM.
Referenced by tilegx_gdbarch_init().
|
static |
Definition at line 176 of file tilegx-tdep.c.
Referenced by tilegx_gdbarch_init().
|
static |
Definition at line 211 of file tilegx-tdep.c.
References type::length(), readable_regcache::raw_read(), regnum, TILEGX_R0_REGNUM, and tilegx_reg_size.
Referenced by tilegx_return_value().
|
static |
Definition at line 266 of file tilegx-tdep.c.
Referenced by tilegx_gdbarch_init(), and tilegx_push_dummy_call().
|
static |
Definition at line 895 of file tilegx-tdep.c.
References tilegx_frame_cache::base.
|
static |
Definition at line 867 of file tilegx-tdep.c.
References regnum, and trad_frame_get_prev_register().
|
static |
Definition at line 881 of file tilegx-tdep.c.
References frame_id_build().
|
static |
Definition at line 936 of file tilegx-tdep.c.
References arches, core_addr_lessthan(), dwarf2_append_unwinders(), frame_base_set_default(), frame_unwind_append_unwinder(), gdbarch_alloc(), gdbarch_init_osabi(), gdbarch_list_lookup_by_info(), gdbarch_ptr_bit(), gdbarch::info(), set_gdbarch_addr_bit(), set_gdbarch_breakpoint_kind_from_pc(), set_gdbarch_cannot_fetch_register(), set_gdbarch_cannot_store_register(), set_gdbarch_double_bit(), set_gdbarch_dwarf2_reg_to_regnum(), set_gdbarch_float_bit(), set_gdbarch_frame_align(), set_gdbarch_get_longjmp_target(), 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_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_stack_frame_destroyed_p(), set_gdbarch_sw_breakpoint_from_kind(), set_gdbarch_write_pc(), tilegx_cannot_reference_register(), tilegx_dwarf2_reg_to_regnum(), tilegx_frame_align(), tilegx_frame_base, tilegx_frame_unwind, tilegx_get_longjmp_target(), TILEGX_NUM_REGS, TILEGX_PC_REGNUM, tilegx_push_dummy_call(), tilegx_register_name(), tilegx_register_type(), tilegx_return_value(), tilegx_skip_prologue(), TILEGX_SP_REGNUM, tilegx_stack_frame_destroyed_p(), and tilegx_write_pc().
Referenced by _initialize_tilegx_tdep().
|
static |
Definition at line 777 of file tilegx-tdep.c.
References extract_unsigned_integer(), gdbarch_byte_order(), get_frame_arch(), get_frame_register_unsigned(), target_read_memory(), and TILEGX_R0_REGNUM.
Referenced by tilegx_gdbarch_init().
|
static |
Definition at line 275 of file tilegx-tdep.c.
References extract_unsigned_integer(), gdbarch_byte_order(), regcache_cooked_write_unsigned(), return_method_struct, tilegx_frame_align(), TILEGX_LR_REGNUM, TILEGX_R0_REGNUM, TILEGX_R9_REGNUM, tilegx_reg_size, TILEGX_SP_REGNUM, and write_memory().
Referenced by tilegx_gdbarch_init().
|
static |
Definition at line 143 of file tilegx-tdep.c.
References gdb_static_assert(), regnum, and TILEGX_NUM_REGS.
Referenced by tilegx_gdbarch_init().
Definition at line 165 of file tilegx-tdep.c.
References builtin_type::builtin_func_ptr, builtin_type(), builtin_type::builtin_uint64, regnum, and TILEGX_PC_REGNUM.
Referenced by tilegx_gdbarch_init().
|
static |
Definition at line 250 of file tilegx-tdep.c.
References RETURN_VALUE_REGISTER_CONVENTION, RETURN_VALUE_STRUCT_CONVENTION, tilegx_extract_return_value(), tilegx_store_return_value(), and tilegx_use_struct_convention().
Referenced by tilegx_gdbarch_init().
|
static |
Definition at line 726 of file tilegx-tdep.c.
References obj_section::endaddr(), find_pc_partial_function(), find_pc_section(), skip_prologue_using_sal(), and tilegx_analyze_prologue().
Referenced by tilegx_gdbarch_init().
|
static |
Definition at line 758 of file tilegx-tdep.c.
References obj_section::addr(), and find_pc_partial_function().
Referenced by tilegx_gdbarch_init().
|
static |
Definition at line 226 of file tilegx-tdep.c.
References type::length(), regcache::raw_write(), regnum, TILEGX_R0_REGNUM, and tilegx_reg_size.
Referenced by tilegx_return_value().
|
static |
Definition at line 185 of file tilegx-tdep.c.
References type::code().
Referenced by tilegx_use_struct_convention().
|
static |
Definition at line 198 of file tilegx-tdep.c.
References type::length(), TILEGX_R0_REGNUM, TILEGX_R9_REGNUM, tilegx_reg_size, and tilegx_type_is_scalar().
Referenced by tilegx_return_value().
|
static |
Definition at line 805 of file tilegx-tdep.c.
References INT_SWINT_1_SIGRETURN, regcache_cooked_write_unsigned(), TILEGX_FAULTNUM_REGNUM, and TILEGX_PC_REGNUM.
Referenced by tilegx_gdbarch_init().
|
static |
Definition at line 72 of file tilegx-tdep.c.
Referenced by tilegx_analyze_prologue().
|
constexpr |
Definition at line 828 of file tilegx-tdep.c.
|
static |
Definition at line 914 of file tilegx-tdep.c.
Referenced by tilegx_gdbarch_init().
|
static |
Definition at line 903 of file tilegx-tdep.c.
Referenced by tilegx_gdbarch_init().