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

int LIBUNWIND__ARCH_REG_ID(int regnum)
{
	switch (regnum) {
	case UNW_AARCH64_X0:
		return PERF_REG_ARM64_X0;
	case UNW_AARCH64_X1:
		return PERF_REG_ARM64_X1;
	case UNW_AARCH64_X2:
		return PERF_REG_ARM64_X2;
	case UNW_AARCH64_X3:
		return PERF_REG_ARM64_X3;
	case UNW_AARCH64_X4:
		return PERF_REG_ARM64_X4;
	case UNW_AARCH64_X5:
		return PERF_REG_ARM64_X5;
	case UNW_AARCH64_X6:
		return PERF_REG_ARM64_X6;
	case UNW_AARCH64_X7:
		return PERF_REG_ARM64_X7;
	case UNW_AARCH64_X8:
		return PERF_REG_ARM64_X8;
	case UNW_AARCH64_X9:
		return PERF_REG_ARM64_X9;
	case UNW_AARCH64_X10:
		return PERF_REG_ARM64_X10;
	case UNW_AARCH64_X11:
		return PERF_REG_ARM64_X11;
	case UNW_AARCH64_X12:
		return PERF_REG_ARM64_X12;
	case UNW_AARCH64_X13:
		return PERF_REG_ARM64_X13;
	case UNW_AARCH64_X14:
		return PERF_REG_ARM64_X14;
	case UNW_AARCH64_X15:
		return PERF_REG_ARM64_X15;
	case UNW_AARCH64_X16:
		return PERF_REG_ARM64_X16;
	case UNW_AARCH64_X17:
		return PERF_REG_ARM64_X17;
	case UNW_AARCH64_X18:
		return PERF_REG_ARM64_X18;
	case UNW_AARCH64_X19:
		return PERF_REG_ARM64_X19;
	case UNW_AARCH64_X20:
		return PERF_REG_ARM64_X20;
	case UNW_AARCH64_X21:
		return PERF_REG_ARM64_X21;
	case UNW_AARCH64_X22:
		return PERF_REG_ARM64_X22;
	case UNW_AARCH64_X23:
		return PERF_REG_ARM64_X23;
	case UNW_AARCH64_X24:
		return PERF_REG_ARM64_X24;
	case UNW_AARCH64_X25:
		return PERF_REG_ARM64_X25;
	case UNW_AARCH64_X26:
		return PERF_REG_ARM64_X26;
	case UNW_AARCH64_X27:
		return PERF_REG_ARM64_X27;
	case UNW_AARCH64_X28:
		return PERF_REG_ARM64_X28;
	case UNW_AARCH64_X29:
		return PERF_REG_ARM64_X29;
	case UNW_AARCH64_X30:
		return PERF_REG_ARM64_LR;
	case UNW_AARCH64_SP:
		return PERF_REG_ARM64_SP;
	case UNW_AARCH64_PC:
		return PERF_REG_ARM64_PC;
	default:
		pr_err("unwind: invalid reg id %d\n", regnum);
		return -EINVAL;
	}

	return -EINVAL;
}
