1; Options for the IA-32 and AMD64 ports of the compiler. 2 3; Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc. 4; 5; This file is part of GCC. 6; 7; GCC is free software; you can redistribute it and/or modify it under 8; the terms of the GNU General Public License as published by the Free 9; Software Foundation; either version 2, or (at your option) any later 10; version. 11; 12; GCC is distributed in the hope that it will be useful, but WITHOUT ANY 13; WARRANTY; without even the implied warranty of MERCHANTABILITY or 14; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 15; for more details. 16; 17; You should have received a copy of the GNU General Public License 18; along with GCC; see the file COPYING. If not, write to the Free 19; Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 20; 02110-1301, USA. 21 22m128bit-long-double 23Target RejectNegative Report Mask(128BIT_LONG_DOUBLE) 24sizeof(long double) is 16 25 26m32 27Target RejectNegative Negative(m64) Report InverseMask(64BIT) 28Generate 32bit i386 code 29 30m386 31Target RejectNegative Undocumented 32;; Deprecated 33 34m3dnow 35Target Report Mask(3DNOW) 36Support 3DNow! built-in functions 37 38m486 39Target RejectNegative Undocumented 40;; Deprecated 41 42m64 43Target RejectNegative Negative(m32) Report Mask(64BIT) 44Generate 64bit x86-64 code 45 46m80387 47Target Report Mask(80387) 48Use hardware fp 49 50m96bit-long-double 51Target RejectNegative Report InverseMask(128BIT_LONG_DOUBLE) 52sizeof(long double) is 12 53 54maccumulate-outgoing-args 55Target Report Mask(ACCUMULATE_OUTGOING_ARGS) 56Reserve space for outgoing arguments in the function prologue 57 58malign-double 59Target Report Mask(ALIGN_DOUBLE) 60Align some doubles on dword boundary 61 62malign-functions= 63Target RejectNegative Joined Var(ix86_align_funcs_string) 64Function starts are aligned to this power of 2 65 66malign-jumps= 67Target RejectNegative Joined Var(ix86_align_jumps_string) 68Jump targets are aligned to this power of 2 69 70malign-loops= 71Target RejectNegative Joined Var(ix86_align_loops_string) 72Loop code aligned to this power of 2 73 74malign-stringops 75Target RejectNegative Report InverseMask(NO_ALIGN_STRINGOPS, ALIGN_STRINGOPS) 76Align destination of the string operations 77 78march= 79Target RejectNegative Joined Var(ix86_arch_string) 80Generate code for given CPU 81 82masm= 83Target RejectNegative Joined Var(ix86_asm_string) 84Use given assembler dialect 85 86mbranch-cost= 87Target RejectNegative Joined Var(ix86_branch_cost_string) 88Branches are this expensive (1-5, arbitrary units) 89 90mlarge-data-threshold= 91Target RejectNegative Joined Var(ix86_section_threshold_string) 92Data greater than given threshold will go into .ldata section in x86-64 medium model 93 94mcmodel= 95Target RejectNegative Joined Var(ix86_cmodel_string) 96Use given x86-64 code model 97 98mdebug-addr 99Target RejectNegative Var(TARGET_DEBUG_ADDR) Undocumented 100 101mdebug-arg 102Target RejectNegative Var(TARGET_DEBUG_ARG) Undocumented 103 104mfancy-math-387 105Target RejectNegative Report InverseMask(NO_FANCY_MATH_387, USE_FANCY_MATH_387) 106Generate sin, cos, sqrt for FPU 107 108mfp-ret-in-387 109Target Report Mask(FLOAT_RETURNS) 110Return values of functions in FPU registers 111 112mfpmath= 113Target RejectNegative Joined Var(ix86_fpmath_string) 114Generate floating point mathematics using given instruction set 115 116mhard-float 117Target RejectNegative Mask(80387) MaskExists 118Use hardware fp 119 120mieee-fp 121Target Report Mask(IEEE_FP) 122Use IEEE math for fp comparisons 123 124minline-all-stringops 125Target Report Mask(INLINE_ALL_STRINGOPS) 126Inline all known string operations 127 128mintel-syntax 129Target Undocumented 130;; Deprecated 131 132mmmx 133Target Report Mask(MMX) 134Support MMX built-in functions 135 136mms-bitfields 137Target Report Mask(MS_BITFIELD_LAYOUT) 138Use native (MS) bitfield layout 139 140mno-align-stringops 141Target RejectNegative Report Mask(NO_ALIGN_STRINGOPS) Undocumented 142 143mno-fancy-math-387 144Target RejectNegative Report Mask(NO_FANCY_MATH_387) Undocumented 145 146mno-push-args 147Target RejectNegative Report Mask(NO_PUSH_ARGS) Undocumented 148 149mno-red-zone 150Target RejectNegative Report Mask(NO_RED_ZONE) Undocumented 151 152momit-leaf-frame-pointer 153Target Report Mask(OMIT_LEAF_FRAME_POINTER) 154Omit the frame pointer in leaf functions 155 156mpentium 157Target RejectNegative Undocumented 158;; Deprecated 159 160mpentiumpro 161Target RejectNegative Undocumented 162;; Deprecated 163 164mpreferred-stack-boundary= 165Target RejectNegative Joined Var(ix86_preferred_stack_boundary_string) 166Attempt to keep stack aligned to this power of 2 167 168mpush-args 169Target Report InverseMask(NO_PUSH_ARGS, PUSH_ARGS) 170Use push instructions to save outgoing arguments 171 172mred-zone 173Target RejectNegative Report InverseMask(NO_RED_ZONE, RED_ZONE) 174Use red-zone in the x86-64 code 175 176mregparm= 177Target RejectNegative Joined Var(ix86_regparm_string) 178Number of registers used to pass integer arguments 179 180mrtd 181Target Report Mask(RTD) 182Alternate calling convention 183 184msoft-float 185Target InverseMask(80387) 186Do not use hardware fp 187 188msse 189Target Report Mask(SSE) 190Support MMX and SSE built-in functions and code generation 191 192msse2 193Target Report Mask(SSE2) 194Support MMX, SSE and SSE2 built-in functions and code generation 195 196msse3 197Target Report Mask(SSE3) 198Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation 199 200mssse3 201Target Report Mask(SSSE3) 202Support MMX, SSE, SSE2, SSE3 and SSSE3 built-in functions and code generation 203 204msse4a 205Target Report Mask(SSE4A) 206Support MMX, SSE, SSE2, SSE3 and SSE4A built-in functions and code generation 207 208maes 209Target Report Mask(AES) 210Support AES built-in functions and code generation. 211 212mpopcnt 213Target Report Mask(POPCNT) 214Support code generation of popcount instruction for popcount built-ins 215namely __builtin_popcount, __builtin_popcountl and __builtin_popcountll 216 217mabm 218Target Report Mask(ABM) 219Support code generation of Advanced Bit Manipulation (ABM) instructions, 220which include popcnt and lzcnt instructions, for popcount and clz built-ins 221namely __builtin_popcount, __builtin_popcountl, __builtin_popcountll and 222__builtin_clz, __builtin_clzl, __builtin_clzll 223 224msseregparm 225Target RejectNegative Mask(SSEREGPARM) 226Use SSE register passing conventions for SF and DF mode 227 228mstackrealign 229Target Report Var(ix86_force_align_arg_pointer) 230Realign stack in prologue 231 232msvr3-shlib 233Target Report Mask(SVR3_SHLIB) 234Uninitialized locals in .bss 235 236mstack-arg-probe 237Target Report Mask(STACK_PROBE) 238Enable stack probing 239 240mtls-dialect= 241Target RejectNegative Joined Var(ix86_tls_dialect_string) 242Use given thread-local storage dialect 243 244mtls-direct-seg-refs 245Target Report Mask(TLS_DIRECT_SEG_REFS) 246Use direct references against %gs when accessing tls data 247 248mtune= 249Target RejectNegative Joined Var(ix86_tune_string) 250Schedule code for given CPU 251 252;; Support Athlon 3Dnow builtins 253Mask(3DNOW_A) 254