162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Mapping of DWARF debug register numbers into register names.
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Copyright (C) 2010 Matt Fleming <matt@console-pimps.org>
662306a36Sopenharmony_ci */
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci#include <stddef.h>
962306a36Sopenharmony_ci#include <dwarf-regs.h>
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci/*
1262306a36Sopenharmony_ci * Generic dwarf analysis helpers
1362306a36Sopenharmony_ci */
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci#define SH_MAX_REGS 18
1662306a36Sopenharmony_ciconst char *sh_regs_table[SH_MAX_REGS] = {
1762306a36Sopenharmony_ci	"r0",
1862306a36Sopenharmony_ci	"r1",
1962306a36Sopenharmony_ci	"r2",
2062306a36Sopenharmony_ci	"r3",
2162306a36Sopenharmony_ci	"r4",
2262306a36Sopenharmony_ci	"r5",
2362306a36Sopenharmony_ci	"r6",
2462306a36Sopenharmony_ci	"r7",
2562306a36Sopenharmony_ci	"r8",
2662306a36Sopenharmony_ci	"r9",
2762306a36Sopenharmony_ci	"r10",
2862306a36Sopenharmony_ci	"r11",
2962306a36Sopenharmony_ci	"r12",
3062306a36Sopenharmony_ci	"r13",
3162306a36Sopenharmony_ci	"r14",
3262306a36Sopenharmony_ci	"r15",
3362306a36Sopenharmony_ci	"pc",
3462306a36Sopenharmony_ci	"pr",
3562306a36Sopenharmony_ci};
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci/* Return architecture dependent register string (for kprobe-tracer) */
3862306a36Sopenharmony_ciconst char *get_arch_regstr(unsigned int n)
3962306a36Sopenharmony_ci{
4062306a36Sopenharmony_ci	return (n < SH_MAX_REGS) ? sh_regs_table[n] : NULL;
4162306a36Sopenharmony_ci}
42