annotate gcc/config/arc/arc-options.def @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children 84e7813d76e9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 /* ARC options.
kono
parents:
diff changeset
2 Copyright (C) 2016-2017 Free Software Foundation, Inc.
kono
parents:
diff changeset
3
kono
parents:
diff changeset
4 This file is part of GCC.
kono
parents:
diff changeset
5
kono
parents:
diff changeset
6 GCC is free software; you can redistribute it and/or modify it
kono
parents:
diff changeset
7 under the terms of the GNU General Public License as published
kono
parents:
diff changeset
8 by the Free Software Foundation; either version 3, or (at your
kono
parents:
diff changeset
9 option) any later version.
kono
parents:
diff changeset
10
kono
parents:
diff changeset
11 GCC is distributed in the hope that it will be useful, but WITHOUT
kono
parents:
diff changeset
12 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
kono
parents:
diff changeset
13 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
kono
parents:
diff changeset
14 License for more details.
kono
parents:
diff changeset
15
kono
parents:
diff changeset
16 You should have received a copy of the GNU General Public License
kono
parents:
diff changeset
17 along with GCC; see the file COPYING3. If not see
kono
parents:
diff changeset
18 <http://www.gnu.org/licenses/>. */
kono
parents:
diff changeset
19
kono
parents:
diff changeset
20 /* List of all known ARC hardware modifier options (i.e., compiler
kono
parents:
diff changeset
21 options that are selecting a hardware facility). There can be two
kono
parents:
diff changeset
22 types options: simple switches (e.g. code-density option can be
kono
parents:
diff changeset
23 on/off), or can accept multiple values (e.g., fpu options).
kono
parents:
diff changeset
24
kono
parents:
diff changeset
25 For any valid HW option, define a macro:
kono
parents:
diff changeset
26
kono
parents:
diff changeset
27 ARC_OPT (NAME, CODE, MASK, DOC)
kono
parents:
diff changeset
28
kono
parents:
diff changeset
29 where:
kono
parents:
diff changeset
30 NAME Name (identifier) of a particular hardware modifier option,
kono
parents:
diff changeset
31 as in enum cpu_flags.
kono
parents:
diff changeset
32
kono
parents:
diff changeset
33 CODE 64-bit mask used to encode NAME.
kono
parents:
diff changeset
34
kono
parents:
diff changeset
35 MASK Corresponding GCC's MASK_<option> macro.
kono
parents:
diff changeset
36
kono
parents:
diff changeset
37 DOC A string used when emitting compiler errors or warnings.
kono
parents:
diff changeset
38
kono
parents:
diff changeset
39 For a multi-value option, define a macro for a valid value:
kono
parents:
diff changeset
40
kono
parents:
diff changeset
41 ARC_OPTX (NAME, CODE, VAR, VAL, DOC)
kono
parents:
diff changeset
42
kono
parents:
diff changeset
43 where:
kono
parents:
diff changeset
44 NAME Name (identifier) of a particular hardware modifier
kono
parents:
diff changeset
45 configuration.
kono
parents:
diff changeset
46
kono
parents:
diff changeset
47 CODE 64-bit mask used to encode NAME. It will be encoded in the
kono
parents:
diff changeset
48 same variable like options given via ARC_OPT.
kono
parents:
diff changeset
49
kono
parents:
diff changeset
50 VAR Corresponding GCC's option variable.
kono
parents:
diff changeset
51
kono
parents:
diff changeset
52 VAL Value to be set in VAR.
kono
parents:
diff changeset
53
kono
parents:
diff changeset
54 DOC A string used when emitting compiler errors or warnings.
kono
parents:
diff changeset
55
kono
parents:
diff changeset
56 All multi-value options are defined using ARC_OPTX and ARC_OPT.
kono
parents:
diff changeset
57 ARC_OPT contains a mask with all valid values for the given
kono
parents:
diff changeset
58 option. */
kono
parents:
diff changeset
59
kono
parents:
diff changeset
60 ARC_OPT (FL_CD, (1ULL << 0), MASK_CODE_DENSITY, "code density")
kono
parents:
diff changeset
61 ARC_OPT (FL_DIVREM, (1ULL << 1), MASK_DIVREM, "div/rem")
kono
parents:
diff changeset
62 ARC_OPT (FL_NORM, (1ULL << 2), MASK_NORM_SET, "norm")
kono
parents:
diff changeset
63
kono
parents:
diff changeset
64 ARC_OPT (FL_ATOMIC, (1ULL << 4), MASK_ATOMIC, "atomic")
kono
parents:
diff changeset
65 ARC_OPT (FL_LL64, (1ULL << 5), MASK_LL64, "double load/store")
kono
parents:
diff changeset
66 ARC_OPT (FL_BS, (1ULL << 6), MASK_BARREL_SHIFTER, "barrel shifter")
kono
parents:
diff changeset
67 ARC_OPT (FL_SWAP, (1ULL << 7), MASK_SWAP_SET, "swap")
kono
parents:
diff changeset
68 ARC_OPT (FL_MUL64, (1ULL << 8), MASK_MUL64_SET, "mul64")
kono
parents:
diff changeset
69 ARC_OPT (FL_MUL32x16, (1ULL << 9), MASK_MULMAC_32BY16_SET, "mul32x16")
kono
parents:
diff changeset
70
kono
parents:
diff changeset
71 ARC_OPT (FL_EA, (1ULL << 11), MASK_EA_SET, "extended arithmetics")
kono
parents:
diff changeset
72 ARC_OPT (FL_SPFP, (1ULL << 12), MASK_SPFP_COMPACT_SET, "single precission FPX")
kono
parents:
diff changeset
73 ARC_OPT (FL_DPFP, (1ULL << 13), MASK_DPFP_COMPACT_SET, "double precission FPX")
kono
parents:
diff changeset
74 ARC_OPT (FL_ARGONAUT, (1ULL << 14), MASK_ARGONAUT_SET, "argonaut")
kono
parents:
diff changeset
75 ARC_OPT (FL_SIMD, (1ULL << 15), MASK_SIMD_SET, "simd")
kono
parents:
diff changeset
76
kono
parents:
diff changeset
77 ARC_OPTX (FL_MPYOPT_1, (1ULL << 17), arc_mpy_option, 1, "mpy option w")
kono
parents:
diff changeset
78 ARC_OPTX (FL_MPYOPT_2, (1ULL << 18), arc_mpy_option, 2, "mpy option wlh1")
kono
parents:
diff changeset
79 ARC_OPTX (FL_MPYOPT_3, (1ULL << 19), arc_mpy_option, 3, "mpy option wlh2")
kono
parents:
diff changeset
80 ARC_OPTX (FL_MPYOPT_4, (1ULL << 20), arc_mpy_option, 4, "mpy option wlh3")
kono
parents:
diff changeset
81 ARC_OPTX (FL_MPYOPT_5, (1ULL << 21), arc_mpy_option, 5, "mpy option wlh4")
kono
parents:
diff changeset
82 ARC_OPTX (FL_MPYOPT_6, (1ULL << 22), arc_mpy_option, 6, "mpy option wlh5")
kono
parents:
diff changeset
83 ARC_OPTX (FL_MPYOPT_7, (1ULL << 23), arc_mpy_option, 7, "mpy option plus_dmpy")
kono
parents:
diff changeset
84 ARC_OPTX (FL_MPYOPT_8, (1ULL << 24), arc_mpy_option, 8, "mpy option plus_macd")
kono
parents:
diff changeset
85 ARC_OPTX (FL_MPYOPT_9, (1ULL << 25), arc_mpy_option, 9, "mpy option plus_qmacw")
kono
parents:
diff changeset
86
kono
parents:
diff changeset
87 ARC_OPT (FL_MPYOPT_7_9, (0x01c2ULL << 17), 0, "mpy option")
kono
parents:
diff changeset
88 ARC_OPT (FL_MPYOPT_1_6, (0x003fULL << 17), 0, "mpy option")
kono
parents:
diff changeset
89
kono
parents:
diff changeset
90 ARC_OPTX (FL_FPU_FPUS, (1ULL << 26), arc_fpu_build, FPU_FPUS, "mfpu=fpus")
kono
parents:
diff changeset
91 ARC_OPTX (FL_FPU_FPUS_DIV, (1ULL << 27), arc_fpu_build, FPU_FPUS_DIV, "mfpu=fpus_div")
kono
parents:
diff changeset
92 ARC_OPTX (FL_FPU_FPUS_FMA, (1ULL << 28), arc_fpu_build, FPU_FPUS_FMA, "mfpu=fpus_fma")
kono
parents:
diff changeset
93 ARC_OPTX (FL_FPU_FPUS_ALL, (1ULL << 29), arc_fpu_build, FPU_FPUS_ALL, "mfpu=fpus_all")
kono
parents:
diff changeset
94 ARC_OPTX (FL_FPU_FPUDA, (1ULL << 30), arc_fpu_build, FPU_FPUDA, "mfpu=fpuda")
kono
parents:
diff changeset
95 ARC_OPTX (FL_FPU_FPUDA_DIV, (1ULL << 31), arc_fpu_build, FPU_FPUDA_DIV, "mfpu=fpuda_div")
kono
parents:
diff changeset
96 ARC_OPTX (FL_FPU_FPUDA_FMA, (1ULL << 32), arc_fpu_build, FPU_FPUDA_FMA, "mfpu=fpuda_fma")
kono
parents:
diff changeset
97 ARC_OPTX (FL_FPU_FPUDA_ALL, (1ULL << 33), arc_fpu_build, FPU_FPUDA_ALL, "mfpu=fpuda_all")
kono
parents:
diff changeset
98 ARC_OPTX (FL_FPU_FPUD, (1ULL << 34), arc_fpu_build, FPU_FPUD, "mfpu=fpud")
kono
parents:
diff changeset
99 ARC_OPTX (FL_FPU_FPUD_DIV, (1ULL << 35), arc_fpu_build, FPU_FPUD_DIV, "mfpu=fpud_div")
kono
parents:
diff changeset
100 ARC_OPTX (FL_FPU_FPUD_FMA, (1ULL << 36), arc_fpu_build, FPU_FPUD_FMA, "mfpu=fpud_fma")
kono
parents:
diff changeset
101 ARC_OPTX (FL_FPU_FPUD_ALL, (1ULL << 37), arc_fpu_build, FPU_FPUD_ALL, "mfpu=fpud_all")
kono
parents:
diff changeset
102 ARC_OPTX (FL_FPX_QUARK, (1ULL << 38), arc_fpu_build, FPX_QK, "quarkse fp")
kono
parents:
diff changeset
103
kono
parents:
diff changeset
104 ARC_OPT (FL_FPUS, (0xFULL << 26), 0, "single precission floating point")
kono
parents:
diff changeset
105 ARC_OPT (FL_FPUDA, (0xFFULL << 26), 0, "double precission fp assist")
kono
parents:
diff changeset
106 ARC_OPT (FL_FPUD, (0xF0FULL << 26), 0, "double precission floating point")
kono
parents:
diff changeset
107 ARC_OPT (FL_QUARK, (1ULL << 38), 0, "Quark SE fp extension")
kono
parents:
diff changeset
108
kono
parents:
diff changeset
109 /* Local Variables: */
kono
parents:
diff changeset
110 /* mode: c */
kono
parents:
diff changeset
111 /* End: */