GDB (xrefs)
Loading...
Searching...
No Matches
Classes | Macros | Functions | Variables
hppa-linux-tdep.c File Reference
#include "defs.h"
#include "gdbcore.h"
#include "osabi.h"
#include "target.h"
#include "objfiles.h"
#include "solib-svr4.h"
#include "glibc-tdep.h"
#include "frame-unwind.h"
#include "trad-frame.h"
#include "dwarf2/frame.h"
#include "value.h"
#include "regset.h"
#include "regcache.h"
#include "hppa-tdep.h"
#include "linux-tdep.h"
#include "elf/common.h"

Go to the source code of this file.

Classes

struct  insn_pattern
 
struct  hppa_linux_sigtramp_unwind_cache
 

Macros

#define HPPA_MAX_INSN_PATTERN_LEN   (4)
 

Functions

static int hppa_dwarf_reg_to_regnum (struct gdbarch *gdbarch, int reg)
 
static void hppa_linux_target_write_pc (struct regcache *regcache, CORE_ADDR v)
 
static int insns_match_pattern (struct gdbarch *gdbarch, CORE_ADDR pc, struct insn_pattern *pattern, unsigned int *insn)
 
static CORE_ADDR hppa_linux_sigtramp_find_sigcontext (struct gdbarch *gdbarch, CORE_ADDR pc)
 
static struct hppa_linux_sigtramp_unwind_cachehppa_linux_sigtramp_frame_unwind_cache (frame_info_ptr this_frame, void **this_cache)
 
static void hppa_linux_sigtramp_frame_this_id (frame_info_ptr this_frame, void **this_prologue_cache, struct frame_id *this_id)
 
static struct valuehppa_linux_sigtramp_frame_prev_register (frame_info_ptr this_frame, void **this_prologue_cache, int regnum)
 
static int hppa_linux_sigtramp_frame_sniffer (const struct frame_unwind *self, frame_info_ptr this_frame, void **this_prologue_cache)
 
static CORE_ADDR hppa_linux_find_global_pointer (struct gdbarch *gdbarch, struct value *function)
 
static void hppa_linux_iterate_over_regset_sections (struct gdbarch *gdbarch, iterate_over_regset_sections_cb *cb, void *cb_data, const struct regcache *regcache)
 
static void hppa_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 
void _initialize_hppa_linux_tdep ()
 

Variables

static struct insn_pattern hppa_sigtramp []
 
static const struct frame_unwind hppa_linux_sigtramp_frame_unwind
 
static const struct regcache_map_entry hppa_linux_gregmap []
 
static const struct regcache_map_entry hppa_linux_fpregmap []
 
static const struct regset hppa_linux_regset
 
static const struct regset hppa_linux_fpregset
 

Macro Definition Documentation

◆ HPPA_MAX_INSN_PATTERN_LEN

#define HPPA_MAX_INSN_PATTERN_LEN   (4)

Definition at line 80 of file hppa-linux-tdep.c.

Referenced by hppa_linux_sigtramp_find_sigcontext().

Function Documentation

◆ _initialize_hppa_linux_tdep()

void _initialize_hppa_linux_tdep ( )

◆ hppa_dwarf_reg_to_regnum()

static int hppa_dwarf_reg_to_regnum ( struct gdbarch * gdbarch,
int reg )
static

Definition at line 39 of file hppa-linux-tdep.c.

References HPPA_FP4_REGNUM.

Referenced by hppa_linux_init_abi().

◆ hppa_linux_find_global_pointer()

static CORE_ADDR hppa_linux_find_global_pointer ( struct gdbarch * gdbarch,
struct value * function )
static

◆ hppa_linux_init_abi()

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

◆ hppa_linux_iterate_over_regset_sections()

static void hppa_linux_iterate_over_regset_sections ( struct gdbarch * gdbarch,
iterate_over_regset_sections_cb * cb,
void * cb_data,
const struct regcache * regcache )
static

◆ hppa_linux_sigtramp_find_sigcontext()

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

◆ hppa_linux_sigtramp_frame_prev_register()

static struct value * hppa_linux_sigtramp_frame_prev_register ( frame_info_ptr this_frame,
void ** this_prologue_cache,
int regnum )
static

◆ hppa_linux_sigtramp_frame_sniffer()

static int hppa_linux_sigtramp_frame_sniffer ( const struct frame_unwind * self,
frame_info_ptr this_frame,
void ** this_prologue_cache )
static

◆ hppa_linux_sigtramp_frame_this_id()

static void hppa_linux_sigtramp_frame_this_id ( frame_info_ptr this_frame,
void ** this_prologue_cache,
struct frame_id * this_id )
static

◆ hppa_linux_sigtramp_frame_unwind_cache()

static struct hppa_linux_sigtramp_unwind_cache * hppa_linux_sigtramp_frame_unwind_cache ( frame_info_ptr this_frame,
void ** this_cache )
static

◆ hppa_linux_target_write_pc()

