10dd9ac63SMatt Fleming /* 20dd9ac63SMatt Fleming * Mapping of DWARF debug register numbers into register names. 30dd9ac63SMatt Fleming * 40dd9ac63SMatt Fleming * Copyright (C) 2010 Matt Fleming <matt@console-pimps.org> 50dd9ac63SMatt Fleming * 60dd9ac63SMatt Fleming * This program is free software; you can redistribute it and/or modify 70dd9ac63SMatt Fleming * it under the terms of the GNU General Public License as published by 80dd9ac63SMatt Fleming * the Free Software Foundation; either version 2 of the License, or 90dd9ac63SMatt Fleming * (at your option) any later version. 100dd9ac63SMatt Fleming * 110dd9ac63SMatt Fleming * This program is distributed in the hope that it will be useful, 120dd9ac63SMatt Fleming * but WITHOUT ANY WARRANTY; without even the implied warranty of 130dd9ac63SMatt Fleming * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 140dd9ac63SMatt Fleming * GNU General Public License for more details. 150dd9ac63SMatt Fleming * 160dd9ac63SMatt Fleming * You should have received a copy of the GNU General Public License 170dd9ac63SMatt Fleming * along with this program; if not, write to the Free Software 180dd9ac63SMatt Fleming * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 190dd9ac63SMatt Fleming * 200dd9ac63SMatt Fleming */ 210dd9ac63SMatt Fleming 22*861e10beSCody P Schafer #include <stddef.h> 230dd9ac63SMatt Fleming #include <dwarf-regs.h> 240dd9ac63SMatt Fleming 250dd9ac63SMatt Fleming /* 260dd9ac63SMatt Fleming * Generic dwarf analysis helpers 270dd9ac63SMatt Fleming */ 280dd9ac63SMatt Fleming 290dd9ac63SMatt Fleming #define SH_MAX_REGS 18 300dd9ac63SMatt Fleming const char *sh_regs_table[SH_MAX_REGS] = { 310dd9ac63SMatt Fleming "r0", 320dd9ac63SMatt Fleming "r1", 330dd9ac63SMatt Fleming "r2", 340dd9ac63SMatt Fleming "r3", 350dd9ac63SMatt Fleming "r4", 360dd9ac63SMatt Fleming "r5", 370dd9ac63SMatt Fleming "r6", 380dd9ac63SMatt Fleming "r7", 390dd9ac63SMatt Fleming "r8", 400dd9ac63SMatt Fleming "r9", 410dd9ac63SMatt Fleming "r10", 420dd9ac63SMatt Fleming "r11", 430dd9ac63SMatt Fleming "r12", 440dd9ac63SMatt Fleming "r13", 450dd9ac63SMatt Fleming "r14", 460dd9ac63SMatt Fleming "r15", 470dd9ac63SMatt Fleming "pc", 480dd9ac63SMatt Fleming "pr", 490dd9ac63SMatt Fleming }; 500dd9ac63SMatt Fleming 510dd9ac63SMatt Fleming /* Return architecture dependent register string (for kprobe-tracer) */ 520dd9ac63SMatt Fleming const char *get_arch_regstr(unsigned int n) 530dd9ac63SMatt Fleming { 540dd9ac63SMatt Fleming return (n <= SH_MAX_REGS) ? sh_regs_table[n] : NULL; 550dd9ac63SMatt Fleming } 56