91abdf6c7d951a913d4aaf6f94aa64aedcdb1a2c
[platform/upstream/gcc.git] / gcc / config / nios2 / nios2-opts.h
1 /* Definitions for option handling for Nios II.
2    Copyright (C) 2013-2015 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 #endif
81