WIP FPC-III support
[linux/fpc-iii.git] / tools / perf / arch / csky / annotate / instructions.c
blob5337bfb7d5fcf63ad044d478c18239eccce676fd
1 // SPDX-License-Identifier: GPL-2.0
2 // Copyright (C) 2019 Hangzhou C-SKY Microsystems co.,ltd.
4 #include <linux/compiler.h>
6 static struct ins_ops *csky__associate_ins_ops(struct arch *arch,
7 const char *name)
9 struct ins_ops *ops = NULL;
11 /* catch all kind of jumps */
12 if (!strcmp(name, "bt") ||
13 !strcmp(name, "bf") ||
14 !strcmp(name, "bez") ||
15 !strcmp(name, "bnez") ||
16 !strcmp(name, "bnezad") ||
17 !strcmp(name, "bhsz") ||
18 !strcmp(name, "bhz") ||
19 !strcmp(name, "blsz") ||
20 !strcmp(name, "blz") ||
21 !strcmp(name, "br") ||
22 !strcmp(name, "jmpi") ||
23 !strcmp(name, "jmp"))
24 ops = &jump_ops;
26 /* catch function call */
27 if (!strcmp(name, "bsr") ||
28 !strcmp(name, "jsri") ||
29 !strcmp(name, "jsr"))
30 ops = &call_ops;
32 /* catch function return */
33 if (!strcmp(name, "rts"))
34 ops = &ret_ops;
36 if (ops)
37 arch__associate_ins_ops(arch, name, ops);
38 return ops;
41 static int csky__annotate_init(struct arch *arch, char *cpuid __maybe_unused)
43 arch->initialized = true;
44 arch->objdump.comment_char = '/';
45 arch->associate_instruction_ops = csky__associate_ins_ops;
47 return 0;