16daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-Tang/* libunwind - a platform-independent unwind library
26daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-Tang   Copyright (c) 2004-2005 Hewlett-Packard Development Company, L.P.
36daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-Tang	Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
46daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-Tang
56daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-TangThis file is part of libunwind.
66daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-Tang
76daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-TangPermission is hereby granted, free of charge, to any person obtaining
86daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-Tanga copy of this software and associated documentation files (the
96daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-Tang"Software"), to deal in the Software without restriction, including
106daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-Tangwithout limitation the rights to use, copy, modify, merge, publish,
116daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-Tangdistribute, sublicense, and/or sell copies of the Software, and to
126daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-Tangpermit persons to whom the Software is furnished to do so, subject to
136daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-Tangthe following conditions:
146daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-Tang
156daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-TangThe above copyright notice and this permission notice shall be
166daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-Tangincluded in all copies or substantial portions of the Software.
176daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-Tang
186daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-TangTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
196daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-TangEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
206daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-TangMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
216daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-TangNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
226daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-TangLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
236daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-TangOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
246daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-TangWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  */
256daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-Tang
266daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-Tang#include "unwind_i.h"
276daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-Tang
286daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-Tangstatic const char *regname[] =
296daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-Tang  {
306daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-Tang    "r0",  "r1",  "r2",  "r3",  "r4",  "r5",  "r6",  "r7",
316daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-Tang    "r8",  "r9", "r10", "r11", "r12", "r13", "r14", "r15",
326daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-Tang    "r16", "r17", "r18", "r19", "r20", "r21", "r22", "r23",
336daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-Tang    "r24", "r25", "r26", "r27", "r28", "r29", "r30", "r31",
346daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-Tang    "fr0",  "fr1",  "fr2",  "fr3",  "fr4",  "fr5",  "fr6",  "fr7",
356daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-Tang    "fr8",  "fr9", "fr10", "fr11", "fr12", "fr13", "fr14", "fr15",
366daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-Tang    "fr16", "fr17", "fr18", "fr19", "fr20", "fr21", "fr22", "fr23",
376daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-Tang    "fr24", "fr25", "fr26", "fr27", "fr28", "fr29", "fr30", "fr31",
386daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-Tang    "ip",
396daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-Tang    "eh0", "eh1", "eh2", "eh3",
406daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-Tang    "cfa"
416daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-Tang  };
426daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-Tang
436daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-TangPROTECTED const char *
446daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-Tangunw_regname (unw_regnum_t reg)
456daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-Tang{
466daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-Tang  if (reg < (unw_regnum_t) ARRAY_SIZE (regname))
476daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-Tang    return regname[reg];
486daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-Tang  else
496daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-Tang    return "???";
506daeeac60ac046af9487dadd5a6b38fce0ea8219David Mosberger-Tang}
51