Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/tools/perf/arch/arm/util/unwind-libunwind.c
26295 views
1
// SPDX-License-Identifier: GPL-2.0
2
3
#include <errno.h>
4
#include <libunwind.h>
5
#include "perf_regs.h"
6
#include "../../../util/unwind.h"
7
#include "../../../util/debug.h"
8
9
int libunwind__arch_reg_id(int regnum)
10
{
11
switch (regnum) {
12
case UNW_ARM_R0:
13
return PERF_REG_ARM_R0;
14
case UNW_ARM_R1:
15
return PERF_REG_ARM_R1;
16
case UNW_ARM_R2:
17
return PERF_REG_ARM_R2;
18
case UNW_ARM_R3:
19
return PERF_REG_ARM_R3;
20
case UNW_ARM_R4:
21
return PERF_REG_ARM_R4;
22
case UNW_ARM_R5:
23
return PERF_REG_ARM_R5;
24
case UNW_ARM_R6:
25
return PERF_REG_ARM_R6;
26
case UNW_ARM_R7:
27
return PERF_REG_ARM_R7;
28
case UNW_ARM_R8:
29
return PERF_REG_ARM_R8;
30
case UNW_ARM_R9:
31
return PERF_REG_ARM_R9;
32
case UNW_ARM_R10:
33
return PERF_REG_ARM_R10;
34
case UNW_ARM_R11:
35
return PERF_REG_ARM_FP;
36
case UNW_ARM_R12:
37
return PERF_REG_ARM_IP;
38
case UNW_ARM_R13:
39
return PERF_REG_ARM_SP;
40
case UNW_ARM_R14:
41
return PERF_REG_ARM_LR;
42
case UNW_ARM_R15:
43
return PERF_REG_ARM_PC;
44
default:
45
pr_err("unwind: invalid reg id %d\n", regnum);
46
return -EINVAL;
47
}
48
49
return -EINVAL;
50
}
51
52