GDB (xrefs)
Loading...
Searching...
No Matches
Macros | Functions | Variables
arc-linux-tdep.c File Reference
#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_descarc_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
 

Macro Definition Documentation

◆ arc_linux_debug_printf

#define arc_linux_debug_printf ( fmt,
... )    debug_prefixed_printf_cond (arc_debug, "arc-linux", fmt, ##__VA_ARGS__)

◆ REGOFF

#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().

Function Documentation

◆ arc_linux_breakpoint_kind_from_pc()

static int arc_linux_breakpoint_kind_from_pc ( struct gdbarch * gdbarch,
CORE_ADDR * pcptr )
static

Definition at line 318 of file arc-linux-tdep.c.

References trap_size.

Referenced by arc_linux_init_osabi().

◆ arc_linux_cannot_fetch_register()

static int arc_linux_cannot_fetch_register ( struct gdbarch * gdbarch,
int regnum )
static

◆ arc_linux_cannot_store_register()

static int arc_linux_cannot_store_register ( struct gdbarch * gdbarch,
int regnum )
static

◆ arc_linux_collect_gregset()

void arc_linux_collect_gregset ( const struct regset * regset,
const struct regcache * regcache,
int regnum,
void * gregs,
size_t size )

◆ arc_linux_collect_v2_regset()

void arc_linux_collect_v2_regset ( const struct regset * regset,
const struct regcache * regcache,
int regnum,
void * v2_regs,
size_t size )

◆ arc_linux_core_read_description()

static const struct target_desc * arc_linux_core_read_description ( struct gdbarch * gdbarch,
struct target_ops * target,
bfd * abfd )
static

◆ arc_linux_init_osabi()

static void arc_linux_init_osabi ( struct gdbarch_info info,
struct gdbarch * gdbarch )
static

◆ arc_linux_is_sigtramp()

static bool arc_linux_is_sigtramp ( frame_info_ptr this_frame)
static

◆ arc_linux_iterate_over_regset_sections()

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

◆ arc_linux_sigcontext_addr()

static CORE_ADDR arc_linux_sigcontext_addr ( frame_info_ptr this_frame)
static

Definition at line 260 of file arc-linux-tdep.c.

References get_frame_sp().

Referenced by arc_linux_init_osabi().

◆ arc_linux_skip_solib_resolver()

static CORE_ADDR arc_linux_skip_solib_resolver ( struct gdbarch * gdbarch,
CORE_ADDR pc )
static

◆ arc_linux_software_single_step()

static std::vector< CORE_ADDR > arc_linux_software_single_step ( struct regcache * regcache)
static

◆ arc_linux_supply_gregset()

void arc_linux_supply_gregset ( const struct regset * regset,
struct regcache * regcache,
int regnum,
const void * gregs,
size_t size )

◆ arc_linux_supply_v2_regset()

void arc_linux_supply_v2_regset ( const struct regset * regset,
struct regcache * regcache,
int regnum,
const void * v2_regs,
size_t size )

◆ arc_linux_sw_breakpoint_from_kind()

static const gdb_byte * arc_linux_sw_breakpoint_from_kind ( struct gdbarch * gdbarch,
int kind,
int * size )
static

◆ collect_register()

static void collect_register ( const struct regcache * regcache,
struct gdbarch * gdbarch,
int regnum,
gdb_byte * buf )
static

◆ handle_atomic_sequence()

static std::vector< CORE_ADDR > handle_atomic_sequence ( arc_instruction insn,
disassemble_info * di )
static

◆ supply_register()

static void supply_register ( struct regcache * regcache,
int regnum,
const gdb_byte * buf )
static

Variable Documentation

◆ _initialize_arc_linux_tdep

void _initialize_arc_linux_tdep
extern

Definition at line 744 of file arc-linux-tdep.c.

◆ arc_linux_core_reg_offsets

const int arc_linux_core_reg_offsets[]
static

◆ arc_linux_gregset

const struct regset arc_linux_gregset
static
Initial value:
= {
}
void arc_linux_collect_gregset(const struct regset *regset, const struct regcache *regcache, int regnum, void *gregs, size_t size)
void arc_linux_supply_gregset(const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t size)
static const int arc_linux_core_reg_offsets[]

Definition at line 648 of file arc-linux-tdep.c.

Referenced by arc_linux_iterate_over_regset_sections().

◆ arc_linux_sc_reg_offsets

const int arc_linux_sc_reg_offsets[]
static

Definition at line 51 of file arc-linux-tdep.c.

Referenced by arc_linux_init_osabi().

◆ arc_linux_trap_s_be

const gdb_byte arc_linux_trap_s_be[] = { 0x78, 0x3e }
static

Definition at line 311 of file arc-linux-tdep.c.

Referenced by arc_linux_sw_breakpoint_from_kind().

◆ arc_linux_trap_s_le

const gdb_byte arc_linux_trap_s_le[] = { 0x3e, 0x78 }
static

Definition at line 312 of file arc-linux-tdep.c.

Referenced by arc_linux_sw_breakpoint_from_kind().

◆ arc_linux_v2_regset

const struct regset arc_linux_v2_regset
static
Initial value:
= {
NULL,
}
void arc_linux_supply_v2_regset(const struct regset *regset, struct regcache *regcache, int regnum, const void *v2_regs, 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)

Definition at line 654 of file arc-linux-tdep.c.

Referenced by arc_linux_iterate_over_regset_sections().

◆ trap_size

const int trap_size = 2
static