2023-06-12 23:27:56

by Namhyung Kim

[permalink] [raw]
Subject: [PATCH] perf annotate: Allow whitespace between insn operands

The llvm-objdump adds a space between the operands while GNU objdump
does not. Allow a space to handle the both.

In GNU objdump:

Disassembly of section .text: here
|
ffffffff81000000 <_stext>: v
ffffffff81000000: 48 8d 25 51 1f 40 01 lea 0x1401f51(%rip),%rsp
ffffffff81000007: e8 d4 00 00 00 call ffffffff810000e0 <verify_cpu>
ffffffff8100000c: 48 8d 3d ed ff ff ff lea -0x13(%rip),%rdi

In llvm-objdump:

Disassembly of section .text: here
|
ffffffff81000000 <startup_64>: v
ffffffff81000000: 48 8d 25 51 1f 40 01 leaq 20979537(%rip), %rsp
ffffffff81000007: e8 d4 00 00 00 callq 0xffffffff810000e0 <verify_cpu>
ffffffff8100000c: 48 8d 3d ed ff ff ff leaq -19(%rip), %rdi

Signed-off-by: Namhyung Kim <[email protected]>
---
tools/perf/util/annotate.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c
index 9171102dd3ad..3eab6c29eaa5 100644
--- a/tools/perf/util/annotate.c
+++ b/tools/perf/util/annotate.c
@@ -585,7 +585,7 @@ static int mov__parse(struct arch *arch, struct ins_operands *ops, struct map_sy
if (ops->source.raw == NULL)
return -1;

- target = ++s;
+ target = skip_spaces(++s);
comment = strchr(s, arch->objdump.comment_char);

if (comment != NULL)
--
2.41.0.162.gfafddb0af9-goog



2023-06-13 00:13:30

by Ian Rogers

[permalink] [raw]
Subject: Re: [PATCH] perf annotate: Allow whitespace between insn operands

On Mon, Jun 12, 2023 at 4:00 PM Namhyung Kim <[email protected]> wrote:
>
> The llvm-objdump adds a space between the operands while GNU objdump
> does not. Allow a space to handle the both.
>
> In GNU objdump:
>
> Disassembly of section .text: here
> |
> ffffffff81000000 <_stext>: v
> ffffffff81000000: 48 8d 25 51 1f 40 01 lea 0x1401f51(%rip),%rsp
> ffffffff81000007: e8 d4 00 00 00 call ffffffff810000e0 <verify_cpu>
> ffffffff8100000c: 48 8d 3d ed ff ff ff lea -0x13(%rip),%rdi
>
> In llvm-objdump:
>
> Disassembly of section .text: here
> |
> ffffffff81000000 <startup_64>: v
> ffffffff81000000: 48 8d 25 51 1f 40 01 leaq 20979537(%rip), %rsp
> ffffffff81000007: e8 d4 00 00 00 callq 0xffffffff810000e0 <verify_cpu>
> ffffffff8100000c: 48 8d 3d ed ff ff ff leaq -19(%rip), %rdi
>
> Signed-off-by: Namhyung Kim <[email protected]>

Acked-by: Ian Rogers <[email protected]>

Thanks,
Ian

> ---
> tools/perf/util/annotate.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c
> index 9171102dd3ad..3eab6c29eaa5 100644
> --- a/tools/perf/util/annotate.c
> +++ b/tools/perf/util/annotate.c
> @@ -585,7 +585,7 @@ static int mov__parse(struct arch *arch, struct ins_operands *ops, struct map_sy
> if (ops->source.raw == NULL)
> return -1;
>
> - target = ++s;
> + target = skip_spaces(++s);
> comment = strchr(s, arch->objdump.comment_char);
>
> if (comment != NULL)
> --
> 2.41.0.162.gfafddb0af9-goog
>