Back to index

cell-binutils  2.17cvs20070401
arc-ext.h
Go to the documentation of this file.
00001 /* ARC target-dependent stuff. Extension data structures.
00002    Copyright 1995, 1997, 2000, 2001, 2005 Free Software Foundation, Inc.
00003 
00004 This file is part of GDB.
00005 
00006 This program is free software; you can redistribute it and/or modify
00007 it under the terms of the GNU General Public License as published by
00008 the Free Software Foundation; either version 2 of the License, or
00009 (at your option) any later version.
00010 
00011 This program is distributed in the hope that it will be useful,
00012 but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014 GNU General Public License for more details.
00015 
00016 You should have received a copy of the GNU General Public License
00017 along with this program; if not, write to the Free Software
00018 Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
00019 
00020 #ifndef ARCEXT_H
00021 #define ARCEXT_H
00022 
00023 enum {EXT_INSTRUCTION   = 0,
00024       EXT_CORE_REGISTER = 1,
00025       EXT_AUX_REGISTER  = 2,
00026       EXT_COND_CODE     = 3};
00027 
00028 enum {NUM_EXT_INST = (0x1f-0x10+1) + (0x3f-0x09+1)};
00029 enum {NUM_EXT_CORE = 59-32+1};
00030 enum {NUM_EXT_COND = 0x1f-0x10+1};
00031 
00032 struct ExtInstruction 
00033 {
00034   char flags;
00035   char *name;
00036 }; 
00037 
00038 struct ExtAuxRegister 
00039 {
00040   long address;
00041   char *name;
00042   struct ExtAuxRegister *next; 
00043 };
00044 
00045 struct arcExtMap 
00046 {
00047   struct ExtAuxRegister *auxRegisters;
00048   struct ExtInstruction *instructions[NUM_EXT_INST];
00049   char *coreRegisters[NUM_EXT_CORE];
00050   char *condCodes[NUM_EXT_COND];
00051 };
00052 
00053 extern int arcExtMap_add(void*, unsigned long);
00054 extern const char *arcExtMap_coreRegName(int);
00055 extern const char *arcExtMap_auxRegName(long);
00056 extern const char *arcExtMap_condCodeName(int);
00057 extern const char *arcExtMap_instName(int, int, int*);
00058 extern void build_ARC_extmap(bfd *);
00059 
00060 #define IGNORE_FIRST_OPD 1
00061 
00062 #endif