diff options
author | Mao Han <han_mao@c-sky.com> | 2019-06-26 02:52:19 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2019-07-01 21:50:41 -0400 |
commit | aa23aa55166c2865ac430168c4b9d405cf8c6980 (patch) | |
tree | 900d9ede728282220bf39faf7dcee2b0b0126ee3 /tools/perf/util/annotate.c | |
parent | e3a9427323a53ceee540276a74af7706f350d052 (diff) |
perf annotate: Add csky support
This patch add basic arch initialization and instruction associate
support for the csky CPU architecture.
E.g.:
$ perf annotate --stdio2
Samples: 161 of event 'cpu-clock:pppH', 4000 Hz, Event count (approx.):
40250000, [percent: local period]
test_4() /usr/lib/perf-test/callchain_test
Percent
Disassembly of section .text:
00008420 <test_4>:
test_4():
subi sp, sp, 4
st.w r8, (sp, 0x0)
mov r8, sp
subi sp, sp, 8
subi r3, r8, 4
movi r2, 0
st.w r2, (r3, 0x0)
↓ br 2e
100.00 14: subi r3, r8, 4
ld.w r2, (r3, 0x0)
subi r3, r8, 8
st.w r2, (r3, 0x0)
subi r3, r8, 4
ld.w r3, (r3, 0x0)
addi r2, r3, 1
subi r3, r8, 4
st.w r2, (r3, 0x0)
2e: subi r3, r8, 4
ld.w r2, (r3, 0x0)
lrw r3, 0x98967f // 8598 <main+0x28>
cmplt r3, r2
↑ bf 14
mov r0, r0
mov r0, r0
mov sp, r8
ld.w r8, (sp, 0x0)
addi sp, sp, 4
← rts
Signed-off-by: Mao Han <han_mao@c-sky.com>
Acked-by: Guo Ren <guoren@kernel.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: linux-csky@vger.kernel.org
Link: http://lkml.kernel.org/r/d874d7782d9acdad5d98f2f5c4a6fb26fbe41c5d.1561531557.git.han_mao@c-sky.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/annotate.c')
-rw-r--r-- | tools/perf/util/annotate.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c index 2d08c4b62c63..ec7aaf31c2b2 100644 --- a/tools/perf/util/annotate.c +++ b/tools/perf/util/annotate.c | |||
@@ -145,6 +145,7 @@ static int arch__associate_ins_ops(struct arch* arch, const char *name, struct i | |||
145 | #include "arch/arc/annotate/instructions.c" | 145 | #include "arch/arc/annotate/instructions.c" |
146 | #include "arch/arm/annotate/instructions.c" | 146 | #include "arch/arm/annotate/instructions.c" |
147 | #include "arch/arm64/annotate/instructions.c" | 147 | #include "arch/arm64/annotate/instructions.c" |
148 | #include "arch/csky/annotate/instructions.c" | ||
148 | #include "arch/x86/annotate/instructions.c" | 149 | #include "arch/x86/annotate/instructions.c" |
149 | #include "arch/powerpc/annotate/instructions.c" | 150 | #include "arch/powerpc/annotate/instructions.c" |
150 | #include "arch/s390/annotate/instructions.c" | 151 | #include "arch/s390/annotate/instructions.c" |
@@ -164,6 +165,10 @@ static struct arch architectures[] = { | |||
164 | .init = arm64__annotate_init, | 165 | .init = arm64__annotate_init, |
165 | }, | 166 | }, |
166 | { | 167 | { |
168 | .name = "csky", | ||
169 | .init = csky__annotate_init, | ||
170 | }, | ||
171 | { | ||
167 | .name = "x86", | 172 | .name = "x86", |
168 | .init = x86__annotate_init, | 173 | .init = x86__annotate_init, |
169 | .instructions = x86__instructions, | 174 | .instructions = x86__instructions, |