mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 10:41:38 -04:00
perf annotate: Handle variables in 'sub', 'or' and many other instructions
Just like is done for 'mov' and others that can have as source or targets variables resolved by objdump, to make them more compact: - orb $0x4,0x224d71(%rip) # 226ca4 <_rtld_global+0xca4> + orb $0x4,_rtld_global+0xca4 Cc: Adrian Hunter <[email protected]> Cc: Andi Kleen <[email protected]> Cc: David Ahern <[email protected]> Cc: Jin Yao <[email protected]> Cc: Jiri Olsa <[email protected]> Cc: Martin Liška <[email protected]> Cc: Namhyung Kim <[email protected]> Cc: Ravi Bangoria <[email protected]> Cc: Thomas Richter <[email protected]> Cc: Wang Nan <[email protected]> Link: https://lkml.kernel.org/n/[email protected] Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
This commit is contained in:
parent
43c4023152
commit
b0d5c81e87
1 changed files with 66 additions and 1 deletions
|
|
@ -1,21 +1,43 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
static struct ins x86__instructions[] = {
|
||||
{ .name = "adc", .ops = &mov_ops, },
|
||||
{ .name = "adcb", .ops = &mov_ops, },
|
||||
{ .name = "adcl", .ops = &mov_ops, },
|
||||
{ .name = "add", .ops = &mov_ops, },
|
||||
{ .name = "addl", .ops = &mov_ops, },
|
||||
{ .name = "addq", .ops = &mov_ops, },
|
||||
{ .name = "addsd", .ops = &mov_ops, },
|
||||
{ .name = "addw", .ops = &mov_ops, },
|
||||
{ .name = "and", .ops = &mov_ops, },
|
||||
{ .name = "andb", .ops = &mov_ops, },
|
||||
{ .name = "andl", .ops = &mov_ops, },
|
||||
{ .name = "andpd", .ops = &mov_ops, },
|
||||
{ .name = "andps", .ops = &mov_ops, },
|
||||
{ .name = "andq", .ops = &mov_ops, },
|
||||
{ .name = "andw", .ops = &mov_ops, },
|
||||
{ .name = "bsr", .ops = &mov_ops, },
|
||||
{ .name = "bt", .ops = &mov_ops, },
|
||||
{ .name = "btr", .ops = &mov_ops, },
|
||||
{ .name = "bts", .ops = &mov_ops, },
|
||||
{ .name = "btsq", .ops = &mov_ops, },
|
||||
{ .name = "call", .ops = &call_ops, },
|
||||
{ .name = "callq", .ops = &call_ops, },
|
||||
{ .name = "cmovbe", .ops = &mov_ops, },
|
||||
{ .name = "cmove", .ops = &mov_ops, },
|
||||
{ .name = "cmovae", .ops = &mov_ops, },
|
||||
{ .name = "cmp", .ops = &mov_ops, },
|
||||
{ .name = "cmpb", .ops = &mov_ops, },
|
||||
{ .name = "cmpl", .ops = &mov_ops, },
|
||||
{ .name = "cmpq", .ops = &mov_ops, },
|
||||
{ .name = "cmpw", .ops = &mov_ops, },
|
||||
{ .name = "cmpxch", .ops = &mov_ops, },
|
||||
{ .name = "cmpxchg", .ops = &mov_ops, },
|
||||
{ .name = "cs", .ops = &mov_ops, },
|
||||
{ .name = "dec", .ops = &dec_ops, },
|
||||
{ .name = "decl", .ops = &dec_ops, },
|
||||
{ .name = "divsd", .ops = &mov_ops, },
|
||||
{ .name = "divss", .ops = &mov_ops, },
|
||||
{ .name = "gs", .ops = &mov_ops, },
|
||||
{ .name = "imul", .ops = &mov_ops, },
|
||||
{ .name = "inc", .ops = &dec_ops, },
|
||||
{ .name = "incl", .ops = &dec_ops, },
|
||||
|
|
@ -57,25 +79,68 @@ static struct ins x86__instructions[] = {
|
|||
{ .name = "lea", .ops = &mov_ops, },
|
||||
{ .name = "lock", .ops = &lock_ops, },
|
||||
{ .name = "mov", .ops = &mov_ops, },
|
||||
{ .name = "movapd", .ops = &mov_ops, },
|
||||
{ .name = "movaps", .ops = &mov_ops, },
|
||||
{ .name = "movb", .ops = &mov_ops, },
|
||||
{ .name = "movdqa", .ops = &mov_ops, },
|
||||
{ .name = "movdqu", .ops = &mov_ops, },
|
||||
{ .name = "movl", .ops = &mov_ops, },
|
||||
{ .name = "movq", .ops = &mov_ops, },
|
||||
{ .name = "movsd", .ops = &mov_ops, },
|
||||
{ .name = "movslq", .ops = &mov_ops, },
|
||||
{ .name = "movss", .ops = &mov_ops, },
|
||||
{ .name = "movupd", .ops = &mov_ops, },
|
||||
{ .name = "movups", .ops = &mov_ops, },
|
||||
{ .name = "movw", .ops = &mov_ops, },
|
||||
{ .name = "movzbl", .ops = &mov_ops, },
|
||||
{ .name = "movzwl", .ops = &mov_ops, },
|
||||
{ .name = "mulsd", .ops = &mov_ops, },
|
||||
{ .name = "mulss", .ops = &mov_ops, },
|
||||
{ .name = "nop", .ops = &nop_ops, },
|
||||
{ .name = "nopl", .ops = &nop_ops, },
|
||||
{ .name = "nopw", .ops = &nop_ops, },
|
||||
{ .name = "or", .ops = &mov_ops, },
|
||||
{ .name = "orb", .ops = &mov_ops, },
|
||||
{ .name = "orl", .ops = &mov_ops, },
|
||||
{ .name = "orps", .ops = &mov_ops, },
|
||||
{ .name = "orq", .ops = &mov_ops, },
|
||||
{ .name = "pand", .ops = &mov_ops, },
|
||||
{ .name = "paddq", .ops = &mov_ops, },
|
||||
{ .name = "pcmpeqb", .ops = &mov_ops, },
|
||||
{ .name = "por", .ops = &mov_ops, },
|
||||
{ .name = "rclb", .ops = &mov_ops, },
|
||||
{ .name = "rcll", .ops = &mov_ops, },
|
||||
{ .name = "retq", .ops = &ret_ops, },
|
||||
{ .name = "sbb", .ops = &mov_ops, },
|
||||
{ .name = "sbbl", .ops = &mov_ops, },
|
||||
{ .name = "sete", .ops = &mov_ops, },
|
||||
{ .name = "sub", .ops = &mov_ops, },
|
||||
{ .name = "subl", .ops = &mov_ops, },
|
||||
{ .name = "subq", .ops = &mov_ops, },
|
||||
{ .name = "subsd", .ops = &mov_ops, },
|
||||
{ .name = "subw", .ops = &mov_ops, },
|
||||
{ .name = "test", .ops = &mov_ops, },
|
||||
{ .name = "testb", .ops = &mov_ops, },
|
||||
{ .name = "testl", .ops = &mov_ops, },
|
||||
{ .name = "ucomisd", .ops = &mov_ops, },
|
||||
{ .name = "ucomiss", .ops = &mov_ops, },
|
||||
{ .name = "vaddsd", .ops = &mov_ops, },
|
||||
{ .name = "vandpd", .ops = &mov_ops, },
|
||||
{ .name = "vmovdqa", .ops = &mov_ops, },
|
||||
{ .name = "vmovq", .ops = &mov_ops, },
|
||||
{ .name = "vmovsd", .ops = &mov_ops, },
|
||||
{ .name = "vmulsd", .ops = &mov_ops, },
|
||||
{ .name = "vorpd", .ops = &mov_ops, },
|
||||
{ .name = "vsubsd", .ops = &mov_ops, },
|
||||
{ .name = "vucomisd", .ops = &mov_ops, },
|
||||
{ .name = "xadd", .ops = &mov_ops, },
|
||||
{ .name = "xbeginl", .ops = &jump_ops, },
|
||||
{ .name = "xbeginq", .ops = &jump_ops, },
|
||||
{ .name = "retq", .ops = &ret_ops, },
|
||||
{ .name = "xchg", .ops = &mov_ops, },
|
||||
{ .name = "xor", .ops = &mov_ops, },
|
||||
{ .name = "xorb", .ops = &mov_ops, },
|
||||
{ .name = "xorpd", .ops = &mov_ops, },
|
||||
{ .name = "xorps", .ops = &mov_ops, },
|
||||
};
|
||||
|
||||
static bool x86__ins_is_fused(struct arch *arch, const char *ins1,
|
||||
|
|
|
|||
Loading…
Reference in a new issue