2 #include <elfutils/libdwfl.h> 3 #include "../../util/unwind-libdw.h" 4 #include "../../util/perf_regs.h" 5 #include "../../util/event.h" 9 { 65, PERF_REG_POWERPC_LINK },
10 { 101, PERF_REG_POWERPC_XER },
11 { 109, PERF_REG_POWERPC_CTR },
18 Dwarf_Word dwarf_regs[32], dwarf_nip;
23 perf_reg_value(&val, user_regs, PERF_REG_POWERPC_##r); \ 27 dwarf_regs[0] =
REG(R0);
28 dwarf_regs[1] =
REG(R1);
29 dwarf_regs[2] =
REG(R2);
30 dwarf_regs[3] =
REG(R3);
31 dwarf_regs[4] =
REG(R4);
32 dwarf_regs[5] =
REG(R5);
33 dwarf_regs[6] =
REG(R6);
34 dwarf_regs[7] =
REG(R7);
35 dwarf_regs[8] =
REG(R8);
36 dwarf_regs[9] =
REG(R9);
37 dwarf_regs[10] =
REG(R10);
38 dwarf_regs[11] =
REG(R11);
39 dwarf_regs[12] =
REG(R12);
40 dwarf_regs[13] =
REG(R13);
41 dwarf_regs[14] =
REG(R14);
42 dwarf_regs[15] =
REG(R15);
43 dwarf_regs[16] =
REG(R16);
44 dwarf_regs[17] =
REG(R17);
45 dwarf_regs[18] =
REG(R18);
46 dwarf_regs[19] =
REG(R19);
47 dwarf_regs[20] =
REG(R20);
48 dwarf_regs[21] =
REG(R21);
49 dwarf_regs[22] =
REG(R22);
50 dwarf_regs[23] =
REG(R23);
51 dwarf_regs[24] =
REG(R24);
52 dwarf_regs[25] =
REG(R25);
53 dwarf_regs[26] =
REG(R26);
54 dwarf_regs[27] =
REG(R27);
55 dwarf_regs[28] =
REG(R28);
56 dwarf_regs[29] =
REG(R29);
57 dwarf_regs[30] =
REG(R30);
58 dwarf_regs[31] =
REG(R31);
59 if (!dwfl_thread_state_registers(thread, 0, 32, dwarf_regs))
63 dwfl_thread_state_register_pc(thread, dwarf_nip);
67 if (!dwfl_thread_state_registers(thread,
static int perf_reg_value(u64 *valp __maybe_unused, struct regs_dump *regs __maybe_unused, int id __maybe_unused)
struct regs_dump user_regs
static const int special_regs[3][2]
bool libdw__arch_set_initial_registers(Dwfl_Thread *thread, void *arg)
struct perf_sample * sample