1*0dd9ac63SMatt Fleming /* 2*0dd9ac63SMatt Fleming * Mapping of DWARF debug register numbers into register names. 3*0dd9ac63SMatt Fleming * 4*0dd9ac63SMatt Fleming * Copyright (C) 2010 Matt Fleming <matt@console-pimps.org> 5*0dd9ac63SMatt Fleming * 6*0dd9ac63SMatt Fleming * This program is free software; you can redistribute it and/or modify 7*0dd9ac63SMatt Fleming * it under the terms of the GNU General Public License as published by 8*0dd9ac63SMatt Fleming * the Free Software Foundation; either version 2 of the License, or 9*0dd9ac63SMatt Fleming * (at your option) any later version. 10*0dd9ac63SMatt Fleming * 11*0dd9ac63SMatt Fleming * This program is distributed in the hope that it will be useful, 12*0dd9ac63SMatt Fleming * but WITHOUT ANY WARRANTY; without even the implied warranty of 13*0dd9ac63SMatt Fleming * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14*0dd9ac63SMatt Fleming * GNU General Public License for more details. 15*0dd9ac63SMatt Fleming * 16*0dd9ac63SMatt Fleming * You should have received a copy of the GNU General Public License 17*0dd9ac63SMatt Fleming * along with this program; if not, write to the Free Software 18*0dd9ac63SMatt Fleming * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 19*0dd9ac63SMatt Fleming * 20*0dd9ac63SMatt Fleming */ 21*0dd9ac63SMatt Fleming 22*0dd9ac63SMatt Fleming #include <libio.h> 23*0dd9ac63SMatt Fleming #include <dwarf-regs.h> 24*0dd9ac63SMatt Fleming 25*0dd9ac63SMatt Fleming /* 26*0dd9ac63SMatt Fleming * Generic dwarf analysis helpers 27*0dd9ac63SMatt Fleming */ 28*0dd9ac63SMatt Fleming 29*0dd9ac63SMatt Fleming #define SH_MAX_REGS 18 30*0dd9ac63SMatt Fleming const char *sh_regs_table[SH_MAX_REGS] = { 31*0dd9ac63SMatt Fleming "r0", 32*0dd9ac63SMatt Fleming "r1", 33*0dd9ac63SMatt Fleming "r2", 34*0dd9ac63SMatt Fleming "r3", 35*0dd9ac63SMatt Fleming "r4", 36*0dd9ac63SMatt Fleming "r5", 37*0dd9ac63SMatt Fleming "r6", 38*0dd9ac63SMatt Fleming "r7", 39*0dd9ac63SMatt Fleming "r8", 40*0dd9ac63SMatt Fleming "r9", 41*0dd9ac63SMatt Fleming "r10", 42*0dd9ac63SMatt Fleming "r11", 43*0dd9ac63SMatt Fleming "r12", 44*0dd9ac63SMatt Fleming "r13", 45*0dd9ac63SMatt Fleming "r14", 46*0dd9ac63SMatt Fleming "r15", 47*0dd9ac63SMatt Fleming "pc", 48*0dd9ac63SMatt Fleming "pr", 49*0dd9ac63SMatt Fleming }; 50*0dd9ac63SMatt Fleming 51*0dd9ac63SMatt Fleming /* Return architecture dependent register string (for kprobe-tracer) */ 52*0dd9ac63SMatt Fleming const char *get_arch_regstr(unsigned int n) 53*0dd9ac63SMatt Fleming { 54*0dd9ac63SMatt Fleming return (n <= SH_MAX_REGS) ? sh_regs_table[n] : NULL; 55*0dd9ac63SMatt Fleming } 56