// SPDX-License-Identifier: GPL-2.0

#include <errno.h>
#ifndef REMOTE_UNWIND_LIBUNWIND
#include <libunwind.h>
#include "perf_regs.h"
#include "../../util/unwind.h"
#include "../../util/debug.h"
#endif

#ifdef HAVE_ARCH_X86_64_SUPPORT
int LIBUNWIND__ARCH_REG_ID(int regnum)
{
	int id;

	switch (regnum) {
	case UNW_X86_64_RAX:
		id = PERF_REG_X86_AX;
		break;
	case UNW_X86_64_RDX:
		id = PERF_REG_X86_DX;
		break;
	case UNW_X86_64_RCX:
		id = PERF_REG_X86_CX;
		break;
	case UNW_X86_64_RBX:
		id = PERF_REG_X86_BX;
		break;
	case UNW_X86_64_RSI:
		id = PERF_REG_X86_SI;
		break;
	case UNW_X86_64_RDI:
		id = PERF_REG_X86_DI;
		break;
	case UNW_X86_64_RBP:
		id = PERF_REG_X86_BP;
		break;
	case UNW_X86_64_RSP:
		id = PERF_REG_X86_SP;
		break;
	case UNW_X86_64_R8:
		id = PERF_REG_X86_R8;
		break;
	case UNW_X86_64_R9:
		id = PERF_REG_X86_R9;
		break;
	case UNW_X86_64_R10:
		id = PERF_REG_X86_R10;
		break;
	case UNW_X86_64_R11:
		id = PERF_REG_X86_R11;
		break;
	case UNW_X86_64_R12:
		id = PERF_REG_X86_R12;
		break;
	case UNW_X86_64_R13:
		id = PERF_REG_X86_R13;
		break;
	case UNW_X86_64_R14:
		id = PERF_REG_X86_R14;
		break;
	case UNW_X86_64_R15:
		id = PERF_REG_X86_R15;
		break;
	case UNW_X86_64_RIP:
		id = PERF_REG_X86_IP;
		break;
	default:
		pr_err("unwind: invalid reg id %d\n", regnum);
		return -EINVAL;
	}

	return id;
}
#else
int LIBUNWIND__ARCH_REG_ID(int regnum)
{
	int id;

	switch (regnum) {
	case UNW_X86_EAX:
		id = PERF_REG_X86_AX;
		break;
	case UNW_X86_EDX:
		id = PERF_REG_X86_DX;
		break;
	case UNW_X86_ECX:
		id = PERF_REG_X86_CX;
		break;
	case UNW_X86_EBX:
		id = PERF_REG_X86_BX;
		break;
	case UNW_X86_ESI:
		id = PERF_REG_X86_SI;
		break;
	case UNW_X86_EDI:
		id = PERF_REG_X86_DI;
		break;
	case UNW_X86_EBP:
		id = PERF_REG_X86_BP;
		break;
	case UNW_X86_ESP:
		id = PERF_REG_X86_SP;
		break;
	case UNW_X86_EIP:
		id = PERF_REG_X86_IP;
		break;
	default:
		pr_err("unwind: invalid reg id %d\n", regnum);
		return -EINVAL;
	}

	return id;
}
#endif /* HAVE_ARCH_X86_64_SUPPORT */