static void hppa_linux_target_write_pc ( struct regcache * regcache,
CORE_ADDR v )
static

◆ insns_match_pattern()

static int insns_match_pattern ( struct gdbarch * gdbarch,
CORE_ADDR pc,
struct insn_pattern * pattern,
unsigned int * insn )
static

Variable Documentation

◆ hppa_linux_fpregmap

const struct regcache_map_entry hppa_linux_fpregmap[]
static
Initial value:
=
{
{ 64, HPPA_FP0_REGNUM, 4 },
{ 0 }
}
@ HPPA_FP0_REGNUM
Definition hppa-tdep.h:72

Definition at line 450 of file hppa-linux-tdep.c.

◆ hppa_linux_fpregset

const struct regset hppa_linux_fpregset
static
Initial value:
=
{
}
static const struct regcache_map_entry hppa_linux_fpregmap[]
void regcache_collect_regset(const struct regset *regset, const struct regcache *regcache, int regnum, void *buf, size_t size)
Definition regcache.c:1273
void regcache_supply_regset(const struct regset *regset, struct regcache *regcache, int regnum, const void *buf, size_t size)
Definition regcache.c:1251

Definition at line 465 of file hppa-linux-tdep.c.

Referenced by hppa_linux_iterate_over_regset_sections().

◆ hppa_linux_gregmap

const struct regcache_map_entry hppa_linux_gregmap[]
static
Initial value:
=
{
{ 32, HPPA_R0_REGNUM },
{ 1, HPPA_SR4_REGNUM+1 },
{ 1, HPPA_SR4_REGNUM+2 },
{ 1, HPPA_SR4_REGNUM+3 },
{ 1, HPPA_SR4_REGNUM+4 },
{ 1, HPPA_SR4_REGNUM+5 },
{ 1, HPPA_SR4_REGNUM+6 },
{ 1, HPPA_SR4_REGNUM+7 },
{ 0 }
}
@ HPPA_CCR_REGNUM
Definition hppa-tdep.h:67
@ HPPA_PCSQ_HEAD_REGNUM
Definition hppa-tdep.h:47
@ HPPA_IOR_REGNUM
Definition hppa-tdep.h:53
@ HPPA_SAR_REGNUM
Definition hppa-tdep.h:44
@ HPPA_TR0_REGNUM
Definition hppa-tdep.h:68
@ HPPA_IPSW_REGNUM
Definition hppa-tdep.h:45
@ HPPA_ISR_REGNUM
Definition hppa-tdep.h:52
@ HPPA_PID0_REGNUM
Definition hppa-tdep.h:63
@ HPPA_PCOQ_HEAD_REGNUM
Definition hppa-tdep.h:46
@ HPPA_PCSQ_TAIL_REGNUM
Definition hppa-tdep.h:49
@ HPPA_PCOQ_TAIL_REGNUM
Definition hppa-tdep.h:48
@ HPPA_RCR_REGNUM
Definition hppa-tdep.h:62
@ HPPA_EIEM_REGNUM
Definition hppa-tdep.h:50
@ HPPA_SR4_REGNUM
Definition hppa-tdep.h:54
@ HPPA_IIR_REGNUM
Definition hppa-tdep.h:51
@ HPPA_R0_REGNUM
Definition hppa-tdep.h:33

Definition at line 422 of file hppa-linux-tdep.c.

◆ hppa_linux_regset

const struct regset hppa_linux_regset
static
Initial value:
=
{
}
static const struct regcache_map_entry hppa_linux_gregmap[]

Definition at line 459 of file hppa-linux-tdep.c.

Referenced by hppa_linux_iterate_over_regset_sections().

◆ hppa_linux_sigtramp_frame_unwind

const struct frame_unwind hppa_linux_sigtramp_frame_unwind
static
Initial value:
= {
"hppa linux sigtramp",
NULL,
}
enum unwind_stop_reason default_frame_unwind_stop_reason(frame_info_ptr this_frame, void **this_cache)
@ SIGTRAMP_FRAME
Definition frame.h:198
static int hppa_linux_sigtramp_frame_sniffer(const struct frame_unwind *self, frame_info_ptr this_frame, void **this_prologue_cache)
static void hppa_linux_sigtramp_frame_this_id(frame_info_ptr this_frame, void **this_prologue_cache, struct frame_id *this_id)
static struct value * hppa_linux_sigtramp_frame_prev_register(frame_info_ptr this_frame, void **this_prologue_cache, int regnum)

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

Referenced by hppa_linux_init_abi().

◆ hppa_sigtramp

struct insn_pattern hppa_sigtramp[]
static
Initial value:
= {
{ 0x34190000, 0xfffffffd },
{ 0x3414015a, 0xffffffff },
{ 0xe4008200, 0xffffffff },
{ 0x08000240, 0xffffffff },
{ 0, 0 }
}

Definition at line 68 of file hppa-linux-tdep.c.

Referenced by hppa_linux_sigtramp_find_sigcontext().