GDB (xrefs)
|
#include "defs.h"
#include "linux-tdep.h"
#include "objfiles.h"
#include "opcode/arc.h"
#include "osabi.h"
#include "solib-svr4.h"
#include "disasm.h"
#include "opcodes/arc-dis.h"
#include "arc-linux-tdep.h"
#include "arc-tdep.h"
#include "arch/arc.h"
Go to the source code of this file.
Macros | |
#define | arc_linux_debug_printf(fmt, ...) debug_prefixed_printf_cond (arc_debug, "arc-linux", fmt, ##__VA_ARGS__) |
#define | REGOFF(offset) (offset * ARC_REGISTER_SIZE) |
Functions | |
static bool | arc_linux_is_sigtramp (frame_info_ptr this_frame) |
static CORE_ADDR | arc_linux_sigcontext_addr (frame_info_ptr this_frame) |
static int | arc_linux_cannot_fetch_register (struct gdbarch *gdbarch, int regnum) |
static int | arc_linux_cannot_store_register (struct gdbarch *gdbarch, int regnum) |
static int | arc_linux_breakpoint_kind_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr) |
static const gdb_byte * | arc_linux_sw_breakpoint_from_kind (struct gdbarch *gdbarch, int kind, int *size) |
static std::vector< CORE_ADDR > | handle_atomic_sequence (arc_instruction insn, disassemble_info *di) |
static std::vector< CORE_ADDR > | arc_linux_software_single_step (struct regcache *regcache) |
static CORE_ADDR | arc_linux_skip_solib_resolver (struct gdbarch *gdbarch, CORE_ADDR pc) |
static void | supply_register (struct regcache *regcache, int regnum, const gdb_byte *buf) |
void | arc_linux_supply_gregset (const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t size) |
void | arc_linux_supply_v2_regset (const struct regset *regset, struct regcache *regcache, int regnum, const void *v2_regs, size_t size) |
static void | collect_register (const struct regcache *regcache, struct gdbarch *gdbarch, int regnum, gdb_byte *buf) |
void | arc_linux_collect_gregset (const struct regset *regset, const struct regcache *regcache, int regnum, void *gregs, size_t size) |
void | arc_linux_collect_v2_regset (const struct regset *regset, const struct regcache *regcache, int regnum, void *v2_regs, size_t size) |
static void | arc_linux_iterate_over_regset_sections (struct gdbarch *gdbarch, iterate_over_regset_sections_cb *cb, void *cb_data, const struct regcache *regcache) |
static const struct target_desc * | arc_linux_core_read_description (struct gdbarch *gdbarch, struct target_ops *target, bfd *abfd) |
static void | arc_linux_init_osabi (struct gdbarch_info info, struct gdbarch *gdbarch) |
Variables | |
static const int | arc_linux_sc_reg_offsets [] |
static const int | arc_linux_core_reg_offsets [] |
static const gdb_byte | arc_linux_trap_s_be [] = { 0x78, 0x3e } |
static const gdb_byte | arc_linux_trap_s_le [] = { 0x3e, 0x78 } |
static const int | trap_size = 2 |
static const struct regset | arc_linux_gregset |
static const struct regset | arc_linux_v2_regset |
initialize_file_ftype | _initialize_arc_linux_tdep |
#define arc_linux_debug_printf | ( | fmt, | |
... ) debug_prefixed_printf_cond (arc_debug, "arc-linux", fmt, ##__VA_ARGS__) |
Definition at line 37 of file arc-linux-tdep.c.
Referenced by arc_linux_init_osabi(), arc_linux_is_sigtramp(), arc_linux_skip_solib_resolver(), and arc_linux_software_single_step().
#define REGOFF | ( | offset | ) | (offset * ARC_REGISTER_SIZE) |
Definition at line 40 of file arc-linux-tdep.c.
Referenced by arc_linux_collect_v2_regset(), and arc_linux_supply_v2_regset().
|
static |
Definition at line 318 of file arc-linux-tdep.c.
References trap_size.
Referenced by arc_linux_init_osabi().
|
static |
Definition at line 270 of file arc-linux-tdep.c.
References ARC_BLINK_REGNUM, ARC_ILINK_REGNUM, ARC_LIMM_REGNUM, ARC_LP_COUNT_REGNUM, arc_mach_is_arcv2(), ARC_R30_REGNUM, ARC_R58_REGNUM, ARC_R59_REGNUM, ARC_RESERVED_REGNUM, and regnum.
Referenced by arc_linux_init_osabi().
|
static |
Definition at line 290 of file arc-linux-tdep.c.
References ARC_BLINK_REGNUM, ARC_ILINK_REGNUM, ARC_LIMM_REGNUM, ARC_LP_COUNT_REGNUM, arc_mach_is_arcv2(), ARC_PCL_REGNUM, ARC_R30_REGNUM, ARC_R58_REGNUM, ARC_R59_REGNUM, ARC_RESERVED_REGNUM, and regnum.
Referenced by arc_linux_init_osabi().
void arc_linux_collect_gregset | ( | const struct regset * | regset, |
const struct regcache * | regcache, | ||
int | regnum, | ||
void * | gregs, | ||
size_t | size ) |
Definition at line 611 of file arc-linux-tdep.c.
References ARC_LAST_REGNUM, arc_linux_core_reg_offsets, reg_buffer::arch(), collect_register(), gdb_static_assert(), and regnum.
Referenced by fill_gregset(), and store_gregs().
void arc_linux_collect_v2_regset | ( | const struct regset * | regset, |
const struct regcache * | regcache, | ||
int | regnum, | ||
void * | v2_regs, | ||
size_t | size ) |
Definition at line 632 of file arc-linux-tdep.c.
References ARC_R30_REGNUM, ARC_R58_REGNUM, ARC_R59_REGNUM, reg_buffer::raw_collect(), regnum, and REGOFF.
|
static |
Definition at line 682 of file arc-linux-tdep.c.
References arc_arch_features_create(), arc_lookup_target_description(), target_desc::features, and gdbarch_bfd_arch_info().
Referenced by arc_linux_init_osabi().
|
static |
Definition at line 695 of file arc-linux-tdep.c.
References arc_linux_breakpoint_kind_from_pc(), arc_linux_cannot_fetch_register(), arc_linux_cannot_store_register(), arc_linux_core_read_description(), arc_linux_debug_printf, arc_linux_is_sigtramp(), arc_linux_iterate_over_regset_sections(), arc_linux_sc_reg_offsets, arc_linux_sigcontext_addr(), arc_linux_skip_solib_resolver(), arc_linux_software_single_step(), arc_linux_sw_breakpoint_from_kind(), find_solib_trampoline_target(), arc_gdbarch_tdep::is_sigtramp, arc_gdbarch_tdep::jb_pc, linux_ilp32_fetch_link_map_offsets(), linux_init_abi(), arc_gdbarch_tdep::sc_num_regs, arc_gdbarch_tdep::sc_reg_offset, set_gdbarch_breakpoint_kind_from_pc(), set_gdbarch_cannot_fetch_register(), set_gdbarch_cannot_store_register(), set_gdbarch_core_read_description(), set_gdbarch_fetch_tls_load_module_address(), set_gdbarch_iterate_over_regset_sections(), set_gdbarch_skip_solib_resolver(), set_gdbarch_skip_trampoline_code(), set_gdbarch_software_single_step(), set_gdbarch_sw_breakpoint_from_kind(), set_solib_svr4_fetch_link_map_offsets(), arc_gdbarch_tdep::sigcontext_addr, and svr4_fetch_objfile_link_map().
|
static |
Definition at line 162 of file arc-linux-tdep.c.
References arc_linux_debug_printf, arc_mach_is_arcv2(), gdbarch_byte_order(), get_frame_arch(), get_frame_pc(), paddress(), and safe_frame_unwind_memory().
Referenced by arc_linux_init_osabi().
|
static |
Definition at line 663 of file arc-linux-tdep.c.
References arc_linux_gregset, ARC_LINUX_SIZEOF_V2_REGSET, arc_linux_v2_regset, and ARC_REGISTER_SIZE.
Referenced by arc_linux_init_osabi().
|
static |
Definition at line 260 of file arc-linux-tdep.c.
References get_frame_sp().
Referenced by arc_linux_init_osabi().
|
static |
Definition at line 496 of file arc-linux-tdep.c.
References arc_debug, arc_linux_debug_printf, frame_unwind_caller_pc(), get_current_frame(), lookup_minimal_symbol(), bound_minimal_symbol::minsym, print_core_address(), and bound_minimal_symbol::value_address().
Referenced by arc_linux_init_osabi().
|
static |
Definition at line 411 of file arc-linux-tdep.c.
References ARC_BTA_REGNUM, arc_delayed_print_insn(), arc_insn_get_branch_target(), arc_insn_get_linear_next_pc(), arc_linux_debug_printf, ARC_LP_COUNT_REGNUM, ARC_LP_END_REGNUM, ARC_LP_START_REGNUM, ARC_STATUS32_DE_MASK, ARC_STATUS32_L_MASK, reg_buffer::arch(), gdb_disassemble_info::disasm_info(), gdbarch_ps_regnum(), handle_atomic_sequence(), arc_gdbarch_tdep::has_hw_loops, paddress(), regcache_cooked_read_unsigned(), and regcache_read_pc().
Referenced by arc_linux_init_osabi().
void arc_linux_supply_gregset | ( | const struct regset * | regset, |
struct regcache * | regcache, | ||
int | regnum, | ||
const void * | gregs, | ||
size_t | size ) |
Definition at line 548 of file arc-linux-tdep.c.
References ARC_LAST_REGNUM, arc_linux_core_reg_offsets, gdb_static_assert(), regnum, and supply_register().
Referenced by fetch_gregs(), and supply_gregset().
void arc_linux_supply_v2_regset | ( | const struct regset * | regset, |
struct regcache * | regcache, | ||
int | regnum, | ||
const void * | v2_regs, | ||
size_t | size ) |
Definition at line 568 of file arc-linux-tdep.c.
References ARC_R30_REGNUM, ARC_R58_REGNUM, ARC_R59_REGNUM, reg_buffer::raw_supply(), regnum, and REGOFF.
|
static |
Definition at line 326 of file arc-linux-tdep.c.
References arc_linux_trap_s_be, arc_linux_trap_s_le, gdbarch_byte_order(), size, and trap_size.
Referenced by arc_linux_init_osabi().
|
static |
Definition at line 586 of file arc-linux-tdep.c.
References ARC_ERET_REGNUM, arc_linux_core_reg_offsets, ARC_OFFSET_NO_REGISTER, gdbarch_pc_regnum(), reg_buffer::raw_collect(), and regnum.
Referenced by arc_linux_collect_gregset().
|
static |
Definition at line 359 of file arc-linux-tdep.c.
References arc_delayed_print_insn(), and arc_insn_get_linear_next_pc().
Referenced by arc_linux_software_single_step().
|
static |
Definition at line 538 of file arc-linux-tdep.c.
References arc_linux_core_reg_offsets, ARC_OFFSET_NO_REGISTER, reg_buffer::raw_supply(), and regnum.
Referenced by arc_linux_supply_gregset().
|
extern |
Definition at line 744 of file arc-linux-tdep.c.
|
static |
Definition at line 105 of file arc-linux-tdep.c.
Referenced by arc_linux_collect_gregset(), arc_linux_supply_gregset(), collect_register(), and supply_register().
|
static |
Definition at line 648 of file arc-linux-tdep.c.
Referenced by arc_linux_iterate_over_regset_sections().
|
static |
Definition at line 51 of file arc-linux-tdep.c.
Referenced by arc_linux_init_osabi().
|
static |
Definition at line 311 of file arc-linux-tdep.c.
Referenced by arc_linux_sw_breakpoint_from_kind().
|
static |
Definition at line 312 of file arc-linux-tdep.c.
Referenced by arc_linux_sw_breakpoint_from_kind().
|
static |
Definition at line 654 of file arc-linux-tdep.c.
Referenced by arc_linux_iterate_over_regset_sections().
|
static |
Definition at line 313 of file arc-linux-tdep.c.
Referenced by arc_linux_breakpoint_kind_from_pc(), and arc_linux_sw_breakpoint_from_kind().