2874c5fd28
Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 3029 file(s). Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Allison Randal <allison@lohutok.net> Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527070032.746973796@linutronix.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
93 lines
2.2 KiB
C
93 lines
2.2 KiB
C
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
/*
|
|
* Copyright 2016 Chandan Kumar, IBM Corporation.
|
|
*/
|
|
|
|
#include <errno.h>
|
|
#include <libunwind.h>
|
|
#include <asm/perf_regs.h>
|
|
#include "../../util/unwind.h"
|
|
#include "../../util/debug.h"
|
|
|
|
int libunwind__arch_reg_id(int regnum)
|
|
{
|
|
switch (regnum) {
|
|
case UNW_PPC64_R0:
|
|
return PERF_REG_POWERPC_R0;
|
|
case UNW_PPC64_R1:
|
|
return PERF_REG_POWERPC_R1;
|
|
case UNW_PPC64_R2:
|
|
return PERF_REG_POWERPC_R2;
|
|
case UNW_PPC64_R3:
|
|
return PERF_REG_POWERPC_R3;
|
|
case UNW_PPC64_R4:
|
|
return PERF_REG_POWERPC_R4;
|
|
case UNW_PPC64_R5:
|
|
return PERF_REG_POWERPC_R5;
|
|
case UNW_PPC64_R6:
|
|
return PERF_REG_POWERPC_R6;
|
|
case UNW_PPC64_R7:
|
|
return PERF_REG_POWERPC_R7;
|
|
case UNW_PPC64_R8:
|
|
return PERF_REG_POWERPC_R8;
|
|
case UNW_PPC64_R9:
|
|
return PERF_REG_POWERPC_R9;
|
|
case UNW_PPC64_R10:
|
|
return PERF_REG_POWERPC_R10;
|
|
case UNW_PPC64_R11:
|
|
return PERF_REG_POWERPC_R11;
|
|
case UNW_PPC64_R12:
|
|
return PERF_REG_POWERPC_R12;
|
|
case UNW_PPC64_R13:
|
|
return PERF_REG_POWERPC_R13;
|
|
case UNW_PPC64_R14:
|
|
return PERF_REG_POWERPC_R14;
|
|
case UNW_PPC64_R15:
|
|
return PERF_REG_POWERPC_R15;
|
|
case UNW_PPC64_R16:
|
|
return PERF_REG_POWERPC_R16;
|
|
case UNW_PPC64_R17:
|
|
return PERF_REG_POWERPC_R17;
|
|
case UNW_PPC64_R18:
|
|
return PERF_REG_POWERPC_R18;
|
|
case UNW_PPC64_R19:
|
|
return PERF_REG_POWERPC_R19;
|
|
case UNW_PPC64_R20:
|
|
return PERF_REG_POWERPC_R20;
|
|
case UNW_PPC64_R21:
|
|
return PERF_REG_POWERPC_R21;
|
|
case UNW_PPC64_R22:
|
|
return PERF_REG_POWERPC_R22;
|
|
case UNW_PPC64_R23:
|
|
return PERF_REG_POWERPC_R23;
|
|
case UNW_PPC64_R24:
|
|
return PERF_REG_POWERPC_R24;
|
|
case UNW_PPC64_R25:
|
|
return PERF_REG_POWERPC_R25;
|
|
case UNW_PPC64_R26:
|
|
return PERF_REG_POWERPC_R26;
|
|
case UNW_PPC64_R27:
|
|
return PERF_REG_POWERPC_R27;
|
|
case UNW_PPC64_R28:
|
|
return PERF_REG_POWERPC_R28;
|
|
case UNW_PPC64_R29:
|
|
return PERF_REG_POWERPC_R29;
|
|
case UNW_PPC64_R30:
|
|
return PERF_REG_POWERPC_R30;
|
|
case UNW_PPC64_R31:
|
|
return PERF_REG_POWERPC_R31;
|
|
case UNW_PPC64_LR:
|
|
return PERF_REG_POWERPC_LINK;
|
|
case UNW_PPC64_CTR:
|
|
return PERF_REG_POWERPC_CTR;
|
|
case UNW_PPC64_XER:
|
|
return PERF_REG_POWERPC_XER;
|
|
case UNW_PPC64_NIP:
|
|
return PERF_REG_POWERPC_NIP;
|
|
default:
|
|
pr_err("unwind: invalid reg id %d\n", regnum);
|
|
return -EINVAL;
|
|
}
|
|
return -EINVAL;
|
|
}
|