From 4cc600c3f0904bc6e31f0cabbadd58991772a5ba Mon Sep 17 00:00:00 2001 From: Arnaldo Carvalho de Melo Date: Fri, 11 May 2012 12:28:55 -0300 Subject: [PATCH] --- yaml --- r: 304932 b: refs/heads/master c: e8ea1561952b04276cf4c02500e363de76c142aa h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/tools/perf/util/annotate.c | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 2d7e63abf12c..4ca90044ba9e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5dcefda0fd87fefa440abc9b9d3f1089229f8911 +refs/heads/master: e8ea1561952b04276cf4c02500e363de76c142aa diff --git a/trunk/tools/perf/util/annotate.c b/trunk/tools/perf/util/annotate.c index 6b4146b40a20..9a020d1e0180 100644 --- a/trunk/tools/perf/util/annotate.c +++ b/trunk/tools/perf/util/annotate.c @@ -56,6 +56,12 @@ static int call__parse(struct ins_operands *ops) return ops->target.name == NULL ? -1 : 0; indirect_call: + tok = strchr(endptr, '('); + if (tok != NULL) { + ops->target.addr = 0; + return 0; + } + tok = strchr(endptr, '*'); if (tok == NULL) return -1; @@ -70,6 +76,9 @@ static int call__scnprintf(struct ins *ins, char *bf, size_t size, if (ops->target.name) return scnprintf(bf, size, "%-6.6s %s", ins->name, ops->target.name); + if (ops->target.addr == 0) + return ins__raw_scnprintf(ins, bf, size, ops); + return scnprintf(bf, size, "%-6.6s *%" PRIx64, ins->name, ops->target.addr); }