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