185815Sobrien/* ARC target-dependent stuff. Extension data structures. 2218822Sdim Copyright 1995, 1997, 2000, 2001, 2005 Free Software Foundation, Inc. 385815Sobrien 485815SobrienThis file is part of GDB. 585815Sobrien 685815SobrienThis program is free software; you can redistribute it and/or modify 785815Sobrienit under the terms of the GNU General Public License as published by 885815Sobrienthe Free Software Foundation; either version 2 of the License, or 985815Sobrien(at your option) any later version. 1085815Sobrien 1185815SobrienThis program is distributed in the hope that it will be useful, 1285815Sobrienbut WITHOUT ANY WARRANTY; without even the implied warranty of 1385815SobrienMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1485815SobrienGNU General Public License for more details. 1585815Sobrien 1685815SobrienYou should have received a copy of the GNU General Public License 1785815Sobrienalong with this program; if not, write to the Free Software 18218822SdimFoundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ 1985815Sobrien 2085815Sobrien#ifndef ARCEXT_H 2185815Sobrien#define ARCEXT_H 2285815Sobrien 23218822Sdimenum {EXT_INSTRUCTION = 0, 24218822Sdim EXT_CORE_REGISTER = 1, 25218822Sdim EXT_AUX_REGISTER = 2, 26218822Sdim EXT_COND_CODE = 3}; 2785815Sobrien 2885815Sobrienenum {NUM_EXT_INST = (0x1f-0x10+1) + (0x3f-0x09+1)}; 2985815Sobrienenum {NUM_EXT_CORE = 59-32+1}; 3085815Sobrienenum {NUM_EXT_COND = 0x1f-0x10+1}; 3185815Sobrien 3285815Sobrienstruct ExtInstruction 3385815Sobrien{ 3485815Sobrien char flags; 3585815Sobrien char *name; 3685815Sobrien}; 3785815Sobrien 3885815Sobrienstruct ExtAuxRegister 3985815Sobrien{ 4085815Sobrien long address; 4185815Sobrien char *name; 4285815Sobrien struct ExtAuxRegister *next; 4385815Sobrien}; 4485815Sobrien 4585815Sobrienstruct arcExtMap 4685815Sobrien{ 4785815Sobrien struct ExtAuxRegister *auxRegisters; 4885815Sobrien struct ExtInstruction *instructions[NUM_EXT_INST]; 49218822Sdim char *coreRegisters[NUM_EXT_CORE]; 50218822Sdim char *condCodes[NUM_EXT_COND]; 5185815Sobrien}; 5285815Sobrien 5385815Sobrienextern int arcExtMap_add(void*, unsigned long); 5485815Sobrienextern const char *arcExtMap_coreRegName(int); 5585815Sobrienextern const char *arcExtMap_auxRegName(long); 5685815Sobrienextern const char *arcExtMap_condCodeName(int); 5785815Sobrienextern const char *arcExtMap_instName(int, int, int*); 5885815Sobrienextern void build_ARC_extmap(bfd *); 5985815Sobrien 6085815Sobrien#define IGNORE_FIRST_OPD 1 6185815Sobrien 6285815Sobrien#endif 63