summaryrefslogtreecommitdiff
path: root/gcc/config/i386/i386-opts.h
diff options
context:
space:
mode:
authorjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>2011-05-13 09:59:13 +0000
committerjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>2011-05-13 09:59:13 +0000
commitc16ca027b2a316cb8b827059d220b30f8fe4904c (patch)
treea381603c36392d88ee09ae2611483f2bda2cdd89 /gcc/config/i386/i386-opts.h
parent710e2b30c727c12852a32f47c8fe8bd4814e67b4 (diff)
downloadgcc-c16ca027b2a316cb8b827059d220b30f8fe4904c.tar.gz
* config/i386/i386-opts.h: New.
* gcc/config/i386/i386.c (stringop_alg, ix86_cmodel, ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost, ix86_section_threshold): Remove. (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and OPT_mbranch_cost_. (ix86_option_override_internal): Don't decode strings for options other than -march=, -mtune= and -mfpmath=. Don't allow for __attribute__ uses in remaining diagnostics for options with string arguments. Don't check for integer arguments being negative. * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi, enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h. (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect, ix86_branch_cost, ix86_section_threshold): Remove. * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New HeaderInclude. (malign-functions=, malign-jumps=, malign-loops=): Use UInteger but not Var. (masm=): Use Enum and Init. (asm_dialect): New Enum and EnumValue entries. (mbranch-cost=): Use UInteger. (mlarge-data-threshold=): Use UInteger and Init. (mcmodel=): Use Enum and Init. (cmodel): New Enum and EnumValue entries. (mpc): Replace with separate mpc32, mpc64 and mpc80 entries. (mpreferred-stack-boundary=, mincoming-stack-boundary=, mregparm=): Use UInteger. (mstringop-strategy=): Use Enum and Init. (stringop_alg): New Enum and EnumValue entries. (mtls-dialect=): Use Enum and Init. (tls_dialect): New Enum and EnumValue entries. (mabi=): Use Enum and Init. (calling_abi): New Enum and EnumValue entries. (mveclibabi=): Use Enum and Init. (ix86_veclibabi): New Enum and EnumValue entries. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@173728 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/i386/i386-opts.h')
-rw-r--r--gcc/config/i386/i386-opts.h79
1 files changed, 79 insertions, 0 deletions
diff --git a/gcc/config/i386/i386-opts.h b/gcc/config/i386/i386-opts.h
new file mode 100644
index 00000000000..791304d931a
--- /dev/null
+++ b/gcc/config/i386/i386-opts.h
@@ -0,0 +1,79 @@
+/* Definitions for option handling for IA-32.
+ Copyright (C) 1988, 1992, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+ 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
+ Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+<http://www.gnu.org/licenses/>. */
+
+#ifndef I386_OPTS_H
+#define I386_OPTS_H
+
+/* Algorithm to expand string function with. */
+enum stringop_alg
+{
+ no_stringop,
+ libcall,
+ rep_prefix_1_byte,
+ rep_prefix_4_byte,
+ rep_prefix_8_byte,
+ loop_1_byte,
+ loop,
+ unrolled_loop
+};
+
+/* Available call abi. */
+enum calling_abi
+{
+ SYSV_ABI = 0,
+ MS_ABI = 1
+};
+
+enum tls_dialect
+{
+ TLS_DIALECT_GNU,
+ TLS_DIALECT_GNU2,
+ TLS_DIALECT_SUN
+};
+
+enum cmodel {
+ CM_32, /* The traditional 32-bit ABI. */
+ CM_SMALL, /* Assumes all code and data fits in the low 31 bits. */
+ CM_KERNEL, /* Assumes all code and data fits in the high 31 bits. */
+ CM_MEDIUM, /* Assumes code fits in the low 31 bits; data unlimited. */
+ CM_LARGE, /* No assumptions. */
+ CM_SMALL_PIC, /* Assumes code+data+got/plt fits in a 31 bit region. */
+ CM_MEDIUM_PIC,/* Assumes code+got/plt fits in a 31 bit region. */
+ CM_LARGE_PIC /* No assumptions. */
+};
+
+enum asm_dialect {
+ ASM_ATT,
+ ASM_INTEL
+};
+
+enum ix86_veclibabi {
+ ix86_veclibabi_type_none,
+ ix86_veclibabi_type_svml,
+ ix86_veclibabi_type_acml
+};
+
+#endif