18d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantala/* libunwind - a platform-independent unwind library
28d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantala   Copyright (C) 2012 Tommi Rantala <tt.rantala@gmail.com>
38d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantala
48d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi RantalaThis file is part of libunwind.
58d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantala
68d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi RantalaPermission is hereby granted, free of charge, to any person obtaining
78d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantalaa copy of this software and associated documentation files (the
88d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantala"Software"), to deal in the Software without restriction, including
98d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantalawithout limitation the rights to use, copy, modify, merge, publish,
108d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantaladistribute, sublicense, and/or sell copies of the Software, and to
118d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantalapermit persons to whom the Software is furnished to do so, subject to
128d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantalathe following conditions:
138d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantala
148d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi RantalaThe above copyright notice and this permission notice shall be
158d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantalaincluded in all copies or substantial portions of the Software.
168d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantala
178d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi RantalaTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
188d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi RantalaEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
198d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi RantalaMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
208d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi RantalaNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
218d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi RantalaLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
228d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi RantalaOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
238d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi RantalaWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  */
248d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantala
258d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantala#include "unwind_i.h"
268d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantala
278d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantalastatic const char *const regname[] =
288d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantala  {
298d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantala    [UNW_SH_R0]  = "r0",
308d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantala    [UNW_SH_R1]  = "r1",
318d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantala    [UNW_SH_R2]  = "r2",
328d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantala    [UNW_SH_R3]  = "r3",
338d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantala    [UNW_SH_R4]  = "r4",
348d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantala    [UNW_SH_R5]  = "r5",
358d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantala    [UNW_SH_R6]  = "r6",
368d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantala    [UNW_SH_R7]  = "r7",
378d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantala    [UNW_SH_R8]  = "r8",
388d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantala    [UNW_SH_R9]  = "r9",
398d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantala    [UNW_SH_R10] = "r10",
408d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantala    [UNW_SH_R11] = "r11",
418d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantala    [UNW_SH_R12] = "r12",
428d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantala    [UNW_SH_R13] = "r13",
438d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantala    [UNW_SH_R14] = "r14",
448d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantala    [UNW_SH_R15] = "r15",
458d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantala    [UNW_SH_PC]  = "pc",
468d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantala    [UNW_SH_PR]  = "pr",
478d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantala  };
488d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantala
498d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi RantalaPROTECTED const char *
508d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantalaunw_regname (unw_regnum_t reg)
518d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantala{
528d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantala  if (reg < (unw_regnum_t) ARRAY_SIZE (regname) && regname[reg] != NULL)
538d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantala    return regname[reg];
548d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantala  else
558d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantala    return "???";
568d5b1aeeffb80515197fd7aeee0b3fbfac904ecdTommi Rantala}
57