mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 00:53:34 +02:00
perf annotate: Add more instructions for instruction tracking
Add few more instructions and use opcode as search key to find if it is supported by the architecture. The added ones are: addi, addic, addic., addis, subfic and mulli Reviewed-by: Kajol Jain <kjain@linux.ibm.com> Reviewed-by: Namhyung Kim <namhyung@kernel.org> Signed-off-by: Athira Rajeev <atrajeev@linux.vnet.ibm.com> Tested-by: Kajol Jain <kjain@linux.ibm.com> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Akanksha J N <akanksha@linux.ibm.com> Cc: Christophe Leroy <christophe.leroy@csgroup.eu> Cc: Disha Goel <disgoel@linux.vnet.ibm.com> Cc: Hari Bathini <hbathini@linux.ibm.com> Cc: Ian Rogers <irogers@google.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Madhavan Srinivasan <maddy@linux.ibm.com> Cc: Segher Boessenkool <segher@kernel.crashing.org> Link: https://lore.kernel.org/lkml/20240718084358.72242-11-atrajeev@linux.vnet.ibm.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
cd0b6f67c4
commit
539bfea3e0
|
|
@ -172,6 +172,14 @@ static struct insn_offset arithmetic_ins_op_31[] = {
|
|||
{ .name = "DIV_W_XO_FORM", .value = 491, },
|
||||
};
|
||||
|
||||
static struct insn_offset arithmetic_two_ops[] = {
|
||||
{ .name = "mulli", .value = 7, },
|
||||
{ .name = "subfic", .value = 8, },
|
||||
{ .name = "addic", .value = 12, },
|
||||
{ .name = "addic.", .value = 13, },
|
||||
{ .name = "addi", .value = 14, },
|
||||
{ .name = "addis", .value = 15, },
|
||||
};
|
||||
|
||||
static int cmp_offset(const void *a, const void *b)
|
||||
{
|
||||
|
|
@ -212,6 +220,12 @@ static struct ins_ops *check_ppc_insn(u32 raw_insn)
|
|||
if (PPC_21_30(raw_insn) == 444)
|
||||
return &arithmetic_ops;
|
||||
}
|
||||
} else {
|
||||
mem_insns_31_opcode.value = opcode;
|
||||
ret = bsearch(&mem_insns_31_opcode, arithmetic_two_ops, ARRAY_SIZE(arithmetic_two_ops),
|
||||
sizeof(arithmetic_two_ops[0]), cmp_offset);
|
||||
if (ret != NULL)
|
||||
return &arithmetic_ops;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user