111
|
1 /* Definitions for option handling for IA-32.
|
|
2 Copyright (C) 1988-2017 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 Under Section 7 of GPL version 3, you are granted additional
|
|
17 permissions described in the GCC Runtime Library Exception, version
|
|
18 3.1, as published by the Free Software Foundation.
|
|
19
|
|
20 You should have received a copy of the GNU General Public License and
|
|
21 a copy of the GCC Runtime Library Exception along with this program;
|
|
22 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
|
23 <http://www.gnu.org/licenses/>. */
|
|
24
|
|
25 #ifndef I386_OPTS_H
|
|
26 #define I386_OPTS_H
|
|
27
|
|
28 /* Algorithm to expand string function with. */
|
|
29 enum stringop_alg
|
|
30 {
|
|
31 #undef DEF_ENUM
|
|
32 #define DEF_ENUM
|
|
33
|
|
34 #undef DEF_ALG
|
|
35 #define DEF_ALG(alg, name) alg,
|
|
36
|
|
37 #include "stringop.def"
|
|
38 last_alg
|
|
39
|
|
40 #undef DEF_ENUM
|
|
41 #undef DEF_ALG
|
|
42 };
|
|
43
|
|
44 /* Available call abi. */
|
|
45 enum calling_abi
|
|
46 {
|
|
47 SYSV_ABI = 0,
|
|
48 MS_ABI = 1
|
|
49 };
|
|
50
|
|
51 enum fpmath_unit
|
|
52 {
|
|
53 FPMATH_387 = 1,
|
|
54 FPMATH_SSE = 2
|
|
55 };
|
|
56
|
|
57 enum tls_dialect
|
|
58 {
|
|
59 TLS_DIALECT_GNU,
|
|
60 TLS_DIALECT_GNU2,
|
|
61 TLS_DIALECT_SUN
|
|
62 };
|
|
63
|
|
64 enum cmodel {
|
|
65 CM_32, /* The traditional 32-bit ABI. */
|
|
66 CM_SMALL, /* Assumes all code and data fits in the low 31 bits. */
|
|
67 CM_KERNEL, /* Assumes all code and data fits in the high 31 bits. */
|
|
68 CM_MEDIUM, /* Assumes code fits in the low 31 bits; data unlimited. */
|
|
69 CM_LARGE, /* No assumptions. */
|
|
70 CM_SMALL_PIC, /* Assumes code+data+got/plt fits in a 31 bit region. */
|
|
71 CM_MEDIUM_PIC,/* Assumes code+got/plt fits in a 31 bit region. */
|
|
72 CM_LARGE_PIC /* No assumptions. */
|
|
73 };
|
|
74
|
|
75 enum pmode {
|
|
76 PMODE_SI, /* Pmode == SImode. */
|
|
77 PMODE_DI /* Pmode == DImode. */
|
|
78 };
|
|
79
|
|
80 enum ix86_align_data {
|
|
81 ix86_align_data_type_compat,
|
|
82 ix86_align_data_type_abi,
|
|
83 ix86_align_data_type_cacheline
|
|
84 };
|
|
85
|
|
86 enum asm_dialect {
|
|
87 ASM_ATT,
|
|
88 ASM_INTEL
|
|
89 };
|
|
90
|
|
91 enum ix86_veclibabi {
|
|
92 ix86_veclibabi_type_none,
|
|
93 ix86_veclibabi_type_svml,
|
|
94 ix86_veclibabi_type_acml
|
|
95 };
|
|
96
|
|
97 enum stack_protector_guard {
|
|
98 SSP_TLS, /* per-thread canary in TLS block */
|
|
99 SSP_GLOBAL /* global canary */
|
|
100 };
|
|
101
|
|
102 #endif
|