perf unwind: Use perf_arch_reg_{ip|sp}() to substitute macros
[linux-2.6-microblaze.git] / tools / perf / util / unwind-libdw.c
index 2a96df4..8554db3 100644 (file)
@@ -17,6 +17,7 @@
 #include "event.h"
 #include "perf_regs.h"
 #include "callchain.h"
+#include "util/env.h"
 
 static char *debuginfo_path;
 
@@ -170,12 +171,14 @@ static bool memory_read(Dwfl *dwfl __maybe_unused, Dwarf_Addr addr, Dwarf_Word *
                        void *arg)
 {
        struct unwind_info *ui = arg;
+       const char *arch = perf_env__arch(ui->machine->env);
        struct stack_dump *stack = &ui->sample->user_stack;
        u64 start, end;
        int offset;
        int ret;
 
-       ret = perf_reg_value(&start, &ui->sample->user_regs, PERF_REG_SP);
+       ret = perf_reg_value(&start, &ui->sample->user_regs,
+                            perf_arch_reg_sp(arch));
        if (ret)
                return false;
 
@@ -253,6 +256,7 @@ int unwind__get_entries(unwind_entry_cb_t cb, void *arg,
                .max_stack      = max_stack,
                .best_effort    = best_effort
        };
+       const char *arch = perf_env__arch(ui_buf.machine->env);
        Dwarf_Word ip;
        int err = -EINVAL, i;
 
@@ -269,7 +273,7 @@ int unwind__get_entries(unwind_entry_cb_t cb, void *arg,
        if (!ui->dwfl)
                goto out;
 
-       err = perf_reg_value(&ip, &data->user_regs, PERF_REG_IP);
+       err = perf_reg_value(&ip, &data->user_regs, perf_arch_reg_ip(arch));
        if (err)
                goto out;