18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Mapping of DWARF debug register numbers into register names. 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright (C) 2010 Matt Fleming <matt@console-pimps.org> 68c2ecf20Sopenharmony_ci */ 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci#include <stddef.h> 98c2ecf20Sopenharmony_ci#include <dwarf-regs.h> 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ci/* 128c2ecf20Sopenharmony_ci * Generic dwarf analysis helpers 138c2ecf20Sopenharmony_ci */ 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ci#define SH_MAX_REGS 18 168c2ecf20Sopenharmony_ciconst char *sh_regs_table[SH_MAX_REGS] = { 178c2ecf20Sopenharmony_ci "r0", 188c2ecf20Sopenharmony_ci "r1", 198c2ecf20Sopenharmony_ci "r2", 208c2ecf20Sopenharmony_ci "r3", 218c2ecf20Sopenharmony_ci "r4", 228c2ecf20Sopenharmony_ci "r5", 238c2ecf20Sopenharmony_ci "r6", 248c2ecf20Sopenharmony_ci "r7", 258c2ecf20Sopenharmony_ci "r8", 268c2ecf20Sopenharmony_ci "r9", 278c2ecf20Sopenharmony_ci "r10", 288c2ecf20Sopenharmony_ci "r11", 298c2ecf20Sopenharmony_ci "r12", 308c2ecf20Sopenharmony_ci "r13", 318c2ecf20Sopenharmony_ci "r14", 328c2ecf20Sopenharmony_ci "r15", 338c2ecf20Sopenharmony_ci "pc", 348c2ecf20Sopenharmony_ci "pr", 358c2ecf20Sopenharmony_ci}; 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ci/* Return architecture dependent register string (for kprobe-tracer) */ 388c2ecf20Sopenharmony_ciconst char *get_arch_regstr(unsigned int n) 398c2ecf20Sopenharmony_ci{ 408c2ecf20Sopenharmony_ci return (n < SH_MAX_REGS) ? sh_regs_table[n] : NULL; 418c2ecf20Sopenharmony_ci} 42