xref: /netbsd-src/external/gpl3/gdb.old/dist/include/opcode/arc-attrs.h (revision 6881a4007f077b54e5f51159c52b9b25f57deb0d)
1*6881a400Schristos /* Copyright (C) 1994-2022 Free Software Foundation, Inc.
27f2ac410Schristos 
37f2ac410Schristos    Contributed by Claudiu Zissulescu (claziss@synopsys.com)
47f2ac410Schristos 
57f2ac410Schristos    This file is part of GAS, the GNU Assembler, GDB, the GNU debugger, and
67f2ac410Schristos    the GNU Binutils.
77f2ac410Schristos 
87f2ac410Schristos    GAS/GDB is free software; you can redistribute it and/or modify
97f2ac410Schristos    it under the terms of the GNU General Public License as published by
107f2ac410Schristos    the Free Software Foundation; either version 3, or (at your option)
117f2ac410Schristos    any later version.
127f2ac410Schristos 
137f2ac410Schristos    GAS/GDB is distributed in the hope that it will be useful,
147f2ac410Schristos    but WITHOUT ANY WARRANTY; without even the implied warranty of
157f2ac410Schristos    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
167f2ac410Schristos    GNU General Public License for more details.
177f2ac410Schristos 
187f2ac410Schristos    You should have received a copy of the GNU General Public License
197f2ac410Schristos    along with GAS or GDB; see the file COPYING3.  If not, write to
207f2ac410Schristos    the Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
217f2ac410Schristos    MA 02110-1301, USA.  */
227f2ac410Schristos 
237f2ac410Schristos #ifndef ATTRS_ARC_H
247f2ac410Schristos #define ATTRS_ARC_H
257f2ac410Schristos 
267f2ac410Schristos #ifndef FEATURE_LIST_NAME
277f2ac410Schristos #define FEATURE_LIST_NAME feature_list
287f2ac410Schristos #endif
297f2ac410Schristos 
307f2ac410Schristos /* A table with cpu features.  */
317f2ac410Schristos const struct feature_type
327f2ac410Schristos {
337f2ac410Schristos   unsigned feature;
347f2ac410Schristos   unsigned cpus;
357f2ac410Schristos   const char *attr;
367f2ac410Schristos   const char *name;
377f2ac410Schristos }  FEATURE_LIST_NAME [] =
387f2ac410Schristos   {
397f2ac410Schristos     { BTSCN,    ARC_OPCODE_ARCALL,   "BITSCAN",  "bit-scan" },
407f2ac410Schristos     { CD,       ARC_OPCODE_ARCV2,    "CD",       "code-density" },
417f2ac410Schristos     { DIV,      ARC_OPCODE_ARCV2,    "DIV_REM",  "div/rem" },
427f2ac410Schristos     { DP,       ARC_OPCODE_ARCv2HS,  "FPUD",     "double-precision FPU" },
437f2ac410Schristos     { DPA,      ARC_OPCODE_ARCv2EM,  "FPUDA",    "double assist FP" },
447f2ac410Schristos     { DPX,      ARC_OPCODE_ARCFPX,   "DPFP",     "double-precision FPX" },
457f2ac410Schristos     { LL64,     ARC_OPCODE_ARCv2HS,  "LL64",     "double load/store" },
467f2ac410Schristos     { NPS400,   ARC_OPCODE_ARC700,   "NPS400",   "nps400" },
477f2ac410Schristos     { QUARKSE1, ARC_OPCODE_ARCv2EM,  "QUARKSE1", "QuarkSE-EM" },
487f2ac410Schristos     { QUARKSE2, ARC_OPCODE_ARCv2EM,  "QUARKSE2", "QuarkSE-EM" },
497f2ac410Schristos     { SHFT1,    ARC_OPCODE_ARCALL,   "SA",       "shift assist" },
507f2ac410Schristos     { SHFT2,    ARC_OPCODE_ARCALL,   "BS",       "barrel-shifter" },
517f2ac410Schristos     { SWAP,     ARC_OPCODE_ARCALL,   "SWAP",     "swap" },
527f2ac410Schristos     { SP,       ARC_OPCODE_ARCV2,    "FPUS",     "single-precision FPU" },
537f2ac410Schristos     { SPX,      ARC_OPCODE_ARCFPX,   "SPFP",     "single-precision FPX" }
547f2ac410Schristos   };
557f2ac410Schristos 
567f2ac410Schristos #ifndef CONFLICT_LIST
577f2ac410Schristos #define CONFLICT_LIST conflict_list
587f2ac410Schristos #endif
597f2ac410Schristos 
607f2ac410Schristos /* A table with conflicting features.  */
61*6881a400Schristos const unsigned CONFLICT_LIST [] = {
627f2ac410Schristos   NPS400 | SPX,
637f2ac410Schristos   NPS400 | DPX,
647f2ac410Schristos   DPX | DPA,
657f2ac410Schristos   SP | DPX,
667f2ac410Schristos   SP | SPX,
677f2ac410Schristos   DP | DPX,
687f2ac410Schristos   DP | SPX,
697f2ac410Schristos   QUARKSE1 | DP,
707f2ac410Schristos   QUARKSE1 | SP
717f2ac410Schristos };
727f2ac410Schristos #endif
73