arc-ext.h revision 302408
1231200Smm/* ARC target-dependent stuff. Extension data structures.
2231200Smm   Copyright 1995, 1997, 2000, 2001, 2005 Free Software Foundation, Inc.
3231200Smm
4231200SmmThis file is part of GDB.
5231200Smm
6231200SmmThis program is free software; you can redistribute it and/or modify
7231200Smmit under the terms of the GNU General Public License as published by
8231200Smmthe Free Software Foundation; either version 2 of the License, or
9231200Smm(at your option) any later version.
10231200Smm
11231200SmmThis program is distributed in the hope that it will be useful,
12231200Smmbut WITHOUT ANY WARRANTY; without even the implied warranty of
13231200SmmMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14231200SmmGNU General Public License for more details.
15231200Smm
16231200SmmYou should have received a copy of the GNU General Public License
17231200Smmalong with this program; if not, write to the Free Software
18231200SmmFoundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
19231200Smm
20231200Smm#ifndef ARCEXT_H
21231200Smm#define ARCEXT_H
22231200Smm
23231200Smmenum {EXT_INSTRUCTION   = 0,
24231200Smm      EXT_CORE_REGISTER = 1,
25231200Smm      EXT_AUX_REGISTER  = 2,
26231200Smm      EXT_COND_CODE     = 3};
27231200Smm
28231200Smmenum {NUM_EXT_INST = (0x1f-0x10+1) + (0x3f-0x09+1)};
29231200Smmenum {NUM_EXT_CORE = 59-32+1};
30231200Smmenum {NUM_EXT_COND = 0x1f-0x10+1};
31231200Smm
32231200Smmstruct ExtInstruction
33231200Smm{
34231200Smm  char flags;
35231200Smm  char *name;
36231200Smm};
37231200Smm
38231200Smmstruct ExtAuxRegister
39231200Smm{
40231200Smm  long address;
41231200Smm  char *name;
42231200Smm  struct ExtAuxRegister *next;
43231200Smm};
44231200Smm
45231200Smmstruct arcExtMap
46231200Smm{
47231200Smm  struct ExtAuxRegister *auxRegisters;
48231200Smm  struct ExtInstruction *instructions[NUM_EXT_INST];
49231200Smm  char *coreRegisters[NUM_EXT_CORE];
50231200Smm  char *condCodes[NUM_EXT_COND];
51231200Smm};
52231200Smm
53231200Smmextern int arcExtMap_add(void*, unsigned long);
54231200Smmextern const char *arcExtMap_coreRegName(int);
55231200Smmextern const char *arcExtMap_auxRegName(long);
56231200Smmextern const char *arcExtMap_condCodeName(int);
57231200Smmextern const char *arcExtMap_instName(int, int, int*);
58231200Smmextern void build_ARC_extmap(bfd *);
59231200Smm
60231200Smm#define IGNORE_FIRST_OPD 1
61231200Smm
62231200Smm#endif
63231200Smm