GDB (xrefs)
Macros | Functions | Variables
/tmp/gdb-7.10/gdb/sparc64-tdep.c File Reference
#include "defs.h"
#include "arch-utils.h"
#include "dwarf2-frame.h"
#include "floatformat.h"
#include "frame.h"
#include "frame-base.h"
#include "frame-unwind.h"
#include "gdbcore.h"
#include "gdbtypes.h"
#include "inferior.h"
#include "symtab.h"
#include "objfiles.h"
#include "osabi.h"
#include "regcache.h"
#include "target.h"
#include "value.h"
#include "sparc64-tdep.h"

Go to the source code of this file.

Macros

#define SPARC64_NUM_REGS   ARRAY_SIZE (sparc64_register_names)
 
#define SPARC64_NUM_PSEUDO_REGS   ARRAY_SIZE (sparc64_pseudo_register_names)
 
#define TSTATE_CWP   0x000000000000001fULL
 
#define TSTATE_ICC   0x0000000f00000000ULL
 
#define TSTATE_XCC   0x000000f000000000ULL
 
#define PSR_S   0x00000080
 
#define PSR_ICC   0x00f00000
 
#define PSR_VERS   0x0f000000
 
#define PSR_IMPL   0xf0000000
 
#define PSR_V8PLUS   0xff000000
 
#define PSR_XCC   0x000f0000
 

Functions

static int sparc64_integral_or_pointer_p (const struct type *type)
 
static int sparc64_floating_p (const struct type *type)
 
static int sparc64_complex_floating_p (const struct type *type)
 
static int sparc64_structure_or_union_p (const struct type *type)
 
static struct typesparc64_pstate_type (struct gdbarch *gdbarch)
 
static struct typesparc64_fsr_type (struct gdbarch *gdbarch)
 
static struct typesparc64_fprs_type (struct gdbarch *gdbarch)
 
static const char * sparc64_register_name (struct gdbarch *gdbarch, int regnum)
 
static struct typesparc64_register_type (struct gdbarch *gdbarch, int regnum)
 
static enum register_status sparc64_pseudo_register_read (struct gdbarch *gdbarch, struct regcache *regcache, int regnum, gdb_byte *buf)
 
static void sparc64_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache, int regnum, const gdb_byte *buf)
 
static CORE_ADDR sparc64_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR start_pc)
 
static struct sparc_frame_cachesparc64_frame_cache (struct frame_info *this_frame, void **this_cache)
 
static void sparc64_frame_this_id (struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
 
static struct valuesparc64_frame_prev_register (struct frame_info *this_frame, void **this_cache, int regnum)
 
static CORE_ADDR sparc64_frame_base_address (struct frame_info *this_frame, void **this_cache)
 
static int sparc64_16_byte_align_p (struct type *type)
 
static void sparc64_store_floating_fields (struct regcache *regcache, struct type *type, const gdb_byte *valbuf, int element, int bitpos)
 
static void sparc64_extract_floating_fields (struct regcache *regcache, struct type *type, gdb_byte *valbuf, int bitpos)
 
static CORE_ADDR sparc64_store_arguments (struct regcache *regcache, int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr)
 
static CORE_ADDR sparc64_frame_align (struct gdbarch *gdbarch, CORE_ADDR address)
 
static CORE_ADDR sparc64_push_dummy_call (struct gdbarch *gdbarch, struct value *function, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr)
 
static void sparc64_extract_return_value (struct type *type, struct regcache *regcache, gdb_byte *valbuf)
 
static void sparc64_store_return_value (struct type *type, struct regcache *regcache, const gdb_byte *valbuf)
 
static enum return_value_convention sparc64_return_value (struct gdbarch *gdbarch, struct value *function, struct type *type, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf)
 
static void sparc64_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum, struct dwarf2_frame_state_reg *reg, struct frame_info *this_frame)
 
void sparc64_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 
void sparc64_supply_gregset (const struct sparc_gregmap *gregmap, struct regcache *regcache, int regnum, const void *gregs)
 
void sparc64_collect_gregset (const struct sparc_gregmap *gregmap, const struct regcache *regcache, int regnum, void *gregs)
 
void sparc64_supply_fpregset (const struct sparc_fpregmap *fpregmap, struct regcache *regcache, int regnum, const void *fpregs)
 
void sparc64_collect_fpregset (const struct sparc_fpregmap *fpregmap, const struct regcache *regcache, int regnum, void *fpregs)
 

Variables

static const char * sparc64_register_names []
 
static const char * sparc64_pseudo_register_names []
 
