perf annotate browser: Compact 'nop' output
authorArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 7 May 2012 21:57:02 +0000 (18:57 -0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 7 May 2012 22:00:42 +0000 (19:00 -0300)
Just suppress the nop operands, future infrastructure that will record
the instruction lenght (and its contents) in struct ins will allow
rendering them as nopN, i.e. nop5 for a 5-byte nop.

Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/n/tip-qddbeglfzqdlal8vj2yaj67y@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/annotate.c

index 0905db4390c1dfa177d176beb6ac435329ed0a30..6b4146b40a20e08a7a573ec839a0615c92a436dc 100644 (file)
@@ -113,6 +113,16 @@ bool ins__is_jump(const struct ins *ins)
        return ins->ops == &jump_ops;
 }
 
+static int nop__scnprintf(struct ins *ins __used, char *bf, size_t size,
+                         struct ins_operands *ops __used)
+{
+       return scnprintf(bf, size, "%-6.6s", "nop");
+}
+
+static struct ins_ops nop_ops = {
+       .scnprintf = nop__scnprintf,
+};
+
 /*
  * Must be sorted by name!
  */
@@ -154,6 +164,9 @@ static struct ins instructions[] = {
        { .name = "jrcxz", .ops  = &jump_ops, },
        { .name = "js",    .ops  = &jump_ops, },
        { .name = "jz",    .ops  = &jump_ops, },
+       { .name = "nop",   .ops  = &nop_ops, },
+       { .name = "nopl",  .ops  = &nop_ops, },
+       { .name = "nopw",  .ops  = &nop_ops, },
 };
 
 static int ins__cmp(const void *name, const void *insp)