1 /* Definitions for option handling for Nios II. 2 Copyright (C) 2013-2021 Free Software Foundation, Inc. 3 4 This file is part of GCC. 5 6 GCC 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 GCC is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU General Public License for more details. 15 16 You should have received a copy of the GNU General Public License 17 along with GCC; see the file COPYING3. If not see 18 <http://www.gnu.org/licenses/>. */ 19 20 #ifndef NIOS2_OPTS_H 21 #define NIOS2_OPTS_H 22 23 /* Enumerate the possible -mgpopt choices. */ 24 enum nios2_gpopt_type 25 { 26 gpopt_unspecified = -1, 27 gpopt_none, 28 gpopt_local, 29 gpopt_global, 30 gpopt_data, 31 gpopt_all 32 }; 33 34 35 /* Enumeration of all FPU insn codes. */ 36 #define N2FPU_ALL_CODES \ 37 N2FPU_CODE(fadds) N2FPU_CODE(fsubs) N2FPU_CODE(fmuls) N2FPU_CODE(fdivs) \ 38 N2FPU_CODE(fmins) N2FPU_CODE(fmaxs) \ 39 N2FPU_CODE(fnegs) N2FPU_CODE(fabss) N2FPU_CODE(fsqrts) \ 40 N2FPU_CODE(fsins) N2FPU_CODE(fcoss) N2FPU_CODE(ftans) N2FPU_CODE(fatans) \ 41 N2FPU_CODE(fexps) N2FPU_CODE(flogs) \ 42 N2FPU_CODE(fcmpeqs) N2FPU_CODE(fcmpnes) \ 43 N2FPU_CODE(fcmplts) N2FPU_CODE(fcmples) \ 44 N2FPU_CODE(fcmpgts) N2FPU_CODE(fcmpges) \ 45 \ 46 N2FPU_CODE(faddd) N2FPU_CODE(fsubd) N2FPU_CODE(fmuld) N2FPU_CODE(fdivd) \ 47 N2FPU_CODE(fmind) N2FPU_CODE(fmaxd) \ 48 N2FPU_CODE(fnegd) N2FPU_CODE(fabsd) N2FPU_CODE(fsqrtd) \ 49 N2FPU_CODE(fsind) N2FPU_CODE(fcosd) N2FPU_CODE(ftand) N2FPU_CODE(fatand) \ 50 N2FPU_CODE(fexpd) N2FPU_CODE(flogd) \ 51 N2FPU_CODE(fcmpeqd) N2FPU_CODE(fcmpned) \ 52 N2FPU_CODE(fcmpltd) N2FPU_CODE(fcmpled) \ 53 N2FPU_CODE(fcmpgtd) N2FPU_CODE(fcmpged) \ 54 \ 55 N2FPU_CODE(floatis) N2FPU_CODE(floatus) \ 56 N2FPU_CODE(floatid) N2FPU_CODE(floatud) \ 57 N2FPU_CODE(round) N2FPU_CODE(fixsi) N2FPU_CODE(fixsu) \ 58 N2FPU_CODE(fixdi) N2FPU_CODE(fixdu) \ 59 N2FPU_CODE(fextsd) N2FPU_CODE(ftruncds) \ 60 \ 61 N2FPU_CODE(fwrx) N2FPU_CODE(fwry) \ 62 N2FPU_CODE(frdxlo) N2FPU_CODE(frdxhi) N2FPU_CODE(frdy) 63 64 enum n2fpu_code { 65 #define N2FPU_CODE(name) n2fpu_ ## name, 66 N2FPU_ALL_CODES 67 #undef N2FPU_CODE 68 n2fpu_code_num 69 }; 70 71 /* An enumeration to indicate the custom code status; if values within 0--255 72 are registered to an FPU insn, or custom insn. */ 73 enum nios2_ccs_code 74 { 75 CCS_UNUSED, 76 CCS_FPU, 77 CCS_BUILTIN_CALL 78 }; 79 80 /* Supported Nios II Architectures. */ 81 enum nios2_arch_type 82 { 83 ARCH_R1=1, 84 ARCH_R2 85 }; 86 87 #endif 88 89