static const struct frame_unwind sparc64_frame_unwind
 
static const struct frame_base sparc64_frame_base
 
const struct sparc_fpregmap sparc64_bsd_fpregmap
 

Macro Definition Documentation

#define PSR_ICC   0x00f00000

Definition at line 1233 of file sparc64-tdep.c.

Referenced by sparc64_collect_gregset().

#define PSR_IMPL   0xf0000000

Definition at line 1235 of file sparc64-tdep.c.

Referenced by sparc64_collect_gregset().

#define PSR_S   0x00000080

Definition at line 1232 of file sparc64-tdep.c.

Referenced by sparc64_supply_gregset().

#define PSR_V8PLUS   0xff000000

Definition at line 1236 of file sparc64-tdep.c.

Referenced by sparc64_collect_gregset(), and sparc64_supply_gregset().

#define PSR_VERS   0x0f000000

Definition at line 1234 of file sparc64-tdep.c.

Referenced by sparc64_collect_gregset().

#define PSR_XCC   0x000f0000

Definition at line 1237 of file sparc64-tdep.c.

Referenced by sparc64_collect_gregset().

#define SPARC64_NUM_PSEUDO_REGS   ARRAY_SIZE (sparc64_pseudo_register_names)

Definition at line 273 of file sparc64-tdep.c.

Referenced by sparc64_init_abi(), and sparc64_register_name().

#define SPARC64_NUM_REGS   ARRAY_SIZE (sparc64_register_names)
#define TSTATE_CWP   0x000000000000001fULL

Definition at line 1228 of file sparc64-tdep.c.

Referenced by sparc64_supply_gregset().

#define TSTATE_ICC   0x0000000f00000000ULL

Definition at line 1229 of file sparc64-tdep.c.

Referenced by sparc64_supply_gregset().

#define TSTATE_XCC   0x000000f000000000ULL

Definition at line 1230 of file sparc64-tdep.c.

Referenced by sparc64_supply_gregset().

Function Documentation

static int sparc64_16_byte_align_p ( struct type type)
static
void sparc64_collect_fpregset ( const struct sparc_fpregmap fpregmap,
const struct regcache regcache,
int  regnum,
void *  fpregs 
)
void sparc64_collect_gregset ( const struct sparc_gregmap gregmap,
const struct regcache regcache,
int  regnum,
void *  gregs 
)
static int sparc64_complex_floating_p ( const struct type type)
static
static void sparc64_dwarf2_frame_init_reg ( struct gdbarch gdbarch,
int  regnum,
struct dwarf2_frame_state_reg reg,
struct frame_info this_frame 
)
static
static void sparc64_extract_floating_fields ( struct regcache regcache,
struct type type,
gdb_byte valbuf,
int  bitpos 
)
static
static void sparc64_extract_return_value ( struct type type,
struct regcache regcache,
gdb_byte valbuf 
)
static
static int sparc64_floating_p ( const struct type type)
static
static struct type* sparc64_fprs_type ( struct gdbarch gdbarch)
static
static CORE_ADDR sparc64_frame_align ( struct gdbarch gdbarch,
CORE_ADDR  address 
)
static

Definition at line 999 of file sparc64-tdep.c.

Referenced by sparc64_init_abi().

static CORE_ADDR sparc64_frame_base_address ( struct frame_info this_frame,
void **  this_cache 
)
static

Definition at line 591 of file sparc64-tdep.c.

References sparc_frame_cache::base, and sparc64_frame_cache().

