1*3d8817e4Smiod /* ARC target-dependent stuff. Extension data structures. 2*3d8817e4Smiod Copyright 1995, 1997, 2000, 2001, 2005 Free Software Foundation, Inc. 3*3d8817e4Smiod 4*3d8817e4Smiod This file is part of GDB. 5*3d8817e4Smiod 6*3d8817e4Smiod This program is free software; you can redistribute it and/or modify 7*3d8817e4Smiod it under the terms of the GNU General Public License as published by 8*3d8817e4Smiod the Free Software Foundation; either version 2 of the License, or 9*3d8817e4Smiod (at your option) any later version. 10*3d8817e4Smiod 11*3d8817e4Smiod This program is distributed in the hope that it will be useful, 12*3d8817e4Smiod but WITHOUT ANY WARRANTY; without even the implied warranty of 13*3d8817e4Smiod MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14*3d8817e4Smiod GNU General Public License for more details. 15*3d8817e4Smiod 16*3d8817e4Smiod You should have received a copy of the GNU General Public License 17*3d8817e4Smiod along with this program; if not, write to the Free Software 18*3d8817e4Smiod Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ 19*3d8817e4Smiod 20*3d8817e4Smiod #ifndef ARCEXT_H 21*3d8817e4Smiod #define ARCEXT_H 22*3d8817e4Smiod 23*3d8817e4Smiod enum {EXT_INSTRUCTION = 0, 24*3d8817e4Smiod EXT_CORE_REGISTER = 1, 25*3d8817e4Smiod EXT_AUX_REGISTER = 2, 26*3d8817e4Smiod EXT_COND_CODE = 3}; 27*3d8817e4Smiod 28*3d8817e4Smiod enum {NUM_EXT_INST = (0x1f-0x10+1) + (0x3f-0x09+1)}; 29*3d8817e4Smiod enum {NUM_EXT_CORE = 59-32+1}; 30*3d8817e4Smiod enum {NUM_EXT_COND = 0x1f-0x10+1}; 31*3d8817e4Smiod 32*3d8817e4Smiod struct ExtInstruction 33*3d8817e4Smiod { 34*3d8817e4Smiod char flags; 35*3d8817e4Smiod char *name; 36*3d8817e4Smiod }; 37*3d8817e4Smiod 38*3d8817e4Smiod struct ExtAuxRegister 39*3d8817e4Smiod { 40*3d8817e4Smiod long address; 41*3d8817e4Smiod char *name; 42*3d8817e4Smiod struct ExtAuxRegister *next; 43*3d8817e4Smiod }; 44*3d8817e4Smiod 45*3d8817e4Smiod struct arcExtMap 46*3d8817e4Smiod { 47*3d8817e4Smiod struct ExtAuxRegister *auxRegisters; 48*3d8817e4Smiod struct ExtInstruction *instructions[NUM_EXT_INST]; 49*3d8817e4Smiod char *coreRegisters[NUM_EXT_CORE]; 50*3d8817e4Smiod char *condCodes[NUM_EXT_COND]; 51*3d8817e4Smiod }; 52*3d8817e4Smiod 53*3d8817e4Smiod extern int arcExtMap_add(void*, unsigned long); 54*3d8817e4Smiod extern const char *arcExtMap_coreRegName(int); 55*3d8817e4Smiod extern const char *arcExtMap_auxRegName(long); 56*3d8817e4Smiod extern const char *arcExtMap_condCodeName(int); 57*3d8817e4Smiod extern const char *arcExtMap_instName(int, int, int*); 58*3d8817e4Smiod extern void build_ARC_extmap(bfd *); 59*3d8817e4Smiod 60*3d8817e4Smiod #define IGNORE_FIRST_OPD 1 61*3d8817e4Smiod 62*3d8817e4Smiod #endif 63