mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-02-10 11:35:21 +07:00
![Arnaldo Carvalho de Melo](/assets/img/avatar_default.png)
Another step in supporting cross annotation. The arch specific tables are put in: tools/perf/arch/$ARCH/annotation/instructions.c which, so far, just plug instructions to a bunch of parsers/formatters, but may have more as the need arises. This is an alternative implementation to a previous attempt made by Ravi Bangoria. Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Chris Riyder <chris.ryder@arm.com> Cc: David Ahern <dsahern@gmail.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Kim Phillips <kim.phillips@arm.com> Cc: Markus Trippelsdorf <markus@trippelsdorf.de> Cc: Masami Hiramatsu <mhiramat@kernel.org> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> Cc: Pawel Moll <pawel.moll@arm.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com> Cc: Russell King <rmk+kernel@arm.linux.org.uk> Cc: Taeung Song <treeze.taeung@gmail.com> Cc: Wang Nan <wangnan0@huawei.com> Link: http://lkml.kernel.org/n/tip-g3wt282lfa51j4qd0813e3az@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
79 lines
3.0 KiB
C
79 lines
3.0 KiB
C
static struct ins x86__instructions[] = {
|
|
{ .name = "add", .ops = &mov_ops, },
|
|
{ .name = "addl", .ops = &mov_ops, },
|
|
{ .name = "addq", .ops = &mov_ops, },
|
|
{ .name = "addw", .ops = &mov_ops, },
|
|
{ .name = "and", .ops = &mov_ops, },
|
|
{ .name = "bts", .ops = &mov_ops, },
|
|
{ .name = "call", .ops = &call_ops, },
|
|
{ .name = "callq", .ops = &call_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 = "dec", .ops = &dec_ops, },
|
|
{ .name = "decl", .ops = &dec_ops, },
|
|
{ .name = "imul", .ops = &mov_ops, },
|
|
{ .name = "inc", .ops = &dec_ops, },
|
|
{ .name = "incl", .ops = &dec_ops, },
|
|
{ .name = "ja", .ops = &jump_ops, },
|
|
{ .name = "jae", .ops = &jump_ops, },
|
|
{ .name = "jb", .ops = &jump_ops, },
|
|
{ .name = "jbe", .ops = &jump_ops, },
|
|
{ .name = "jc", .ops = &jump_ops, },
|
|
{ .name = "jcxz", .ops = &jump_ops, },
|
|
{ .name = "je", .ops = &jump_ops, },
|
|
{ .name = "jecxz", .ops = &jump_ops, },
|
|
{ .name = "jg", .ops = &jump_ops, },
|
|
{ .name = "jge", .ops = &jump_ops, },
|
|
{ .name = "jl", .ops = &jump_ops, },
|
|
{ .name = "jle", .ops = &jump_ops, },
|
|
{ .name = "jmp", .ops = &jump_ops, },
|
|
{ .name = "jmpq", .ops = &jump_ops, },
|
|
{ .name = "jna", .ops = &jump_ops, },
|
|
{ .name = "jnae", .ops = &jump_ops, },
|
|
{ .name = "jnb", .ops = &jump_ops, },
|
|
{ .name = "jnbe", .ops = &jump_ops, },
|
|
{ .name = "jnc", .ops = &jump_ops, },
|
|
{ .name = "jne", .ops = &jump_ops, },
|
|
{ .name = "jng", .ops = &jump_ops, },
|
|
{ .name = "jnge", .ops = &jump_ops, },
|
|
{ .name = "jnl", .ops = &jump_ops, },
|
|
{ .name = "jnle", .ops = &jump_ops, },
|
|
{ .name = "jno", .ops = &jump_ops, },
|
|
{ .name = "jnp", .ops = &jump_ops, },
|
|
{ .name = "jns", .ops = &jump_ops, },
|
|
{ .name = "jnz", .ops = &jump_ops, },
|
|
{ .name = "jo", .ops = &jump_ops, },
|
|
{ .name = "jp", .ops = &jump_ops, },
|
|
{ .name = "jpe", .ops = &jump_ops, },
|
|
{ .name = "jpo", .ops = &jump_ops, },
|
|
{ .name = "jrcxz", .ops = &jump_ops, },
|
|
{ .name = "js", .ops = &jump_ops, },
|
|
{ .name = "jz", .ops = &jump_ops, },
|
|
{ .name = "lea", .ops = &mov_ops, },
|
|
{ .name = "lock", .ops = &lock_ops, },
|
|
{ .name = "mov", .ops = &mov_ops, },
|
|
{ .name = "movb", .ops = &mov_ops, },
|
|
{ .name = "movdqa", .ops = &mov_ops, },
|
|
{ .name = "movl", .ops = &mov_ops, },
|
|
{ .name = "movq", .ops = &mov_ops, },
|
|
{ .name = "movslq", .ops = &mov_ops, },
|
|
{ .name = "movzbl", .ops = &mov_ops, },
|
|
{ .name = "movzwl", .ops = &mov_ops, },
|
|
{ .name = "nop", .ops = &nop_ops, },
|
|
{ .name = "nopl", .ops = &nop_ops, },
|
|
{ .name = "nopw", .ops = &nop_ops, },
|
|
{ .name = "or", .ops = &mov_ops, },
|
|
{ .name = "orl", .ops = &mov_ops, },
|
|
{ .name = "test", .ops = &mov_ops, },
|
|
{ .name = "testb", .ops = &mov_ops, },
|
|
{ .name = "testl", .ops = &mov_ops, },
|
|
{ .name = "xadd", .ops = &mov_ops, },
|
|
{ .name = "xbeginl", .ops = &jump_ops, },
|
|
{ .name = "xbeginq", .ops = &jump_ops, },
|
|
{ .name = "retq", .ops = &ret_ops, },
|
|
};
|