static struct sparc_frame_cache* sparc64_frame_cache ( struct frame_info this_frame,
void **  this_cache 
)
static
static struct value* sparc64_frame_prev_register ( struct frame_info this_frame,
void **  this_cache,
int  regnum 
)
static
static void sparc64_frame_this_id ( struct frame_info this_frame,
void **  this_cache,
struct frame_id this_id 
)
static
static struct type* sparc64_fsr_type ( struct gdbarch gdbarch)
static
void sparc64_init_abi ( struct gdbarch_info  info,
struct gdbarch gdbarch 
)
static int sparc64_integral_or_pointer_p ( const struct type type)
static
static enum register_status sparc64_pseudo_register_read ( struct gdbarch gdbarch,
struct regcache regcache,
int  regnum,
gdb_byte buf 
)
static
static void sparc64_pseudo_register_write ( struct gdbarch gdbarch,
struct regcache regcache,
int  regnum,
const gdb_byte buf 
)
static
static struct type* sparc64_pstate_type ( struct gdbarch gdbarch)
static
static CORE_ADDR sparc64_push_dummy_call ( struct gdbarch gdbarch,
struct value function,
struct regcache regcache,
CORE_ADDR  bp_addr,
int  nargs,
struct value **  args,
CORE_ADDR  sp,
int  struct_return,
CORE_ADDR  struct_addr 
)
static
static const char* sparc64_register_name ( struct gdbarch gdbarch,
int  regnum 
)
static
static struct type* sparc64_register_type ( struct gdbarch gdbarch,
int  regnum 
)
static
static enum return_value_convention sparc64_return_value ( struct gdbarch gdbarch,
struct value function,
struct type type,
struct regcache regcache,
gdb_byte readbuf,
const gdb_byte writebuf 
)
static
static CORE_ADDR sparc64_skip_prologue ( struct gdbarch gdbarch,
CORE_ADDR  start_pc 
)
static
static CORE_ADDR sparc64_store_arguments ( struct regcache regcache,
int  nargs,
struct value **  args,
CORE_ADDR  sp,
int  struct_return,
CORE_ADDR  struct_addr 
)
static
static void sparc64_store_floating_fields ( struct regcache regcache,
struct type type,
const gdb_byte valbuf,
int  element,
int  bitpos 
)
static
static void sparc64_store_return_value ( struct type type,
struct regcache regcache,
const gdb_byte valbuf 
)
static
static int sparc64_structure_or_union_p ( const struct type type)
static
void sparc64_supply_fpregset ( const struct sparc_fpregmap fpregmap,
struct regcache regcache,
int  regnum,
const void *  fpregs 
)
void sparc64_supply_gregset ( const struct sparc_gregmap gregmap,
struct regcache regcache,
int  regnum,
const void *  gregs 
)

Variable Documentation

const struct sparc_fpregmap sparc64_bsd_fpregmap
const struct frame_base sparc64_frame_base
static
Initial value:
=
{
sparc64_frame_base_address
}
static const struct frame_unwind sparc64_frame_unwind
Definition: sparc64-tdep.c:579
static CORE_ADDR sparc64_frame_base_address(struct frame_info *this_frame, void **this_cache)
Definition: sparc64-tdep.c:591

Definition at line 599 of file sparc64-tdep.c.

const struct frame_unwind sparc64_frame_unwind
static
Initial value:
=
{
NULL,
}
static void sparc64_frame_this_id(struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
Definition: sparc64-tdep.c:514
int default_frame_sniffer(const struct frame_unwind *self, struct frame_info *this_frame, void **this_prologue_cache)
Definition: frame-unwind.c:170
static struct value * sparc64_frame_prev_register(struct frame_info *this_frame, void **this_cache, int regnum)
Definition: sparc64-tdep.c:528
enum unwind_stop_reason default_frame_unwind_stop_reason(struct frame_info *this_frame, void **this_cache)
Definition: frame-unwind.c:180

Definition at line 579 of file sparc64-tdep.c.

const char* sparc64_pseudo_register_names[]
static
Initial value:
=
{
"cwp", "pstate", "asi", "ccr",
"d0", "d2", "d4", "d6", "d8", "d10", "d12", "d14",
"d16", "d18", "d20", "d22", "d24", "d26", "d28", "d30",
"d32", "d34", "d36", "d38", "d40", "d42", "d44", "d46",
"d48", "d50", "d52", "d54", "d56", "d58", "d60", "d62",
"q0", "q4", "q8", "q12", "q16", "q20", "q24", "q28",
"q32", "q36", "q40", "q44", "q48", "q52", "q56", "q60",
}

Definition at line 259 of file sparc64-tdep.c.

Referenced by sparc64_register_name().

const char* sparc64_register_names[]
static
Initial value:
=
{
"g0", "g1", "g2", "g3", "g4", "g5", "g6", "g7",
"o0", "o1", "o2", "o3", "o4", "o5", "sp", "o7",
"l0", "l1", "l2", "l3", "l4", "l5", "l6", "l7",
"i0", "i1", "i2", "i3", "i4", "i5", "fp", "i7",
"f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7",
"f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15",
"f16", "f17", "f18", "f19", "f20", "f21", "f22", "f23",
"f24", "f25", "f26", "f27", "f28", "f29", "f30", "f31",
"f32", "f34", "f36", "f38", "f40", "f42", "f44", "f46",
"f48", "f50", "f52", "f54", "f56", "f58", "f60", "f62",
"pc", "npc",
"state",
"fsr",
"fprs",
"y",
}

Definition at line 230 of file sparc64-tdep.c.

Referenced by sparc64_register_name().