1/* Definitions for option handling for IA-32. 2 Copyright (C) 1988-2015 Free Software Foundation, Inc. 3 4This file is part of GCC. 5 6GCC is free software; you can redistribute it and/or modify 7it under the terms of the GNU General Public License as published by 8the Free Software Foundation; either version 3, or (at your option) 9any later version. 10 11GCC is distributed in the hope that it will be useful, 12but WITHOUT ANY WARRANTY; without even the implied warranty of 13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14GNU General Public License for more details. 15 16Under Section 7 of GPL version 3, you are granted additional 17permissions described in the GCC Runtime Library Exception, version 183.1, as published by the Free Software Foundation. 19 20You should have received a copy of the GNU General Public License and 21a copy of the GCC Runtime Library Exception along with this program; 22see 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. */ 29enum 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" 38last_alg 39 40#undef DEF_ENUM 41#undef DEF_ALG 42}; 43 44/* Available call abi. */ 45enum calling_abi 46{ 47 SYSV_ABI = 0, 48 MS_ABI = 1 49}; 50 51enum fpmath_unit 52{ 53 FPMATH_387 = 1, 54 FPMATH_SSE = 2 55}; 56 57enum tls_dialect 58{ 59 TLS_DIALECT_GNU, 60 TLS_DIALECT_GNU2, 61 TLS_DIALECT_SUN 62}; 63 64enum 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 75enum pmode { 76 PMODE_SI, /* Pmode == SImode. */ 77 PMODE_DI /* Pmode == DImode. */ 78}; 79 80enum ix86_align_data { 81 ix86_align_data_type_compat, 82 ix86_align_data_type_abi, 83 ix86_align_data_type_cacheline 84}; 85 86enum asm_dialect { 87 ASM_ATT, 88 ASM_INTEL 89}; 90 91enum ix86_veclibabi { 92 ix86_veclibabi_type_none, 93 ix86_veclibabi_type_svml, 94 ix86_veclibabi_type_acml 95}; 96 97enum stack_protector_guard { 98 SSP_TLS, /* per-thread canary in TLS block */ 99 SSP_GLOBAL /* global canary */ 100}; 101 102#endif 103