1 /* Definitions for option handling for Nios II.
2    Copyright (C) 2013-2016 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