Home | History | Annotate | Line # | Download | only in opcode
      1 /* Copyright (C) 1994-2026 Free Software Foundation, Inc.
      2 
      3    Contributed by Claudiu Zissulescu (claziss (at) synopsys.com)
      4 
      5    This file is part of GAS, the GNU Assembler, GDB, the GNU debugger, and
      6    the GNU Binutils.
      7 
      8    GAS/GDB is free software; you can redistribute it and/or modify
      9    it under the terms of the GNU General Public License as published by
     10    the Free Software Foundation; either version 3, or (at your option)
     11    any later version.
     12 
     13    GAS/GDB is distributed in the hope that it will be useful,
     14    but WITHOUT ANY WARRANTY; without even the implied warranty of
     15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
     16    GNU General Public License for more details.
     17 
     18    You should have received a copy of the GNU General Public License
     19    along with GAS or GDB; see the file COPYING3.  If not, write to
     20    the Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
     21    MA 02110-1301, USA.  */
     22 
     23 #ifndef ATTRS_ARC_H
     24 #define ATTRS_ARC_H
     25 
     26 #ifndef FEATURE_LIST_NAME
     27 #define FEATURE_LIST_NAME feature_list
     28 #endif
     29 
     30 /* A table with cpu features.  */
     31 const struct feature_type
     32 {
     33   unsigned feature;
     34   unsigned cpus;
     35   const char *attr;
     36   const char *name;
     37 }  FEATURE_LIST_NAME [] =
     38   {
     39     { BTSCN,    ARC_OPCODE_ARCALL,   "BITSCAN",  "bit-scan" },
     40     { CD,       ARC_OPCODE_ARCV2,    "CD",       "code-density" },
     41     { DIV,      ARC_OPCODE_ARCV2,    "DIV_REM",  "div/rem" },
     42     { DP,       ARC_OPCODE_ARCv2HS,  "FPUD",     "double-precision FPU" },
     43     { DPA,      ARC_OPCODE_ARCv2EM,  "FPUDA",    "double assist FP" },
     44     { DPX,      ARC_OPCODE_ARCFPX,   "DPFP",     "double-precision FPX" },
     45     { LL64,     ARC_OPCODE_ARCv2HS,  "LL64",     "double load/store" },
     46     { NPS400,   ARC_OPCODE_ARC700,   "NPS400",   "nps400" },
     47     { QUARKSE1, ARC_OPCODE_ARCv2EM,  "QUARKSE1", "QuarkSE-EM" },
     48     { QUARKSE2, ARC_OPCODE_ARCv2EM,  "QUARKSE2", "QuarkSE-EM" },
     49     { SHFT1,    ARC_OPCODE_ARCALL,   "SA",       "shift assist" },
     50     { SHFT2,    ARC_OPCODE_ARCALL,   "BS",       "barrel-shifter" },
     51     { SWAP,     ARC_OPCODE_ARCALL,   "SWAP",     "swap" },
     52     { SP,       ARC_OPCODE_ARCV2,    "FPUS",     "single-precision FPU" },
     53     { SPX,      ARC_OPCODE_ARCFPX,   "SPFP",     "single-precision FPX" }
     54   };
     55 
     56 #ifndef CONFLICT_LIST
     57 #define CONFLICT_LIST conflict_list
     58 #endif
     59 
     60 /* A table with conflicting features.  */
     61 const unsigned CONFLICT_LIST [] = {
     62   NPS400 | SPX,
     63   NPS400 | DPX,
     64   DPX | DPA,
     65   SP | DPX,
     66   SP | SPX,
     67   DP | DPX,
     68   DP | SPX,
     69   QUARKSE1 | DP,
     70   QUARKSE1 | SP
     71 };
     72 #endif
     73