hc
2024-08-16 a24a44ff9ca902811b99aa9663d697cf452e08ef
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
/* SPDX-License-Identifier: GPL-2.0 */
// Copyright (C) 2019 Hangzhou C-SKY Microsystems co.,ltd.
 
#ifndef ARCH_PERF_REGS_H
#define ARCH_PERF_REGS_H
 
#include <stdlib.h>
#include <linux/types.h>
#include <asm/perf_regs.h>
 
#define PERF_REGS_MASK    ((1ULL << PERF_REG_CSKY_MAX) - 1)
#define PERF_REGS_MAX    PERF_REG_CSKY_MAX
#define PERF_SAMPLE_REGS_ABI    PERF_SAMPLE_REGS_ABI_32
 
#define PERF_REG_IP    PERF_REG_CSKY_PC
#define PERF_REG_SP    PERF_REG_CSKY_SP
 
static inline const char *__perf_reg_name(int id)
{
   switch (id) {
   case PERF_REG_CSKY_A0:
       return "a0";
   case PERF_REG_CSKY_A1:
       return "a1";
   case PERF_REG_CSKY_A2:
       return "a2";
   case PERF_REG_CSKY_A3:
       return "a3";
   case PERF_REG_CSKY_REGS0:
       return "regs0";
   case PERF_REG_CSKY_REGS1:
       return "regs1";
   case PERF_REG_CSKY_REGS2:
       return "regs2";
   case PERF_REG_CSKY_REGS3:
       return "regs3";
   case PERF_REG_CSKY_REGS4:
       return "regs4";
   case PERF_REG_CSKY_REGS5:
       return "regs5";
   case PERF_REG_CSKY_REGS6:
       return "regs6";
   case PERF_REG_CSKY_REGS7:
       return "regs7";
   case PERF_REG_CSKY_REGS8:
       return "regs8";
   case PERF_REG_CSKY_REGS9:
       return "regs9";
   case PERF_REG_CSKY_SP:
       return "sp";
   case PERF_REG_CSKY_LR:
       return "lr";
   case PERF_REG_CSKY_PC:
       return "pc";
#if defined(__CSKYABIV2__)
   case PERF_REG_CSKY_EXREGS0:
       return "exregs0";
   case PERF_REG_CSKY_EXREGS1:
       return "exregs1";
   case PERF_REG_CSKY_EXREGS2:
       return "exregs2";
   case PERF_REG_CSKY_EXREGS3:
       return "exregs3";
   case PERF_REG_CSKY_EXREGS4:
       return "exregs4";
   case PERF_REG_CSKY_EXREGS5:
       return "exregs5";
   case PERF_REG_CSKY_EXREGS6:
       return "exregs6";
   case PERF_REG_CSKY_EXREGS7:
       return "exregs7";
   case PERF_REG_CSKY_EXREGS8:
       return "exregs8";
   case PERF_REG_CSKY_EXREGS9:
       return "exregs9";
   case PERF_REG_CSKY_EXREGS10:
       return "exregs10";
   case PERF_REG_CSKY_EXREGS11:
       return "exregs11";
   case PERF_REG_CSKY_EXREGS12:
       return "exregs12";
   case PERF_REG_CSKY_EXREGS13:
       return "exregs13";
   case PERF_REG_CSKY_EXREGS14:
       return "exregs14";
   case PERF_REG_CSKY_TLS:
       return "tls";
   case PERF_REG_CSKY_HI:
       return "hi";
   case PERF_REG_CSKY_LO:
       return "lo";
#endif
   default:
       return NULL;
   }
 
   return NULL;
}
 
#endif /* ARCH_PERF_REGS_H */