/* unwind-ia64.c -- utility routines to dump IA-64 unwind info for readelf.
- Copyright 2000, 2001, 2003 Free Software Foundation, Inc.
+ Copyright 2000, 2001, 2002, 2003, 2005, 2007 Free Software Foundation, Inc.
Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
-This file is part of GNU Binutils.
+ This file is part of GNU Binutils.
-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
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
+ 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
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
#include "unwind-ia64.h"
#include <stdio.h>
#if __GNUC__ >= 2
/* Define BFD64 here, even if our default architecture is 32 bit ELF
as this will allow us to read in and parse 64bit and 32bit ELF files.
- Only do this if we belive that the compiler can support a 64 bit
+ Only do this if we believe that the compiler can support a 64 bit
data type. For now we only rely on GCC being able to do this. */
#define BFD64
#endif
static void
unw_print_abreg (char *cp, unsigned int abreg)
{
- static const char *special_reg[16] =
+ static const char * const special_reg[16] =
{
"pr", "psp", "@priunat", "rp", "ar.bsp", "ar.bspstore", "ar.rnat",
"ar.unat", "ar.fpsr", "ar.pfs", "ar.lc",
#define UNW_DEC_ABI(fmt, abi, context, arg) \
do \
{ \
- static const char *abiname[] = \
+ static const char * const abiname[] = \
{ \
"@svr4", "@hpux", "@nt" \
}; \
#define UNW_DEC_SPILL_SPREL(fmt, t, abreg, spoff, arg) \
do \
{ \
- char regname[10]; \
+ char regname[20]; \
\
unw_print_abreg (regname, abreg); \
printf ("\t%s:spill_sprel(reg=%s,t=%lu,spoff=0x%lx)\n", \
#define UNW_DEC_SPILL_PSPREL(fmt, t, abreg, pspoff, arg) \
do \
{ \
- char regname[10]; \
+ char regname[20]; \
\
unw_print_abreg (regname, abreg); \
printf ("\t%s:spill_psprel(reg=%s,t=%lu,pspoff=0x10-0x%lx)\n", \
#define UNW_DEC_RESTORE(fmt, t, abreg, arg) \
do \
{ \
- char regname[10]; \
+ char regname[20]; \
\
unw_print_abreg (regname, abreg); \
printf ("\t%s:restore(t=%lu,reg=%s)\n", \
#define UNW_DEC_SPILL_REG(fmt, t, abreg, x, ytreg, arg) \
do \
{ \
- char abregname[10], tregname[10]; \
+ char abregname[20], tregname[20]; \
\
unw_print_abreg (abregname, abreg); \
unw_print_xyreg (tregname, x, ytreg); \
typedef const unsigned char *(*unw_decoder)
(const unsigned char *, unsigned int, void *);
-static unw_decoder unw_decode_table[2][8] =
+static const unw_decoder unw_decode_table[2][8] =
{
/* prologue table: */
{