forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.0 KiB
50 lines
1.0 KiB
// SPDX-License-Identifier: GPL-2.0 |
|
|
|
#include <errno.h> |
|
#include <libunwind.h> |
|
#include "perf_regs.h" |
|
#include "../../util/unwind.h" |
|
#include "../../util/debug.h" |
|
|
|
int libunwind__arch_reg_id(int regnum) |
|
{ |
|
switch (regnum) { |
|
case UNW_ARM_R0: |
|
return PERF_REG_ARM_R0; |
|
case UNW_ARM_R1: |
|
return PERF_REG_ARM_R1; |
|
case UNW_ARM_R2: |
|
return PERF_REG_ARM_R2; |
|
case UNW_ARM_R3: |
|
return PERF_REG_ARM_R3; |
|
case UNW_ARM_R4: |
|
return PERF_REG_ARM_R4; |
|
case UNW_ARM_R5: |
|
return PERF_REG_ARM_R5; |
|
case UNW_ARM_R6: |
|
return PERF_REG_ARM_R6; |
|
case UNW_ARM_R7: |
|
return PERF_REG_ARM_R7; |
|
case UNW_ARM_R8: |
|
return PERF_REG_ARM_R8; |
|
case UNW_ARM_R9: |
|
return PERF_REG_ARM_R9; |
|
case UNW_ARM_R10: |
|
return PERF_REG_ARM_R10; |
|
case UNW_ARM_R11: |
|
return PERF_REG_ARM_FP; |
|
case UNW_ARM_R12: |
|
return PERF_REG_ARM_IP; |
|
case UNW_ARM_R13: |
|
return PERF_REG_ARM_SP; |
|
case UNW_ARM_R14: |
|
return PERF_REG_ARM_LR; |
|
case UNW_ARM_R15: |
|
return PERF_REG_ARM_PC; |
|
default: |
|
pr_err("unwind: invalid reg id %d\n", regnum); |
|
return -EINVAL; |
|
} |
|
|
|
return -EINVAL; |
|
}
|
|
|