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