root/tools/perf/arch/csky/annotate/instructions.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. csky__associate_ins_ops
  2. csky__annotate_init

   1 // SPDX-License-Identifier: GPL-2.0
   2 // Copyright (C) 2019 Hangzhou C-SKY Microsystems co.,ltd.
   3 
   4 #include <linux/compiler.h>
   5 
   6 static struct ins_ops *csky__associate_ins_ops(struct arch *arch,
   7                                                const char *name)
   8 {
   9         struct ins_ops *ops = NULL;
  10 
  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;
  25 
  26         /* catch function call */
  27         if (!strcmp(name, "bsr") ||
  28             !strcmp(name, "jsri") ||
  29             !strcmp(name, "jsr"))
  30                 ops = &call_ops;
  31 
  32         /* catch function return */
  33         if (!strcmp(name, "rts"))
  34                 ops = &ret_ops;
  35 
  36         if (ops)
  37                 arch__associate_ins_ops(arch, name, ops);
  38         return ops;
  39 }
  40 
  41 static int csky__annotate_init(struct arch *arch, char *cpuid __maybe_unused)
  42 {
  43         arch->initialized = true;
  44         arch->objdump.comment_char = '/';
  45         arch->associate_instruction_ops = csky__associate_ins_ops;
  46 
  47         return 0;
  48 }

/* [<][>][^][v][top][bottom][index][help] */