GDB (xrefs)
Defines | Functions | Variables
/home/stan/gdb/src/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 "gdb_assert.h"
#include "gdb_string.h"
#include "sparc64-tdep.h"

Go to the source code of this file.

Defines

#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_gregset *gregset, struct regcache *regcache, int regnum, const void *gregs)
void sparc64_collect_gregset (const struct sparc_gregset *gregset, const struct regcache *regcache, int regnum, void *gregs)
void sparc64_supply_fpregset (const struct sparc_fpregset *fpregset, struct regcache *regcache, int regnum, const void *fpregs)
void sparc64_collect_fpregset (const struct sparc_fpregset *fpregset, const struct regcache *regcache, int regnum, void *fpregs)

Variables

static const char * sparc64_register_names []
static const char * sparc64_pseudo_register_names []
static struct frame_unwind sparc64_frame_unwind
static struct frame_base sparc64_frame_base
struct sparc_fpregset sparc64_bsd_fpregset

Define Documentation

#define PSR_ICC   0x00f00000

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

Referenced by sparc64_collect_gregset().

#define PSR_IMPL   0xf0000000

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

Referenced by sparc64_collect_gregset().

#define PSR_S   0x00000080

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

Referenced by sparc64_supply_gregset().

#define PSR_V8PLUS   0xff000000

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

Referenced by sparc64_collect_gregset(), and sparc64_supply_gregset().

#define PSR_VERS   0x0f000000

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

Referenced by sparc64_collect_gregset().

#define PSR_XCC   0x000f0000

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

Referenced by sparc64_collect_gregset().

Definition at line 276 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 1212 of file sparc64-tdep.c.

Referenced by sparc64_supply_gregset().

#define TSTATE_ICC   0x0000000f00000000ULL

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

Referenced by sparc64_supply_gregset().

#define TSTATE_XCC   0x000000f000000000ULL

Definition at line 1214 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_fpregset fpregset,
const struct regcache regcache,
int  regnum,
void *  fpregs 
)
void sparc64_collect_gregset ( const struct sparc_gregset gregset,
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, read]
static CORE_ADDR sparc64_frame_align ( struct gdbarch gdbarch,
CORE_ADDR  address 
) [static]

Definition at line 984 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 594 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, read]
static struct value* sparc64_frame_prev_register ( struct frame_info this_frame,
void **  this_cache,
int  regnum 
) [static, read]
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, read]
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, read]
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, read]
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_fpregset fpregset,
struct regcache regcache,
int  regnum,
const void *  fpregs 
)
void sparc64_supply_gregset ( const struct sparc_gregset gregset,
struct regcache regcache,
int  regnum,
const void *  gregs 
)

Variable Documentation

struct frame_base sparc64_frame_base [static]
Initial value:

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

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 262 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 233 of file sparc64-tdep.c.

Referenced by sparc64_register_name().

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines