linux/tools/perf/arch/arm/util/unwind-libunwind.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0
   2
   3#include <errno.h>
   4#include <libunwind.h>
   5#include "perf_regs.h"
   6#include "../../util/unwind.h"
   7#include "../../util/debug.h"
   8
   9int libunwind__arch_reg_id(int regnum)
  10{
  11        switch (regnum) {
  12        case UNW_ARM_R0:
  13                return PERF_REG_ARM_R0;
  14        case UNW_ARM_R1:
  15                return PERF_REG_ARM_R1;
  16        case UNW_ARM_R2:
  17                return PERF_REG_ARM_R2;
  18        case UNW_ARM_R3:
  19                return PERF_REG_ARM_R3;
  20        case UNW_ARM_R4:
  21                return PERF_REG_ARM_R4;
  22        case UNW_ARM_R5:
  23                return PERF_REG_ARM_R5;
  24        case UNW_ARM_R6:
  25                return PERF_REG_ARM_R6;
  26        case UNW_ARM_R7:
  27                return PERF_REG_ARM_R7;
  28        case UNW_ARM_R8:
  29                return PERF_REG_ARM_R8;
  30        case UNW_ARM_R9:
  31                return PERF_REG_ARM_R9;
  32        case UNW_ARM_R10:
  33                return PERF_REG_ARM_R10;
  34        case UNW_ARM_R11:
  35                return PERF_REG_ARM_FP;
  36        case UNW_ARM_R12:
  37                return PERF_REG_ARM_IP;
  38        case UNW_ARM_R13:
  39                return PERF_REG_ARM_SP;
  40        case UNW_ARM_R14:
  41                return PERF_REG_ARM_LR;
  42        case UNW_ARM_R15:
  43                return PERF_REG_ARM_PC;
  44        default:
  45                pr_err("unwind: invalid reg id %d\n", regnum);
  46                return -EINVAL;
  47        }
  48
  49        return -EINVAL;
  50}
  51