OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gdb-7.1/] [gdb/] [sparc64-tdep.h] - Diff between revs 834 and 842

Only display areas with differences | Details | Blame | View Log

Rev 834 Rev 842
/* Target-dependent code for UltraSPARC.
/* Target-dependent code for UltraSPARC.
 
 
   Copyright (C) 2003, 2004, 2006, 2007, 2008, 2009, 2010
   Copyright (C) 2003, 2004, 2006, 2007, 2008, 2009, 2010
   Free Software Foundation, Inc.
   Free Software Foundation, Inc.
 
 
   This file is part of GDB.
   This file is part of GDB.
 
 
   This program is free software; you can redistribute it and/or modify
   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 3 of the License, or
   the Free Software Foundation; either version 3 of the License, or
   (at your option) any later version.
   (at your option) any later version.
 
 
   This program is distributed in the hope that it will be useful,
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
   GNU General Public License for more details.
 
 
   You should have received a copy of the GNU General Public License
   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 
#ifndef SPARC64_TDEP_H
#ifndef SPARC64_TDEP_H
#define SPARC64_TDEP_H 1
#define SPARC64_TDEP_H 1
 
 
struct frame_info;
struct frame_info;
struct gdbarch;
struct gdbarch;
struct regcache;
struct regcache;
struct sparc_gregset;
struct sparc_gregset;
struct trad_frame_saved_reg;
struct trad_frame_saved_reg;
 
 
#include "sparc-tdep.h"
#include "sparc-tdep.h"
 
 
/* The stack pointer is offset from the stack frame by a BIAS of 2047
/* The stack pointer is offset from the stack frame by a BIAS of 2047
   (0x7ff) for 64-bit code.  BIAS is likely to be defined on SPARC
   (0x7ff) for 64-bit code.  BIAS is likely to be defined on SPARC
   hosts, so undefine it first.  */
   hosts, so undefine it first.  */
#undef BIAS
#undef BIAS
#define BIAS 2047
#define BIAS 2047
 
 
/* Register offsets for the general-purpose register set.  */
/* Register offsets for the general-purpose register set.  */
 
 
/* UltraSPARC doesn't have %psr.  */
/* UltraSPARC doesn't have %psr.  */
#define r_tstate_offset r_psr_offset
#define r_tstate_offset r_psr_offset
 
 
/* UltraSPARC doesn't have %wim either.  */
/* UltraSPARC doesn't have %wim either.  */
#define r_fprs_offset r_wim_offset
#define r_fprs_offset r_wim_offset
 
 
/* Register numbers of various important registers.  */
/* Register numbers of various important registers.  */
 
 
enum sparc64_regnum
enum sparc64_regnum
{
{
  SPARC64_F32_REGNUM            /* %f32 */
  SPARC64_F32_REGNUM            /* %f32 */
  = SPARC_F0_REGNUM + 32,
  = SPARC_F0_REGNUM + 32,
  SPARC64_F62_REGNUM            /* %f62 */
  SPARC64_F62_REGNUM            /* %f62 */
  = SPARC64_F32_REGNUM + 15,
  = SPARC64_F32_REGNUM + 15,
  SPARC64_PC_REGNUM,            /* %pc */
  SPARC64_PC_REGNUM,            /* %pc */
  SPARC64_NPC_REGNUM,           /* %npc */
  SPARC64_NPC_REGNUM,           /* %npc */
  SPARC64_STATE_REGNUM,
  SPARC64_STATE_REGNUM,
  SPARC64_FSR_REGNUM,           /* %fsr */
  SPARC64_FSR_REGNUM,           /* %fsr */
  SPARC64_FPRS_REGNUM,          /* %fprs */
  SPARC64_FPRS_REGNUM,          /* %fprs */
  SPARC64_Y_REGNUM,             /* %y */
  SPARC64_Y_REGNUM,             /* %y */
 
 
  /* Pseudo registers.  */
  /* Pseudo registers.  */
  SPARC64_CWP_REGNUM,           /* %cwp */
  SPARC64_CWP_REGNUM,           /* %cwp */
  SPARC64_PSTATE_REGNUM,        /* %pstate */
  SPARC64_PSTATE_REGNUM,        /* %pstate */
  SPARC64_ASI_REGNUM,           /* %asi */
  SPARC64_ASI_REGNUM,           /* %asi */
  SPARC64_CCR_REGNUM,           /* %ccr */
  SPARC64_CCR_REGNUM,           /* %ccr */
  SPARC64_D0_REGNUM,            /* %d0 */
  SPARC64_D0_REGNUM,            /* %d0 */
  SPARC64_D10_REGNUM            /* %d10 */
  SPARC64_D10_REGNUM            /* %d10 */
  = SPARC64_D0_REGNUM + 5,
  = SPARC64_D0_REGNUM + 5,
  SPARC64_D30_REGNUM            /* %d30 */
  SPARC64_D30_REGNUM            /* %d30 */
  = SPARC64_D0_REGNUM + 15,
  = SPARC64_D0_REGNUM + 15,
  SPARC64_D32_REGNUM            /* %d32 */
  SPARC64_D32_REGNUM            /* %d32 */
  = SPARC64_D0_REGNUM + 16,
  = SPARC64_D0_REGNUM + 16,
  SPARC64_D62_REGNUM            /* %d62 */
  SPARC64_D62_REGNUM            /* %d62 */
  = SPARC64_D0_REGNUM + 31,
  = SPARC64_D0_REGNUM + 31,
  SPARC64_Q0_REGNUM,            /* %q0 */
  SPARC64_Q0_REGNUM,            /* %q0 */
  SPARC64_Q8_REGNUM             /* %q8 */
  SPARC64_Q8_REGNUM             /* %q8 */
  = SPARC64_Q0_REGNUM + 2,
  = SPARC64_Q0_REGNUM + 2,
  SPARC64_Q28_REGNUM            /* %q28 */
  SPARC64_Q28_REGNUM            /* %q28 */
  = SPARC64_Q0_REGNUM + 7,
  = SPARC64_Q0_REGNUM + 7,
  SPARC64_Q32_REGNUM            /* %q32 */
  SPARC64_Q32_REGNUM            /* %q32 */
  = SPARC64_Q0_REGNUM + 8,
  = SPARC64_Q0_REGNUM + 8,
  SPARC64_Q60_REGNUM            /* %q60 */
  SPARC64_Q60_REGNUM            /* %q60 */
  = SPARC64_Q0_REGNUM + 15
  = SPARC64_Q0_REGNUM + 15
};
};
 
 
/* Processor state bits.  */
/* Processor state bits.  */
#define SPARC64_PSTATE_AG       0x001
#define SPARC64_PSTATE_AG       0x001
#define SPARC64_PSTATE_IE       0x002
#define SPARC64_PSTATE_IE       0x002
#define SPARC64_PSTATE_PRIV     0x004
#define SPARC64_PSTATE_PRIV     0x004
#define SPARC64_PSTATE_AM       0x008
#define SPARC64_PSTATE_AM       0x008
#define SPARC64_PSTATE_PEF      0x010
#define SPARC64_PSTATE_PEF      0x010
#define SPARC64_PSTATE_RED      0x020
#define SPARC64_PSTATE_RED      0x020
#define SPARC64_PSTATE_TLE      0x100
#define SPARC64_PSTATE_TLE      0x100
#define SPARC64_PSTATE_CLE      0x200
#define SPARC64_PSTATE_CLE      0x200
#define SPARC64_PSTATE_PID0     0x400
#define SPARC64_PSTATE_PID0     0x400
#define SPARC64_PSTATE_PID1     0x800
#define SPARC64_PSTATE_PID1     0x800
 
 
extern void sparc64_init_abi (struct gdbarch_info info,
extern void sparc64_init_abi (struct gdbarch_info info,
                              struct gdbarch *gdbarch);
                              struct gdbarch *gdbarch);
 
 
