Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0
0002 
0003 #include <errno.h>
0004 #include <libunwind.h>
0005 #include "perf_regs.h"
0006 #include "../../../util/unwind.h"
0007 #include "../../../util/debug.h"
0008 
0009 int libunwind__arch_reg_id(int regnum)
0010 {
0011     switch (regnum) {
0012     case UNW_ARM_R0:
0013         return PERF_REG_ARM_R0;
0014     case UNW_ARM_R1:
0015         return PERF_REG_ARM_R1;
0016     case UNW_ARM_R2:
0017         return PERF_REG_ARM_R2;
0018     case UNW_ARM_R3:
0019         return PERF_REG_ARM_R3;
0020     case UNW_ARM_R4:
0021         return PERF_REG_ARM_R4;
0022     case UNW_ARM_R5:
0023         return PERF_REG_ARM_R5;
0024     case UNW_ARM_R6:
0025         return PERF_REG_ARM_R6;
0026     case UNW_ARM_R7:
0027         return PERF_REG_ARM_R7;
0028     case UNW_ARM_R8:
0029         return PERF_REG_ARM_R8;
0030     case UNW_ARM_R9:
0031         return PERF_REG_ARM_R9;
0032     case UNW_ARM_R10:
0033         return PERF_REG_ARM_R10;
0034     case UNW_ARM_R11:
0035         return PERF_REG_ARM_FP;
0036     case UNW_ARM_R12:
0037         return PERF_REG_ARM_IP;
0038     case UNW_ARM_R13:
0039         return PERF_REG_ARM_SP;
0040     case UNW_ARM_R14:
0041         return PERF_REG_ARM_LR;
0042     case UNW_ARM_R15:
0043         return PERF_REG_ARM_PC;
0044     default:
0045         pr_err("unwind: invalid reg id %d\n", regnum);
0046         return -EINVAL;
0047     }
0048 
0049     return -EINVAL;
0050 }