xref: /dflybsd-src/contrib/gcc-4.7/gcc/config/i386/i386-opts.h (revision 04febcfb30580676d3e95f58a16c5137ee478b32)
1*e4b17023SJohn Marino /* Definitions for option handling for IA-32.
2*e4b17023SJohn Marino    Copyright (C) 1988, 1992, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
3*e4b17023SJohn Marino    2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
4*e4b17023SJohn Marino    Free Software Foundation, Inc.
5*e4b17023SJohn Marino 
6*e4b17023SJohn Marino This file is part of GCC.
7*e4b17023SJohn Marino 
8*e4b17023SJohn Marino GCC is free software; you can redistribute it and/or modify
9*e4b17023SJohn Marino it under the terms of the GNU General Public License as published by
10*e4b17023SJohn Marino the Free Software Foundation; either version 3, or (at your option)
11*e4b17023SJohn Marino any later version.
12*e4b17023SJohn Marino 
13*e4b17023SJohn Marino GCC is distributed in the hope that it will be useful,
14*e4b17023SJohn Marino but WITHOUT ANY WARRANTY; without even the implied warranty of
15*e4b17023SJohn Marino MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16*e4b17023SJohn Marino GNU General Public License for more details.
17*e4b17023SJohn Marino 
18*e4b17023SJohn Marino Under Section 7 of GPL version 3, you are granted additional
19*e4b17023SJohn Marino permissions described in the GCC Runtime Library Exception, version
20*e4b17023SJohn Marino 3.1, as published by the Free Software Foundation.
21*e4b17023SJohn Marino 
22*e4b17023SJohn Marino You should have received a copy of the GNU General Public License and
23*e4b17023SJohn Marino a copy of the GCC Runtime Library Exception along with this program;
24*e4b17023SJohn Marino see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
25*e4b17023SJohn Marino <http://www.gnu.org/licenses/>.  */
26*e4b17023SJohn Marino 
27*e4b17023SJohn Marino #ifndef I386_OPTS_H
28*e4b17023SJohn Marino #define I386_OPTS_H
29*e4b17023SJohn Marino 
30*e4b17023SJohn Marino /* Algorithm to expand string function with.  */
31*e4b17023SJohn Marino enum stringop_alg
32*e4b17023SJohn Marino {
33*e4b17023SJohn Marino    no_stringop,
34*e4b17023SJohn Marino    libcall,
35*e4b17023SJohn Marino    rep_prefix_1_byte,
36*e4b17023SJohn Marino    rep_prefix_4_byte,
37*e4b17023SJohn Marino    rep_prefix_8_byte,
38*e4b17023SJohn Marino    loop_1_byte,
39*e4b17023SJohn Marino    loop,
40*e4b17023SJohn Marino    unrolled_loop
41*e4b17023SJohn Marino };
42*e4b17023SJohn Marino 
43*e4b17023SJohn Marino /* Available call abi.  */
44*e4b17023SJohn Marino enum calling_abi
45*e4b17023SJohn Marino {
46*e4b17023SJohn Marino   SYSV_ABI = 0,
47*e4b17023SJohn Marino   MS_ABI = 1
48*e4b17023SJohn Marino };
49*e4b17023SJohn Marino 
50*e4b17023SJohn Marino enum fpmath_unit
51*e4b17023SJohn Marino {
52*e4b17023SJohn Marino   FPMATH_387 = 1,
53*e4b17023SJohn Marino   FPMATH_SSE = 2
54*e4b17023SJohn Marino };
55*e4b17023SJohn Marino 
56*e4b17023SJohn Marino enum tls_dialect
57*e4b17023SJohn Marino {
58*e4b17023SJohn Marino   TLS_DIALECT_GNU,
59*e4b17023SJohn Marino   TLS_DIALECT_GNU2,
60*e4b17023SJohn Marino   TLS_DIALECT_SUN
61*e4b17023SJohn Marino };
62*e4b17023SJohn Marino 
63*e4b17023SJohn Marino enum cmodel {
64*e4b17023SJohn Marino   CM_32,	/* The traditional 32-bit ABI.  */
65*e4b17023SJohn Marino   CM_SMALL,	/* Assumes all code and data fits in the low 31 bits.  */
66*e4b17023SJohn Marino   CM_KERNEL,	/* Assumes all code and data fits in the high 31 bits.  */
67*e4b17023SJohn Marino   CM_MEDIUM,	/* Assumes code fits in the low 31 bits; data unlimited.  */
68*e4b17023SJohn Marino   CM_LARGE,	/* No assumptions.  */
69*e4b17023SJohn Marino   CM_SMALL_PIC,	/* Assumes code+data+got/plt fits in a 31 bit region.  */
70*e4b17023SJohn Marino   CM_MEDIUM_PIC,/* Assumes code+got/plt fits in a 31 bit region.  */
71*e4b17023SJohn Marino   CM_LARGE_PIC	/* No assumptions.  */
72*e4b17023SJohn Marino };
73*e4b17023SJohn Marino 
74*e4b17023SJohn Marino enum asm_dialect {
75*e4b17023SJohn Marino   ASM_ATT,
76*e4b17023SJohn Marino   ASM_INTEL
77*e4b17023SJohn Marino };
78*e4b17023SJohn Marino 
79*e4b17023SJohn Marino enum ix86_veclibabi {
80*e4b17023SJohn Marino   ix86_veclibabi_type_none,
81*e4b17023SJohn Marino   ix86_veclibabi_type_svml,
82*e4b17023SJohn Marino   ix86_veclibabi_type_acml
83*e4b17023SJohn Marino };
84*e4b17023SJohn Marino 
85*e4b17023SJohn Marino #endif
86