extern void sparc64_supply_gregset (const struct sparc_gregset *gregset,
extern void sparc64_supply_gregset (const struct sparc_gregset *gregset,
                                    struct regcache *regcache,
                                    struct regcache *regcache,
                                    int regnum, const void *gregs);
                                    int regnum, const void *gregs);
extern void sparc64_collect_gregset (const struct sparc_gregset *gregset,
extern void sparc64_collect_gregset (const struct sparc_gregset *gregset,
                                     const struct regcache *regcache,
                                     const struct regcache *regcache,
                                     int regnum, void *gregs);
                                     int regnum, void *gregs);
extern void sparc64_supply_fpregset (struct regcache *regcache,
extern void sparc64_supply_fpregset (struct regcache *regcache,
                                     int regnum, const void *fpregs);
                                     int regnum, const void *fpregs);
extern void sparc64_collect_fpregset (const struct regcache *regcache,
extern void sparc64_collect_fpregset (const struct regcache *regcache,
                                      int regnum, void *fpregs);
                                      int regnum, void *fpregs);
 
 
/* Functions and variables exported from sparc64-sol2-tdep.c.  */
/* Functions and variables exported from sparc64-sol2-tdep.c.  */
 
 
/* Register offsets for Solaris 2.  */
/* Register offsets for Solaris 2.  */
extern const struct sparc_gregset sparc64_sol2_gregset;
extern const struct sparc_gregset sparc64_sol2_gregset;
 
 
extern void sparc64_sol2_init_abi (struct gdbarch_info info,
extern void sparc64_sol2_init_abi (struct gdbarch_info info,
                                   struct gdbarch *gdbarch);
                                   struct gdbarch *gdbarch);
 
 
/* Variables exported from sparc64fbsd-tdep.c.  */
/* Variables exported from sparc64fbsd-tdep.c.  */
 
 
/* Register offsets for FreeBSD/sparc64.  */
/* Register offsets for FreeBSD/sparc64.  */
extern const struct sparc_gregset sparc64fbsd_gregset;
extern const struct sparc_gregset sparc64fbsd_gregset;
 
 
/* Functions and variables exported from sparc64nbsd-tdep.c.  */
/* Functions and variables exported from sparc64nbsd-tdep.c.  */
 
 
/* Register offsets for NetBSD/sparc64.  */
/* Register offsets for NetBSD/sparc64.  */
extern const struct sparc_gregset sparc64nbsd_gregset;
extern const struct sparc_gregset sparc64nbsd_gregset;
 
 
extern struct trad_frame_saved_reg *
extern struct trad_frame_saved_reg *
  sparc64nbsd_sigcontext_saved_regs (CORE_ADDR sigcontext_addr,
  sparc64nbsd_sigcontext_saved_regs (CORE_ADDR sigcontext_addr,
                                     struct frame_info *next_frame);
                                     struct frame_info *next_frame);
 
 
#endif /* sparc64-tdep.h */
#endif /* sparc64-tdep.h */
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.