mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-27 04:22:58 +00:00
perf annotate-data: Add update_insn_state()
The update_insn_state() function is to update the type state table after processing each instruction. For now, it handles MOV (on x86) insn to transfer type info from the source location to the target. The location can be a register or a stack slot. Check carefully when memory reference happens and fetch the type correctly. It basically ignores write to a memory since it doesn't change the type info. One exception is writes to (new) stack slots for register spilling. Signed-off-by: Namhyung Kim <namhyung@kernel.org> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Ian Rogers <irogers@google.com> Cc: Ingo Molnar <mingo@kernel.org> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Masami Hiramatsu <mhiramat@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Link: https://lore.kernel.org/r/20240319055115.4063940-11-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
committed by
Arnaldo Carvalho de Melo
parent
06b2ce7538
commit
4f903455be
@@ -75,6 +75,7 @@ extern struct annotated_data_type stackop_type;
|
||||
|
||||
/**
|
||||
* struct data_loc_info - Data location information
|
||||
* @arch: CPU architecture info
|
||||
* @ms: Map and Symbol info
|
||||
* @ip: Instruction address
|
||||
* @var_addr: Data address (for global variables)
|
||||
@@ -87,6 +88,7 @@ extern struct annotated_data_type stackop_type;
|
||||
*/
|
||||
struct data_loc_info {
|
||||
/* These are input field, should be filled by caller */
|
||||
struct arch *arch;
|
||||
struct map_symbol *ms;
|
||||
u64 ip;
|
||||
u64 var_addr;
|
||||
|
||||
Reference in New Issue
Block a user