⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 i386.h

📁 gcc-you can use this code to learn something about gcc, and inquire further into linux,
💻 H
📖 第 1 页 / 共 5 页
字号:
  { "no-fancy-math-387",	 MASK_NO_FANCY_MATH_387,		      \    N_("Do not generate sin, cos, sqrt for FPU") },			      \  { "fancy-math-387",		-MASK_NO_FANCY_MATH_387,		      \     N_("Generate sin, cos, sqrt for FPU")},				      \  { "omit-leaf-frame-pointer",	 MASK_OMIT_LEAF_FRAME_POINTER,		      \    N_("Omit the frame pointer in leaf functions") },			      \  { "no-omit-leaf-frame-pointer",-MASK_OMIT_LEAF_FRAME_POINTER, "" },	      \  { "stack-arg-probe",		 MASK_STACK_PROBE,			      \    N_("Enable stack probing") },					      \  { "no-stack-arg-probe",	-MASK_STACK_PROBE, "" },		      \  { "windows",			0, 0 /* undocumented */ },		      \  { "dll",			0,  0 /* undocumented */ },		      \  { "align-stringops",		-MASK_NO_ALIGN_STROPS,			      \    N_("Align destination of the string operations") },			      \  { "no-align-stringops",	 MASK_NO_ALIGN_STROPS,			      \    N_("Do not align destination of the string operations") },		      \  { "inline-all-stringops",	 MASK_INLINE_ALL_STROPS,		      \    N_("Inline all known string operations") },				      \  { "no-inline-all-stringops",	-MASK_INLINE_ALL_STROPS,		      \    N_("Do not inline all known string operations") },			      \  { "push-args",		-MASK_NO_PUSH_ARGS,			      \    N_("Use push instructions to save outgoing arguments") },		      \  { "no-push-args",		MASK_NO_PUSH_ARGS,			      \    N_("Do not use push instructions to save outgoing arguments") },	      \  { "accumulate-outgoing-args",	MASK_ACCUMULATE_OUTGOING_ARGS,		      \    N_("Use push instructions to save outgoing arguments") },		      \  { "no-accumulate-outgoing-args",-MASK_ACCUMULATE_OUTGOING_ARGS,	      \    N_("Do not use push instructions to save outgoing arguments") },	      \  { "mmx",			 MASK_MMX,				      \    N_("Support MMX built-in functions") },				      \  { "no-mmx",			 -MASK_MMX,				      \    N_("Do not support MMX built-in functions") },			      \  { "3dnow",                     MASK_3DNOW,				      \    N_("Support 3DNow! built-in functions") },				      \  { "no-3dnow",                  -MASK_3DNOW,				      \    N_("Do not support 3DNow! built-in functions") },			      \  { "sse",			 MASK_SSE,				      \    N_("Support MMX and SSE built-in functions and code generation") },	      \  { "no-sse",			 -MASK_SSE,				      \    N_("Do not support MMX and SSE built-in functions and code generation") },\  { "sse2",			 MASK_SSE2,				      \    N_("Support MMX, SSE and SSE2 built-in functions and code generation") }, \  { "no-sse2",			 -MASK_SSE2,				      \    N_("Do not support MMX, SSE and SSE2 built-in functions and code generation") },    \  { "128bit-long-double",	 MASK_128BIT_LONG_DOUBLE,		      \    N_("sizeof(long double) is 16") },					      \  { "96bit-long-double",	-MASK_128BIT_LONG_DOUBLE,		      \    N_("sizeof(long double) is 12") },					      \  { "64",			MASK_64BIT,				      \    N_("Generate 64bit x86-64 code") },					      \  { "32",			-MASK_64BIT,				      \    N_("Generate 32bit i386 code") },					      \  { "red-zone",			-MASK_NO_RED_ZONE,			      \    N_("Use red-zone in the x86-64 code") },				      \  { "no-red-zone",		MASK_NO_RED_ZONE,			      \    N_("Do not use red-zone in the x86-64 code") },			      \  SUBTARGET_SWITCHES							      \  { "", TARGET_DEFAULT | TARGET_64BIT_DEFAULT | TARGET_SUBTARGET_DEFAULT, 0 }}#ifndef TARGET_64BIT_DEFAULT#define TARGET_64BIT_DEFAULT 0#endif/* Once GDB has been enhanced to deal with functions without frame   pointers, we can change this to allow for elimination of   the frame pointer in leaf functions.  */#define TARGET_DEFAULT 0/* This is not really a target flag, but is done this way so that   it's analogous to similar code for Mach-O on PowerPC.  darwin.h   redefines this to 1.  */#define TARGET_MACHO 0/* This macro is similar to `TARGET_SWITCHES' but defines names of   command options that have values.  Its definition is an   initializer with a subgrouping for each command option.   Each subgrouping contains a string constant, that defines the   fixed part of the option name, and the address of a variable.  The   variable, type `char *', is set to the variable part of the given   option if the fixed part matches.  The actual option name is made   by appending `-m' to the specified name.  */#define TARGET_OPTIONS						\{ { "cpu=",		&ix86_cpu_string,			\    N_("Schedule code for given CPU")},				\  { "fpmath=",		&ix86_fpmath_string,			\    N_("Generate floating point mathematics using given instruction set")},\  { "arch=",		&ix86_arch_string,			\    N_("Generate code for given CPU")},				\  { "regparm=",		&ix86_regparm_string,			\    N_("Number of registers used to pass integer arguments") },	\  { "align-loops=",	&ix86_align_loops_string,		\    N_("Loop code aligned to this power of 2") },		\  { "align-jumps=",	&ix86_align_jumps_string,		\    N_("Jump targets are aligned to this power of 2") },	\  { "align-functions=",	&ix86_align_funcs_string,		\    N_("Function starts are aligned to this power of 2") },	\  { "preferred-stack-boundary=",				\    &ix86_preferred_stack_boundary_string,			\    N_("Attempt to keep stack aligned to this power of 2") },	\  { "branch-cost=",	&ix86_branch_cost_string,		\    N_("Branches are this expensive (1-5, arbitrary units)") },	\  { "cmodel=", &ix86_cmodel_string,				\    N_("Use given x86-64 code model") },			\  { "debug-arg", &ix86_debug_arg_string,			\    "" /* Undocumented. */ },					\  { "debug-addr", &ix86_debug_addr_string,			\    "" /* Undocumented. */ },					\  { "asm=", &ix86_asm_string,					\    N_("Use given assembler dialect") },			\  { "tls-dialect=", &ix86_tls_dialect_string,			\    N_("Use given thread-local storage dialect") },		\  SUBTARGET_OPTIONS						\}/* Sometimes certain combinations of command options do not make   sense on a particular target machine.  You can define a macro   `OVERRIDE_OPTIONS' to take account of this.  This macro, if   defined, is executed once just after all the command options have   been parsed.   Don't use this macro to turn on various extra optimizations for   `-O'.  That is what `OPTIMIZATION_OPTIONS' is for.  */#define OVERRIDE_OPTIONS override_options ()/* These are meant to be redefined in the host dependent files */#define SUBTARGET_SWITCHES#define SUBTARGET_OPTIONS/* Define this to change the optimizations performed by default.  */#define OPTIMIZATION_OPTIONS(LEVEL, SIZE) \  optimization_options ((LEVEL), (SIZE))/* Specs for the compiler proper */#ifndef CC1_CPU_SPEC#define CC1_CPU_SPEC "\%{!mcpu*: \%{m386:-mcpu=i386 \%n`-m386' is deprecated. Use `-march=i386' or `-mcpu=i386' instead.\n} \%{m486:-mcpu=i486 \%n`-m486' is deprecated. Use `-march=i486' or `-mcpu=i486' instead.\n} \%{mpentium:-mcpu=pentium \%n`-mpentium' is deprecated. Use `-march=pentium' or `-mcpu=pentium' instead.\n} \%{mpentiumpro:-mcpu=pentiumpro \%n`-mpentiumpro' is deprecated. Use `-march=pentiumpro' or `-mcpu=pentiumpro' instead.\n}} \%{mintel-syntax:-masm=intel \%n`-mintel-syntax' is deprecated. Use `-masm=intel' instead.\n} \%{mno-intel-syntax:-masm=att \%n`-mno-intel-syntax' is deprecated. Use `-masm=att' instead.\n}"#endif/* Target CPU builtins.  */#define TARGET_CPU_CPP_BUILTINS()				\  do								\    {								\      size_t arch_len = strlen (ix86_arch_string);		\      size_t cpu_len = strlen (ix86_cpu_string);		\      int last_arch_char = ix86_arch_string[arch_len - 1];	\      int last_cpu_char = ix86_cpu_string[cpu_len - 1];		\								\      if (TARGET_64BIT)						\	{							\	  builtin_assert ("cpu=x86_64");			\	  builtin_define ("__x86_64");				\	  builtin_define ("__x86_64__");			\	  builtin_define ("__amd64");				\	  builtin_define ("__amd64__");				\	}							\      else							\	{							\	  builtin_assert ("cpu=i386");				\	  builtin_assert ("machine=i386");			\	  builtin_define_std ("i386");				\	}							\								\      /* Built-ins based on -mcpu= (or -march= if no		\	 CPU given).  */					\      if (TARGET_386)						\	builtin_define ("__tune_i386__");			\      else if (TARGET_486)					\	builtin_define ("__tune_i486__");			\      else if (TARGET_PENTIUM)					\	{							\	  builtin_define ("__tune_i586__");			\	  builtin_define ("__tune_pentium__");			\	  if (last_cpu_char == 'x')				\	    builtin_define ("__tune_pentium_mmx__");		\	}							\      else if (TARGET_PENTIUMPRO)				\	{							\	  builtin_define ("__tune_i686__");			\	  builtin_define ("__tune_pentiumpro__");		\	  switch (last_cpu_char)				\	    {							\	    case '3':						\	      builtin_define ("__tune_pentium3__");		\	      /* FALLTHRU */					\	    case '2':						\	      builtin_define ("__tune_pentium2__");		\	      break;						\	    }							\	}							\      else if (TARGET_K6)					\	{							\	  builtin_define ("__tune_k6__");			\	  if (last_cpu_char == '2')				\	    builtin_define ("__tune_k6_2__");			\	  else if (last_cpu_char == '3')			\	    builtin_define ("__tune_k6_3__");			\	}							\      else if (TARGET_ATHLON)					\	{							\	  builtin_define ("__tune_athlon__");			\	  /* Only plain "athlon" lacks SSE.  */			\	  if (last_cpu_char != 'n')				\	    builtin_define ("__tune_athlon_sse__");		\	}							\      else if (TARGET_PENTIUM4)					\	builtin_define ("__tune_pentium4__");			\								\      if (TARGET_MMX)						\	builtin_define ("__MMX__");				\      if (TARGET_3DNOW)						\	builtin_define ("__3dNOW__");				\      if (TARGET_3DNOW_A)					\	builtin_define ("__3dNOW_A__");				\      if (TARGET_SSE)						\	builtin_define ("__SSE__");				\      if (TARGET_SSE2)						\	builtin_define ("__SSE2__");				\      if (TARGET_SSE_MATH && TARGET_SSE)			\	builtin_define ("__SSE_MATH__");			\      if (TARGET_SSE_MATH && TARGET_SSE2)			\	builtin_define ("__SSE2_MATH__");			\								\      /* Built-ins based on -march=.  */			\      if (ix86_arch == PROCESSOR_I486)				\	{							\	  builtin_define ("__i486");				\	  builtin_define ("__i486__");				\	}							\      else if (ix86_arch == PROCESSOR_PENTIUM)			\	{							\	  builtin_define ("__i586");				\	  builtin_define ("__i586__");				\	  builtin_define ("__pentium");				\	  builtin_define ("__pentium__");			\	  if (last_arch_char == 'x')				\	    builtin_define ("__pentium_mmx__");			\	}							\      else if (ix86_arch == PROCESSOR_PENTIUMPRO)		\	{							\	  builtin_define ("__i686");				\	  builtin_define ("__i686__");				\	  builtin_define ("__pentiumpro");			\	  builtin_define ("__pentiumpro__");			\	}							\      else if (ix86_arch == PROCESSOR_K6)			\	{							\								\	  builtin_define ("__k6");				\	  builtin_define ("__k6__");				\	  if (last_arch_char == '2')				\	    builtin_define ("__k6_2__");			\	  else if (last_arch_char == '3')			\	    builtin_define ("__k6_3__");			\	}							\      else if (ix86_arch == PROCESSOR_ATHLON)			\	{							\	  builtin_define ("__athlon");				\	  builtin_define ("__athlon__");			\	  /* Only plain "athlon" lacks SSE.  */			\	  if (last_arch_char != 'n')				\	    builtin_define ("__athlon_sse__");			\	}							\      else if (ix86_arch == PROCESSOR_PENTIUM4)			\	{							\	  builtin_define ("__pentium4");			\	  builtin_define ("__pentium4__");			\	}							\    }								\  while (0)#define TARGET_CPU_DEFAULT_i386 0#define TARGET_CPU_DEFAULT_i486 1#define TARGET_CPU_DEFAULT_pentium 2#define TARGET_CPU_DEFAULT_pentium_mmx 3#define TARGET_CPU_DEFAULT_pentiumpro 4#define TARGET_CPU_DEFAULT_pentium2 5#define TARGET_CPU_DEFAULT_pentium3 6#define TARGET_CPU_DEFAULT_pentium4 7#define TARGET_CPU_DEFAULT_k6 8#define TARGET_CPU_DEFAULT_k6_2 9#define TARGET_CPU_DEFAULT_k6_3 10#define TARGET_CPU_DEFAULT_athlon 11#define TARGET_CPU_DEFAULT_athlon_sse 12#define TARGET_CPU_DEFAULT_NAMES {"i386", "i486", "pentium", "pentium-mmx",\				  "pentiumpro", "pentium2", "pentium3", \				  "pentium4", "k6", "k6-2", "k6-3",\				  "athlon", "athlon-4"}#ifndef CC1_SPEC#define CC1_SPEC "%(cc1_cpu) "#endif/* This macro defines names of additional specifications to put in the   specs that can be used in various specifications like CC1_SPEC.  Its   definition is an initializer with a subgrouping for each command option.   Each subgrouping contains a string constant, that defines the   specification name, and a string constant that used by the GNU CC driver   program.   Do not define this macro if it does not need to do anything.  */#ifndef SUBTARGET_EXTRA_SPECS#define SUBTARGET_EXTRA_SPECS#endif#define EXTRA_SPECS							\  { "cc1_cpu",  CC1_CPU_SPEC },						\

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -