1*02f41505Schristos /* Copyright (C) 1994-2024 Free Software Foundation, Inc. 24559860eSchristos 34559860eSchristos Contributed by Claudiu Zissulescu (claziss@synopsys.com) 44559860eSchristos 54559860eSchristos This file is part of GAS, the GNU Assembler, GDB, the GNU debugger, and 64559860eSchristos the GNU Binutils. 74559860eSchristos 84559860eSchristos GAS/GDB is free software; you can redistribute it and/or modify 94559860eSchristos it under the terms of the GNU General Public License as published by 104559860eSchristos the Free Software Foundation; either version 3, or (at your option) 114559860eSchristos any later version. 124559860eSchristos 134559860eSchristos GAS/GDB is distributed in the hope that it will be useful, 144559860eSchristos but WITHOUT ANY WARRANTY; without even the implied warranty of 154559860eSchristos MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 164559860eSchristos GNU General Public License for more details. 174559860eSchristos 184559860eSchristos You should have received a copy of the GNU General Public License 194559860eSchristos along with GAS or GDB; see the file COPYING3. If not, write to 204559860eSchristos the Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, 214559860eSchristos MA 02110-1301, USA. */ 224559860eSchristos 234559860eSchristos #ifndef ATTRS_ARC_H 244559860eSchristos #define ATTRS_ARC_H 254559860eSchristos 264559860eSchristos #ifndef FEATURE_LIST_NAME 274559860eSchristos #define FEATURE_LIST_NAME feature_list 284559860eSchristos #endif 294559860eSchristos 304559860eSchristos /* A table with cpu features. */ 314559860eSchristos const struct feature_type 324559860eSchristos { 334559860eSchristos unsigned feature; 344559860eSchristos unsigned cpus; 354559860eSchristos const char *attr; 364559860eSchristos const char *name; 374559860eSchristos } FEATURE_LIST_NAME [] = 384559860eSchristos { 394559860eSchristos { BTSCN, ARC_OPCODE_ARCALL, "BITSCAN", "bit-scan" }, 404559860eSchristos { CD, ARC_OPCODE_ARCV2, "CD", "code-density" }, 414559860eSchristos { DIV, ARC_OPCODE_ARCV2, "DIV_REM", "div/rem" }, 424559860eSchristos { DP, ARC_OPCODE_ARCv2HS, "FPUD", "double-precision FPU" }, 434559860eSchristos { DPA, ARC_OPCODE_ARCv2EM, "FPUDA", "double assist FP" }, 444559860eSchristos { DPX, ARC_OPCODE_ARCFPX, "DPFP", "double-precision FPX" }, 454559860eSchristos { LL64, ARC_OPCODE_ARCv2HS, "LL64", "double load/store" }, 464559860eSchristos { NPS400, ARC_OPCODE_ARC700, "NPS400", "nps400" }, 474559860eSchristos { QUARKSE1, ARC_OPCODE_ARCv2EM, "QUARKSE1", "QuarkSE-EM" }, 484559860eSchristos { QUARKSE2, ARC_OPCODE_ARCv2EM, "QUARKSE2", "QuarkSE-EM" }, 494559860eSchristos { SHFT1, ARC_OPCODE_ARCALL, "SA", "shift assist" }, 504559860eSchristos { SHFT2, ARC_OPCODE_ARCALL, "BS", "barrel-shifter" }, 514559860eSchristos { SWAP, ARC_OPCODE_ARCALL, "SWAP", "swap" }, 524559860eSchristos { SP, ARC_OPCODE_ARCV2, "FPUS", "single-precision FPU" }, 534559860eSchristos { SPX, ARC_OPCODE_ARCFPX, "SPFP", "single-precision FPX" } 544559860eSchristos }; 554559860eSchristos 564559860eSchristos #ifndef CONFLICT_LIST 574559860eSchristos #define CONFLICT_LIST conflict_list 584559860eSchristos #endif 594559860eSchristos 604559860eSchristos /* A table with conflicting features. */ 614b169a6bSchristos const unsigned CONFLICT_LIST [] = { 624559860eSchristos NPS400 | SPX, 634559860eSchristos NPS400 | DPX, 644559860eSchristos DPX | DPA, 654559860eSchristos SP | DPX, 664559860eSchristos SP | SPX, 674559860eSchristos DP | DPX, 684559860eSchristos DP | SPX, 694559860eSchristos QUARKSE1 | DP, 704559860eSchristos QUARKSE1 | SP 714559860eSchristos }; 724559860eSchristos #endif 73