aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/tools/perf/arch
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@redhat.com>2018-03-20 16:19:08 -0300
committerArnaldo Carvalho de Melo <acme@redhat.com>2018-03-21 16:19:41 -0300
commit85a84e4f813912ab77d872ff6882dd7b435fbf4e (patch)
tree9398213418866ee06bb94a64b8d6a8e961b72912 /tools/perf/arch
parentperf annotate: No need to calculate notes->start twice (diff)
downloadwireguard-linux-85a84e4f813912ab77d872ff6882dd7b435fbf4e.tar.xz
wireguard-linux-85a84e4f813912ab77d872ff6882dd7b435fbf4e.zip
perf annotate: Pass function descriptor to its instruction parsing routines
We need that to figure out if jumps have targets in a different function. E.g. _cpp_lex_token(), in /usr/libexec/gcc/x86_64-redhat-linux/5.3.1/cc1 has a line like this: jne c469be <cpp_named_operator2name@@Base+0xa72> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: David Ahern <dsahern@gmail.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Wang Nan <wangnan0@huawei.com> Link: https://lkml.kernel.org/n/tip-ris0ioziyp469pofpzix2atb@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/arch')
-rw-r--r--tools/perf/arch/s390/annotate/instructions.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/tools/perf/arch/s390/annotate/instructions.c b/tools/perf/arch/s390/annotate/instructions.c
index 46c21831f2ac..cee4e2f7c057 100644
--- a/tools/perf/arch/s390/annotate/instructions.c
+++ b/tools/perf/arch/s390/annotate/instructions.c
@@ -2,9 +2,10 @@
#include <linux/compiler.h>
static int s390_call__parse(struct arch *arch, struct ins_operands *ops,
- struct map *map)
+ struct map_symbol *ms)
{
char *endptr, *tok, *name;
+ struct map *map = ms->map;
struct addr_map_symbol target = {
.map = map,
};
@@ -54,7 +55,7 @@ static struct ins_ops s390_call_ops = {
static int s390_mov__parse(struct arch *arch __maybe_unused,
struct ins_operands *ops,
- struct map *map __maybe_unused)
+ struct map_symbol *ms __maybe_unused)
{
char *s = strchr(ops->raw, ','), *target, *endptr;