14499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino/* libunwind - a platform-independent unwind library
24499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino   Copyright (C) 2006-2007 IBM
34499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino   Contributed by
44499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino     Corey Ashford <cjashfor@us.ibm.com>
54499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino     Jose Flavio Aguilar Paulino <jflavio@br.ibm.com> <joseflavio@gmail.com>
64499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino
74499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar PaulinoThis file is part of libunwind.
84499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino
94499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar PaulinoPermission is hereby granted, free of charge, to any person obtaining
104499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulinoa copy of this software and associated documentation files (the
114499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino"Software"), to deal in the Software without restriction, including
124499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulinowithout limitation the rights to use, copy, modify, merge, publish,
134499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulinodistribute, sublicense, and/or sell copies of the Software, and to
144499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulinopermit persons to whom the Software is furnished to do so, subject to
154499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulinothe following conditions:
164499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino
174499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar PaulinoThe above copyright notice and this permission notice shall be
184499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulinoincluded in all copies or substantial portions of the Software.
194499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino
204499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar PaulinoTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
214499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar PaulinoEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
224499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar PaulinoMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
234499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar PaulinoNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
244499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar PaulinoLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
254499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar PaulinoOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
264499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar PaulinoWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  */
274499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino
284499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino#include "unwind_i.h"
294499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino
304499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulinostatic const char *regname[] =
314499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino  {
324499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_R0]="GPR0",
334499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_R1]="GPR1",
344499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_R2]="GPR2",
354499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_R3]="GPR3",
364499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_R4]="GPR4",
374499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_R5]="GPR5",
384499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_R6]="GPR6",
394499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_R7]="GPR7",
404499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_R8]="GPR8",
414499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_R9]="GPR9",
424499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_R10]="GPR10",
434499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_R11]="GPR11",
444499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_R12]="GPR12",
454499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_R13]="GPR13",
464499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_R14]="GPR14",
474499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_R15]="GPR15",
484499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_R16]="GPR16",
494499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_R17]="GPR17",
504499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_R18]="GPR18",
514499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_R19]="GPR19",
524499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_R20]="GPR20",
534499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_R21]="GPR21",
544499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_R22]="GPR22",
554499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_R23]="GPR23",
564499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_R24]="GPR24",
574499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_R25]="GPR25",
584499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_R26]="GPR26",
594499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_R27]="GPR27",
604499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_R28]="GPR28",
614499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_R29]="GPR29",
624499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_R30]="GPR30",
634499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_R31]="GPR31",
644499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino
659ea6af8ed5ee7b07f8de6d774bc6df2b7320f0e8Jose Flavio Aguilar Paulino    [UNW_PPC32_CTR]="CTR",
669ea6af8ed5ee7b07f8de6d774bc6df2b7320f0e8Jose Flavio Aguilar Paulino    [UNW_PPC32_XER]="XER",
679ea6af8ed5ee7b07f8de6d774bc6df2b7320f0e8Jose Flavio Aguilar Paulino    [UNW_PPC32_CCR]="CCR",
689ea6af8ed5ee7b07f8de6d774bc6df2b7320f0e8Jose Flavio Aguilar Paulino    [UNW_PPC32_LR]="LR",
699ea6af8ed5ee7b07f8de6d774bc6df2b7320f0e8Jose Flavio Aguilar Paulino    [UNW_PPC32_FPSCR]="FPSCR",
709ea6af8ed5ee7b07f8de6d774bc6df2b7320f0e8Jose Flavio Aguilar Paulino
714499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_F0]="FPR0",
724499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_F1]="FPR1",
734499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_F2]="FPR2",
744499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_F3]="FPR3",
754499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_F4]="FPR4",
764499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_F5]="FPR5",
774499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_F6]="FPR6",
784499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_F7]="FPR7",
794499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_F8]="FPR8",
804499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_F9]="FPR9",
814499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_F10]="FPR10",
824499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_F11]="FPR11",
834499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_F12]="FPR12",
844499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_F13]="FPR13",
854499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_F14]="FPR14",
864499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_F15]="FPR15",
874499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_F16]="FPR16",
884499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_F17]="FPR17",
894499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_F18]="FPR18",
904499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_F19]="FPR19",
914499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_F20]="FPR20",
924499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_F21]="FPR21",
934499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_F22]="FPR22",
944499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_F23]="FPR23",
954499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_F24]="FPR24",
964499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_F25]="FPR25",
974499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_F26]="FPR26",
984499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_F27]="FPR27",
994499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_F28]="FPR28",
1004499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_F29]="FPR29",
1014499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    [UNW_PPC32_F30]="FPR30",
1029ea6af8ed5ee7b07f8de6d774bc6df2b7320f0e8Jose Flavio Aguilar Paulino    [UNW_PPC32_F31]="FPR31"
1039ea6af8ed5ee7b07f8de6d774bc6df2b7320f0e8Jose Flavio Aguilar Paulino};
1044499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino
1054499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar PaulinoPROTECTED const char *
1064499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulinounw_regname (unw_regnum_t reg)
1074499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino{
1084499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino  if (reg < (unw_regnum_t) ARRAY_SIZE (regname))
1094499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    return regname[reg];
1104499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino  else
1114499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino    return "???";
1124499bb29a6214b5df5b3b21e03c6b4f3c8f26cfdJose Flavio Aguilar Paulino}
113