arc-attrs.h revision 1.1.1.3
1/* Copyright (C) 1994-2022 Free Software Foundation, Inc.
2
3   Contributed by Claudiu Zissulescu (claziss@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.  */
31const 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.  */
61const 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