Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-or-later
0002 /*
0003  * Copyright 2016 Chandan Kumar, IBM Corporation.
0004  */
0005 
0006 #include <errno.h>
0007 #include <libunwind.h>
0008 #include <asm/perf_regs.h>
0009 #include "../../util/unwind.h"
0010 #include "../../util/debug.h"
0011 
0012 int libunwind__arch_reg_id(int regnum)
0013 {
0014     switch (regnum) {
0015     case UNW_PPC64_R0:
0016         return PERF_REG_POWERPC_R0;
0017     case UNW_PPC64_R1:
0018         return PERF_REG_POWERPC_R1;
0019     case UNW_PPC64_R2:
0020         return PERF_REG_POWERPC_R2;
0021     case UNW_PPC64_R3:
0022         return PERF_REG_POWERPC_R3;
0023     case UNW_PPC64_R4:
0024         return PERF_REG_POWERPC_R4;
0025     case UNW_PPC64_R5:
0026         return PERF_REG_POWERPC_R5;
0027     case UNW_PPC64_R6:
0028         return PERF_REG_POWERPC_R6;
0029     case UNW_PPC64_R7:
0030         return PERF_REG_POWERPC_R7;
0031     case UNW_PPC64_R8:
0032         return PERF_REG_POWERPC_R8;
0033     case UNW_PPC64_R9:
0034         return PERF_REG_POWERPC_R9;
0035     case UNW_PPC64_R10:
0036         return PERF_REG_POWERPC_R10;
0037     case UNW_PPC64_R11:
0038         return PERF_REG_POWERPC_R11;
0039     case UNW_PPC64_R12:
0040         return PERF_REG_POWERPC_R12;
0041     case UNW_PPC64_R13:
0042         return PERF_REG_POWERPC_R13;
0043     case UNW_PPC64_R14:
0044         return PERF_REG_POWERPC_R14;
0045     case UNW_PPC64_R15:
0046         return PERF_REG_POWERPC_R15;
0047     case UNW_PPC64_R16:
0048         return PERF_REG_POWERPC_R16;
0049     case UNW_PPC64_R17:
0050         return PERF_REG_POWERPC_R17;
0051     case UNW_PPC64_R18:
0052         return PERF_REG_POWERPC_R18;
0053     case UNW_PPC64_R19:
0054         return PERF_REG_POWERPC_R19;
0055     case UNW_PPC64_R20:
0056         return PERF_REG_POWERPC_R20;
0057     case UNW_PPC64_R21:
0058         return PERF_REG_POWERPC_R21;
0059     case UNW_PPC64_R22:
0060         return PERF_REG_POWERPC_R22;
0061     case UNW_PPC64_R23:
0062         return PERF_REG_POWERPC_R23;
0063     case UNW_PPC64_R24:
0064         return PERF_REG_POWERPC_R24;
0065     case UNW_PPC64_R25:
0066         return PERF_REG_POWERPC_R25;
0067     case UNW_PPC64_R26:
0068         return PERF_REG_POWERPC_R26;
0069     case UNW_PPC64_R27:
0070         return PERF_REG_POWERPC_R27;
0071     case UNW_PPC64_R28:
0072         return PERF_REG_POWERPC_R28;
0073     case UNW_PPC64_R29:
0074         return PERF_REG_POWERPC_R29;
0075     case UNW_PPC64_R30:
0076         return PERF_REG_POWERPC_R30;
0077     case UNW_PPC64_R31:
0078         return PERF_REG_POWERPC_R31;
0079     case UNW_PPC64_LR:
0080         return PERF_REG_POWERPC_LINK;
0081     case UNW_PPC64_CTR:
0082         return PERF_REG_POWERPC_CTR;
0083     case UNW_PPC64_XER:
0084         return PERF_REG_POWERPC_XER;
0085     case UNW_PPC64_NIP:
0086         return PERF_REG_POWERPC_NIP;
0087     default:
0088         pr_err("unwind: invalid reg id %d\n", regnum);
0089         return -EINVAL;
0090     }
0091     return -EINVAL;
0092 }