extend.texi: Use "x86"...

2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
	preferred names of the architecture and its 32- and 64-bit
	variants.
	* doc/invoke.texi: Likewise.
	* doc/md.texi: Likewise.

From-SVN: r220309
This commit is contained in:
Sandra Loosemore 2015-01-31 18:47:13 -05:00 committed by Sandra Loosemore
parent 407028931a
commit 7d47d0a1b8
4 changed files with 98 additions and 103 deletions

View File

@ -1,3 +1,11 @@
2015-01-31 Sandra Loosemore <sandra@codesourcery.com>
* doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
preferred names of the architecture and its 32- and 64-bit
variants.
* doc/invoke.texi: Likewise.
* doc/md.texi: Likewise.
2015-01-29 David Malcolm <dmalcolm@redhat.com> 2015-01-29 David Malcolm <dmalcolm@redhat.com>
PR jit/64780 PR jit/64780

View File

@ -971,7 +971,7 @@ typedef _Complex float __attribute__((mode(XC))) _Complex80;
@end smallexample @end smallexample
Not all targets support additional floating-point types. @code{__float80} Not all targets support additional floating-point types. @code{__float80}
and @code{__float128} types are supported on i386, x86_64 and IA-64 targets. and @code{__float128} types are supported on x86 and IA-64 targets.
The @code{__float128} type is supported on hppa HP-UX targets. The @code{__float128} type is supported on hppa HP-UX targets.
@node Half-Precision @node Half-Precision
@ -2178,10 +2178,10 @@ the enclosing block.
@cindex @code{const} applied to function @cindex @code{const} applied to function
@cindex functions with @code{printf}, @code{scanf}, @code{strftime} or @code{strfmon} style arguments @cindex functions with @code{printf}, @code{scanf}, @code{strftime} or @code{strfmon} style arguments
@cindex functions with non-null pointer arguments @cindex functions with non-null pointer arguments
@cindex functions that are passed arguments in registers on the 386 @cindex functions that are passed arguments in registers on x86-32
@cindex functions that pop the argument stack on the 386 @cindex functions that pop the argument stack on x86-32
@cindex functions that do not pop the argument stack on the 386 @cindex functions that do not pop the argument stack on x86-32
@cindex functions that have different compilation options on the 386 @cindex functions that have different compilation options on x86-32
@cindex functions that have different optimization options @cindex functions that have different optimization options
@cindex functions that are dynamically resolved @cindex functions that are dynamically resolved
@ -2426,9 +2426,9 @@ is diagnosed earlier and with exact location of the call even in presence
of inline functions or when not emitting debugging information. of inline functions or when not emitting debugging information.
@item cdecl @item cdecl
@cindex functions that do pop the argument stack on the 386 @cindex functions that do pop the argument stack on x86-32
@opindex mrtd @opindex mrtd
On the Intel 386, the @code{cdecl} attribute causes the compiler to On the x86-32 targets, the @code{cdecl} attribute causes the compiler to
assume that the calling function pops off the stack space used to assume that the calling function pops off the stack space used to
pass arguments. This is pass arguments. This is
useful to override the effects of the @option{-mrtd} switch. useful to override the effects of the @option{-mrtd} switch.
@ -2677,8 +2677,8 @@ function is a fast interrupt handler. This is just like the
instead of @code{reit}. instead of @code{reit}.
@item fastcall @item fastcall
@cindex functions that pop the argument stack on the 386 @cindex functions that pop the argument stack on x86-32
On the Intel 386, the @code{fastcall} attribute causes the compiler to On x86-32 targets, the @code{fastcall} attribute causes the compiler to
pass the first argument (if of integral type) in the register ECX and pass the first argument (if of integral type) in the register ECX and
the second argument (if of integral type) in the register EDX@. Subsequent the second argument (if of integral type) in the register EDX@. Subsequent
and other typed arguments are passed on the stack. The called function and other typed arguments are passed on the stack. The called function
@ -2686,8 +2686,8 @@ pops the arguments off the stack. If the number of arguments is variable all
arguments are pushed on the stack. arguments are pushed on the stack.
@item thiscall @item thiscall
@cindex functions that pop the argument stack on the 386 @cindex functions that pop the argument stack on x86-32
On the Intel 386, the @code{thiscall} attribute causes the compiler to On x86-32 targets, the @code{thiscall} attribute causes the compiler to
pass the first argument (if of integral type) in the register ECX. pass the first argument (if of integral type) in the register ECX.
Subsequent and other typed arguments are passed on the stack. The called Subsequent and other typed arguments are passed on the stack. The called
function pops the arguments off the stack. function pops the arguments off the stack.
@ -3344,7 +3344,7 @@ defined by shared libraries.
@cindex @code{ms_abi} attribute @cindex @code{ms_abi} attribute
@cindex @code{sysv_abi} attribute @cindex @code{sysv_abi} attribute
On 32-bit and 64-bit (i?86|x86_64)-*-* targets, you can use an ABI attribute On 32-bit and 64-bit x86 targets, you can use an ABI attribute
to indicate which calling convention should be used for a function. The to indicate which calling convention should be used for a function. The
@code{ms_abi} attribute tells the compiler to use the Microsoft ABI, @code{ms_abi} attribute tells the compiler to use the Microsoft ABI,
while the @code{sysv_abi} attribute tells the compiler to use the ABI while the @code{sysv_abi} attribute tells the compiler to use the ABI
@ -3357,21 +3357,21 @@ requires the @option{-maccumulate-outgoing-args} option.
@item callee_pop_aggregate_return (@var{number}) @item callee_pop_aggregate_return (@var{number})
@cindex @code{callee_pop_aggregate_return} attribute @cindex @code{callee_pop_aggregate_return} attribute
On 32-bit i?86-*-* targets, you can use this attribute to control how On x86-32 targets, you can use this attribute to control how
aggregates are returned in memory. If the caller is responsible for aggregates are returned in memory. If the caller is responsible for
popping the hidden pointer together with the rest of the arguments, specify popping the hidden pointer together with the rest of the arguments, specify
@var{number} equal to zero. If callee is responsible for popping the @var{number} equal to zero. If callee is responsible for popping the
hidden pointer, specify @var{number} equal to one. hidden pointer, specify @var{number} equal to one.
The default i386 ABI assumes that the callee pops the The default x86-32 ABI assumes that the callee pops the
stack for hidden pointer. However, on 32-bit i386 Microsoft Windows targets, stack for hidden pointer. However, on x86-32 Microsoft Windows targets,
the compiler assumes that the the compiler assumes that the
caller pops the stack for hidden pointer. caller pops the stack for hidden pointer.
@item ms_hook_prologue @item ms_hook_prologue
@cindex @code{ms_hook_prologue} attribute @cindex @code{ms_hook_prologue} attribute
On 32-bit i[34567]86-*-* targets and 64-bit x86_64-*-* targets, you can use On 32-bit and 64-bit x86 targets, you can use
this function attribute to make GCC generate the ``hot-patching'' function this function attribute to make GCC generate the ``hot-patching'' function
prologue used in Win32 API functions in Microsoft Windows XP Service Pack 2 prologue used in Win32 API functions in Microsoft Windows XP Service Pack 2
and newer. and newer.
@ -3763,8 +3763,8 @@ with @option{-fchkp-instrument-marked-only} option.
@item regparm (@var{number}) @item regparm (@var{number})
@cindex @code{regparm} attribute @cindex @code{regparm} attribute
@cindex functions that are passed arguments in registers on the 386 @cindex functions that are passed arguments in registers on x86-32
On the Intel 386, the @code{regparm} attribute causes the compiler to On x86-32 targets, the @code{regparm} attribute causes the compiler to
pass arguments number one to @var{number} if they are of integral type pass arguments number one to @var{number} if they are of integral type
in registers EAX, EDX, and ECX instead of on the stack. Functions that in registers EAX, EDX, and ECX instead of on the stack. Functions that
take a variable number of arguments continue to be passed all of their take a variable number of arguments continue to be passed all of their
@ -3798,7 +3798,7 @@ Provide a user-defined function to handle warm reset exception.
@item sseregparm @item sseregparm
@cindex @code{sseregparm} attribute @cindex @code{sseregparm} attribute
On the Intel 386 with SSE support, the @code{sseregparm} attribute On x86-32 targets with SSE support, the @code{sseregparm} attribute
causes the compiler to pass up to 3 floating-point arguments in causes the compiler to pass up to 3 floating-point arguments in
SSE registers instead of on the stack. Functions that take a SSE registers instead of on the stack. Functions that take a
variable number of arguments continue to pass all of their variable number of arguments continue to pass all of their
@ -3806,7 +3806,7 @@ floating-point arguments on the stack.
@item force_align_arg_pointer @item force_align_arg_pointer
@cindex @code{force_align_arg_pointer} attribute @cindex @code{force_align_arg_pointer} attribute
On the Intel x86, the @code{force_align_arg_pointer} attribute may be On x86 targets, the @code{force_align_arg_pointer} attribute may be
applied to individual function definitions, generating an alternate applied to individual function definitions, generating an alternate
prologue and epilogue that realigns the run-time stack if necessary. prologue and epilogue that realigns the run-time stack if necessary.
This supports mixing legacy codes that run with a 4-byte aligned stack This supports mixing legacy codes that run with a 4-byte aligned stack
@ -3952,8 +3952,8 @@ void f () __attribute__ ((interrupt_handler,
@end smallexample @end smallexample
@item stdcall @item stdcall
@cindex functions that pop the argument stack on the 386 @cindex functions that pop the argument stack on x86-32
On the Intel 386, the @code{stdcall} attribute causes the compiler to On x86-32 targets, the @code{stdcall} attribute causes the compiler to
assume that the called function pops off the stack space used to assume that the called function pops off the stack space used to
pass arguments, unless it takes a variable number of arguments. pass arguments, unless it takes a variable number of arguments.
@ -3976,7 +3976,7 @@ more than one function to be compiled with specific target options.
@xref{Function Specific Option Pragmas}, for details about the @xref{Function Specific Option Pragmas}, for details about the
@samp{#pragma GCC target} pragma. @samp{#pragma GCC target} pragma.
For instance on a 386, you could compile one function with For instance on an x86, you could compile one function with
@code{target("sse4.1,arch=core2")} and another with @code{target("sse4.1,arch=core2")} and another with
@code{target("sse4a,arch=amdfam10")}. This is equivalent to @code{target("sse4a,arch=amdfam10")}. This is equivalent to
compiling the first function with @option{-msse4.1} and compiling the first function with @option{-msse4.1} and
@ -3984,7 +3984,7 @@ compiling the first function with @option{-msse4.1} and
@option{-msse4a} and @option{-march=amdfam10} options. It is up to the @option{-msse4a} and @option{-march=amdfam10} options. It is up to the
user to make sure that a function is only invoked on a machine that user to make sure that a function is only invoked on a machine that
supports the particular ISA it is compiled for (for example by using supports the particular ISA it is compiled for (for example by using
@code{cpuid} on 386 to determine what feature bits and architecture @code{cpuid} on x86 to determine what feature bits and architecture
family are used). family are used).
@smallexample @smallexample
@ -3997,10 +3997,10 @@ strings to specify multiple options, or separate the options
with a comma (@samp{,}). with a comma (@samp{,}).
The @code{target} attribute is presently implemented for The @code{target} attribute is presently implemented for
i386/x86_64, PowerPC, and Nios II targets only. x86, PowerPC, and Nios II targets only.
The options supported are specific to each target. The options supported are specific to each target.
On the 386, the following options are allowed: On the x86, the following options are allowed:
@table @samp @table @samp
@item abm @item abm
@ -4345,7 +4345,7 @@ named @var{name}.
@xref{Nios II Options}, for more information. @xref{Nios II Options}, for more information.
@end table @end table
On the 386/x86_64 and PowerPC back ends, the inliner does not inline a On the x86 and PowerPC back ends, the inliner does not inline a
function that has different target options than the caller, unless the function that has different target options than the caller, unless the
callee has a subset of the target options of the caller. For example callee has a subset of the target options of the caller. For example
a function declared with @code{target("sse3")} can inline a function a function declared with @code{target("sse3")} can inline a function
@ -5521,11 +5521,11 @@ int cpu_clock __attribute__((cb(0x123)));
@end table @end table
@anchor{i386 Variable Attributes} @anchor{x86 Variable Attributes}
@subsection i386 Variable Attributes @subsection x86 Variable Attributes
Two attributes are currently defined for i386 configurations: Two attributes are currently defined for x86 configurations:
@code{ms_struct} and @code{gcc_struct} @code{ms_struct} and @code{gcc_struct}.
@table @code @table @code
@item ms_struct @item ms_struct
@ -5540,7 +5540,7 @@ data between functions compiled with GCC and the native Microsoft compiler
(either via function call or as data in a file), it may be necessary to access (either via function call or as data in a file), it may be necessary to access
either format. either format.
Currently @option{-m[no-]ms-bitfields} is provided for the Microsoft Windows X86 Currently @option{-m[no-]ms-bitfields} is provided for the Microsoft Windows x86
compilers to match the native Microsoft compiler. compilers to match the native Microsoft compiler.
The Microsoft structure layout algorithm is fairly simple with the exception The Microsoft structure layout algorithm is fairly simple with the exception
@ -5665,7 +5665,7 @@ Three attributes currently are defined for PowerPC configurations:
@code{altivec}, @code{ms_struct} and @code{gcc_struct}. @code{altivec}, @code{ms_struct} and @code{gcc_struct}.
For full documentation of the struct attributes please see the For full documentation of the struct attributes please see the
documentation in @ref{i386 Variable Attributes}. documentation in @ref{x86 Variable Attributes}.
For documentation of @code{altivec} attribute please see the For documentation of @code{altivec} attribute please see the
documentation in @ref{PowerPC Type Attributes}. documentation in @ref{PowerPC Type Attributes}.
@ -6078,10 +6078,10 @@ Specifically, the @code{based}, @code{tiny}, @code{near}, and
@code{far} attributes may be applied to either. The @code{io} and @code{far} attributes may be applied to either. The @code{io} and
@code{cb} attributes may not be applied to types. @code{cb} attributes may not be applied to types.
@anchor{i386 Type Attributes} @anchor{x86 Type Attributes}
@subsection i386 Type Attributes @subsection x86 Type Attributes
Two attributes are currently defined for i386 configurations: Two attributes are currently defined for x86 configurations:
@code{ms_struct} and @code{gcc_struct}. @code{ms_struct} and @code{gcc_struct}.
@table @code @table @code
@ -6098,7 +6098,7 @@ data between functions compiled with GCC and the native Microsoft compiler
(either via function call or as data in a file), it may be necessary to access (either via function call or as data in a file), it may be necessary to access
either format. either format.
Currently @option{-m[no-]ms-bitfields} is provided for the Microsoft Windows X86 Currently @option{-m[no-]ms-bitfields} is provided for the Microsoft Windows x86
compilers to match the native Microsoft compiler. compilers to match the native Microsoft compiler.
@end table @end table
@ -6109,7 +6109,7 @@ Three attributes currently are defined for PowerPC configurations:
@code{altivec}, @code{ms_struct} and @code{gcc_struct}. @code{altivec}, @code{ms_struct} and @code{gcc_struct}.
For full documentation of the @code{ms_struct} and @code{gcc_struct} For full documentation of the @code{ms_struct} and @code{gcc_struct}
attributes please see the documentation in @ref{i386 Type Attributes}. attributes please see the documentation in @ref{x86 Type Attributes}.
The @code{altivec} attribute allows one to declare AltiVec vector data The @code{altivec} attribute allows one to declare AltiVec vector data
types supported by the AltiVec Programming Interface Manual. The types supported by the AltiVec Programming Interface Manual. The
@ -6662,7 +6662,7 @@ void do_print(uint32_t dwSomeValue)
@end example @end example
The following example demonstrates a case where you need to use the The following example demonstrates a case where you need to use the
@code{volatile} qualifier. It uses the i386 RDTSC instruction, which reads @code{volatile} qualifier. It uses the x86 RDTSC instruction, which reads
the computer's time-stamp counter. Without the @code{volatile} qualifier, the computer's time-stamp counter. Without the @code{volatile} qualifier,
the optimizers might assume that the @code{asm} block will always return the the optimizers might assume that the @code{asm} block will always return the
same value and therefore optimize away the second call. same value and therefore optimize away the second call.
@ -6755,7 +6755,7 @@ Since GCC does not parse the AssemblerTemplate, it has no visibility of any
symbols it references. This may result in GCC discarding those symbols as symbols it references. This may result in GCC discarding those symbols as
unreferenced unless they are also listed as input, output, or goto operands. unreferenced unless they are also listed as input, output, or goto operands.
GCC can support multiple assembler dialects (for example, GCC for i386 GCC can support multiple assembler dialects (for example, GCC for x86
supports "att" and "intel" dialects) for inline assembler. In builds that supports "att" and "intel" dialects) for inline assembler. In builds that
support this capability, the @option{-masm} option controls which dialect support this capability, the @option{-masm} option controls which dialect
GCC uses as its default. The hardware-specific documentation for the GCC uses as its default. The hardware-specific documentation for the
@ -6779,7 +6779,7 @@ This construct outputs 'dialect0' when using dialect #0 to compile the code,
braces than the number of dialects the compiler supports, the construct braces than the number of dialects the compiler supports, the construct
outputs nothing. outputs nothing.
For example, if an i386 compiler supports two dialects (att, intel), an For example, if an x86 compiler supports two dialects (att, intel), an
assembler template such as this: assembler template such as this:
@example @example
@ -6927,8 +6927,8 @@ will be undefined if @var{a} is modified before using @var{b}.
@code{asm} supports operand modifiers on operands (for example @code{%k2} @code{asm} supports operand modifiers on operands (for example @code{%k2}
instead of simply @code{%2}). Typically these qualifiers are hardware instead of simply @code{%2}). Typically these qualifiers are hardware
dependent. The list of supported modifiers for i386 is found at dependent. The list of supported modifiers for x86 is found at
@ref{i386Operandmodifiers,i386 Operand modifiers}. @ref{x86Operandmodifiers,x86 Operand modifiers}.
If the C code that follows the @code{asm} makes no use of any of the output If the C code that follows the @code{asm} makes no use of any of the output
operands, use @code{volatile} for the @code{asm} statement to prevent the operands, use @code{volatile} for the @code{asm} statement to prevent the
@ -7069,8 +7069,8 @@ The total number of input + output + goto operands has a limit of 30.
@code{asm} supports operand modifiers on operands (for example @code{%k2} @code{asm} supports operand modifiers on operands (for example @code{%k2}
instead of simply @code{%2}). Typically these qualifiers are hardware instead of simply @code{%2}). Typically these qualifiers are hardware
dependent. The list of supported modifiers for i386 is found at dependent. The list of supported modifiers for x86 is found at
@ref{i386Operandmodifiers,i386 Operand modifiers}. @ref{x86Operandmodifiers,x86 Operand modifiers}.
Examples: Examples:
@ -7229,12 +7229,12 @@ error:
@} @}
@end example @end example
@anchor{i386Operandmodifiers} @anchor{x86Operandmodifiers}
@subsubsection i386 Operand modifiers @subsubsection x86 Operand modifiers
Input, output, and goto operands for extended @code{asm} statements can use Input, output, and goto operands for extended @code{asm} statements can use
modifiers to affect the code output to the assembler. For example, the modifiers to affect the code output to the assembler. For example, the
following code uses the "h" and "b" modifiers for i386: following code uses the "h" and "b" modifiers for x86:
@example @example
uint16_t num; uint16_t num;
@ -7326,10 +7326,10 @@ The table below shows the list of supported modifiers and their effects.
@tab @code{2} @tab @code{2}
@end multitable @end multitable
@anchor{i386floatingpointasmoperands} @anchor{x86floatingpointasmoperands}
@subsubsection i386 floating-point asm operands @subsubsection x86 floating-point asm operands
On i386 targets, there are several rules on the usage of stack-like registers On x86 targets, there are several rules on the usage of stack-like registers
in the operands of an @code{asm}. These rules apply only to the operands in the operands of an @code{asm}. These rules apply only to the operands
that are stack-like registers: that are stack-like registers:
@ -7922,7 +7922,7 @@ purposes.
On some targets, the instruction set contains SIMD vector instructions which On some targets, the instruction set contains SIMD vector instructions which
operate on multiple values contained in one large register at the same time. operate on multiple values contained in one large register at the same time.
For example, on the i386 the MMX, 3DNow!@: and SSE extensions can be used For example, on the x86 the MMX, 3DNow!@: and SSE extensions can be used
this way. this way.
The first step in using these extensions is to provide the necessary data The first step in using these extensions is to provide the necessary data
@ -8594,7 +8594,7 @@ functions above, except they perform multiplication, instead of addition.
@node x86 specific memory model extensions for transactional memory @node x86 specific memory model extensions for transactional memory
@section x86 specific memory model extensions for transactional memory @section x86 specific memory model extensions for transactional memory
The i386 architecture supports additional memory ordering flags The x86 architecture supports additional memory ordering flags
to mark lock critical sections for hardware lock elision. to mark lock critical sections for hardware lock elision.
These must be specified in addition to an existing memory model to These must be specified in addition to an existing memory model to
atomic intrinsics. atomic intrinsics.
@ -10113,8 +10113,8 @@ instructions, but allow the compiler to schedule those calls.
* AVR Built-in Functions:: * AVR Built-in Functions::
* Blackfin Built-in Functions:: * Blackfin Built-in Functions::
* FR-V Built-in Functions:: * FR-V Built-in Functions::
* X86 Built-in Functions:: * x86 Built-in Functions::
* X86 transactional memory intrinsics:: * x86 transactional memory intrinsics::
* MIPS DSP Built-in Functions:: * MIPS DSP Built-in Functions::
* MIPS Paired-Single Support:: * MIPS Paired-Single Support::
* MIPS Loongson Built-in Functions:: * MIPS Loongson Built-in Functions::
@ -11484,10 +11484,10 @@ Use the @code{nldub} instruction to load the contents of address @var{x}
into the data cache. The instruction is issued in slot I1@. into the data cache. The instruction is issued in slot I1@.
@end table @end table
@node X86 Built-in Functions @node x86 Built-in Functions
@subsection X86 Built-in Functions @subsection x86 Built-in Functions
These built-in functions are available for the i386 and x86-64 family These built-in functions are available for the x86-32 and x86-64 family
of computers, depending on the command-line switches used. of computers, depending on the command-line switches used.
If you specify command-line switches such as @option{-msse}, If you specify command-line switches such as @option{-msse},
@ -12879,7 +12879,7 @@ v2si __builtin_ia32_pswapdsi (v2si)
The following built-in functions are available when @option{-mrtm} is used The following built-in functions are available when @option{-mrtm} is used
They are used for restricted transactional memory. These are the internal They are used for restricted transactional memory. These are the internal
low level functions. Normally the functions in low level functions. Normally the functions in
@ref{X86 transactional memory intrinsics} should be used instead. @ref{x86 transactional memory intrinsics} should be used instead.
@smallexample @smallexample
int __builtin_ia32_xbegin () int __builtin_ia32_xbegin ()
@ -12888,10 +12888,10 @@ void __builtin_ia32_xabort (status)
int __builtin_ia32_xtest () int __builtin_ia32_xtest ()
@end smallexample @end smallexample
@node X86 transactional memory intrinsics @node x86 transactional memory intrinsics
@subsection X86 transaction memory intrinsics @subsection x86 transaction memory intrinsics
Hardware transactional memory intrinsics for i386. These allow to use Hardware transactional memory intrinsics for x86. These allow to use
memory transactions with RTM (Restricted Transactional Memory). memory transactions with RTM (Restricted Transactional Memory).
For using HLE (Hardware Lock Elision) see @ref{x86 specific memory model extensions for transactional memory} instead. For using HLE (Hardware Lock Elision) see @ref{x86 specific memory model extensions for transactional memory} instead.
This support is enabled with the @option{-mrtm} option. This support is enabled with the @option{-mrtm} option.
@ -17603,7 +17603,7 @@ multiple @code{#pragma pack(@var{n})} instances and finalized by a single
@code{#pragma pack(pop)}. @code{#pragma pack(pop)}.
@end enumerate @end enumerate
Some targets, e.g.@: i386 and PowerPC, support the @code{ms_struct} Some targets, e.g.@: x86 and PowerPC, support the @code{ms_struct}
@code{#pragma} which lays out a structure as the documented @code{#pragma} which lays out a structure as the documented
@code{__attribute__ ((ms_struct))}. @code{__attribute__ ((ms_struct))}.
@enumerate @enumerate
@ -17796,7 +17796,7 @@ function. The parenthesis around the options is optional.
@code{target} attribute and the attribute syntax. @code{target} attribute and the attribute syntax.
The @code{#pragma GCC target} pragma is presently implemented for The @code{#pragma GCC target} pragma is presently implemented for
i386/x86_64, PowerPC, and Nios II targets only. x86, PowerPC, and Nios II targets only.
@end table @end table
@table @code @table @code
@ -18827,7 +18827,7 @@ See also @ref{Namespace Association}.
@section Function Multiversioning @section Function Multiversioning
@cindex function versions @cindex function versions
With the GNU C++ front end, for target i386, you may specify multiple With the GNU C++ front end, for x86 targets, you may specify multiple
versions of a function, where each function is specialized for a versions of a function, where each function is specialized for a
specific target feature. At runtime, the appropriate version of the specific target feature. At runtime, the appropriate version of the
function is automatically executed depending on the characteristics of function is automatically executed depending on the characteristics of

View File

@ -676,7 +676,7 @@ Objective-C and Objective-C++ Dialects}.
-mschedule=@var{cpu-type} -mspace-regs -msio -mwsio @gol -mschedule=@var{cpu-type} -mspace-regs -msio -mwsio @gol
-munix=@var{unix-std} -nolibdld -static -threads} -munix=@var{unix-std} -nolibdld -static -threads}
@emph{i386 and x86-64 Options} @emph{x86 Options}
@gccoptlist{-mtune=@var{cpu-type} -march=@var{cpu-type} @gol @gccoptlist{-mtune=@var{cpu-type} -march=@var{cpu-type} @gol
-mtune-ctrl=@var{feature-list} -mdump-tune-features -mno-default @gol -mtune-ctrl=@var{feature-list} -mdump-tune-features -mno-default @gol
-mfpmath=@var{unit} @gol -mfpmath=@var{unit} @gol
@ -709,7 +709,7 @@ Objective-C and Objective-C++ Dialects}.
-mavx256-split-unaligned-load -mavx256-split-unaligned-store @gol -mavx256-split-unaligned-load -mavx256-split-unaligned-store @gol
-malign-data=@var{type} -mstack-protector-guard=@var{guard}} -malign-data=@var{type} -mstack-protector-guard=@var{guard}}
@emph{i386 and x86-64 Windows Options} @emph{x86 Windows Options}
@gccoptlist{-mconsole -mcygwin -mno-cygwin -mdll @gol @gccoptlist{-mconsole -mcygwin -mno-cygwin -mdll @gol
-mnop-fun-dllimport -mthread @gol -mnop-fun-dllimport -mthread @gol
-municode -mwin32 -mwindows -fno-set-stack-executable} -municode -mwin32 -mwindows -fno-set-stack-executable}
@ -1081,9 +1081,6 @@ See RS/6000 and PowerPC Options.
@gccoptlist{-mrtp -non-static -Bstatic -Bdynamic @gol @gccoptlist{-mrtp -non-static -Bstatic -Bdynamic @gol
-Xbind-lazy -Xbind-now} -Xbind-lazy -Xbind-now}
@emph{x86-64 Options}
See i386 and x86-64 Options.
@emph{Xstormy16 Options} @emph{Xstormy16 Options}
@gccoptlist{-msim} @gccoptlist{-msim}
@ -1964,7 +1961,7 @@ Some cases of unnamed fields in structures and unions are only
accepted with this option. @xref{Unnamed Fields,,Unnamed struct/union accepted with this option. @xref{Unnamed Fields,,Unnamed struct/union
fields within structs/unions}, for details. fields within structs/unions}, for details.
Note that this option is off for all targets but i?86 and x86_64 Note that this option is off for all targets but x86
targets using ms-abi. targets using ms-abi.
@item -fplan9-extensions @item -fplan9-extensions
@ -11955,8 +11952,8 @@ platform.
* GNU/Linux Options:: * GNU/Linux Options::
* H8/300 Options:: * H8/300 Options::
* HPPA Options:: * HPPA Options::
* i386 and x86-64 Options:: * x86 Options::
* i386 and x86-64 Windows Options:: * x86 Windows Options::
* IA-64 Options:: * IA-64 Options::
* LM32 Options:: * LM32 Options::
* M32C Options:: * M32C Options::
@ -11992,7 +11989,6 @@ platform.
* Visium Options:: * Visium Options::
* VMS Options:: * VMS Options::
* VxWorks Options:: * VxWorks Options::
* x86-64 Options::
* Xstormy16 Options:: * Xstormy16 Options::
* Xtensa Options:: * Xtensa Options::
* zSeries Options:: * zSeries Options::
@ -15365,15 +15361,11 @@ under HP-UX@. This option sets flags for both the preprocessor and
linker. linker.
@end table @end table
@node i386 and x86-64 Options @node x86 Options
@subsection Intel 386 and AMD x86-64 Options @subsection x86 Options
@cindex i386 Options @cindex x86 Options
@cindex x86-64 Options
@cindex Intel 386 Options
@cindex AMD x86-64 Options
These @samp{-m} options are defined for the i386 and x86-64 family of These @samp{-m} options are defined for the x86 family of computers.
computers:
@table @gcctabopt @table @gcctabopt
@ -15644,7 +15636,7 @@ The temporary results are computed in 80-bit precision instead of the precision
specified by the type, resulting in slightly different results compared to most specified by the type, resulting in slightly different results compared to most
of other chips. See @option{-ffloat-store} for more detailed description. of other chips. See @option{-ffloat-store} for more detailed description.
This is the default choice for i386 compiler. This is the default choice for x86-32 targets.
@item sse @item sse
Use scalar floating-point instructions present in the SSE instruction set. Use scalar floating-point instructions present in the SSE instruction set.
@ -15656,7 +15648,7 @@ extended-precision arithmetic are still done using 387. A later version, presen
only in Pentium 4 and AMD x86-64 chips, supports double-precision only in Pentium 4 and AMD x86-64 chips, supports double-precision
arithmetic too. arithmetic too.
For the i386 compiler, you must use @option{-march=@var{cpu-type}}, @option{-msse} For the x86-32 compiler, you must use @option{-march=@var{cpu-type}}, @option{-msse}
or @option{-msse2} switches to enable SSE extensions and make this option or @option{-msse2} switches to enable SSE extensions and make this option
effective. For the x86-64 compiler, these extensions are enabled by default. effective. For the x86-64 compiler, these extensions are enabled by default.
@ -15741,7 +15733,7 @@ On x86-64, @option{-malign-double} is enabled by default.
@strong{Warning:} if you use the @option{-malign-double} switch, @strong{Warning:} if you use the @option{-malign-double} switch,
structures containing the above types are aligned differently than structures containing the above types are aligned differently than
the published application binary interface specifications for the 386 the published application binary interface specifications for the x86-32
and are not binary compatible with structures in code compiled and are not binary compatible with structures in code compiled
without that switch. without that switch.
@ -15749,7 +15741,7 @@ without that switch.
@itemx -m128bit-long-double @itemx -m128bit-long-double
@opindex m96bit-long-double @opindex m96bit-long-double
@opindex m128bit-long-double @opindex m128bit-long-double
These switches control the size of @code{long double} type. The i386 These switches control the size of @code{long double} type. The x86-32
application binary interface specifies the size to be 96 bits, application binary interface specifies the size to be 96 bits,
so @option{-m96bit-long-double} is the default in 32-bit mode. so @option{-m96bit-long-double} is the default in 32-bit mode.
@ -15892,7 +15884,7 @@ when this option is used to set the precision to less than extended precision.
@item -mstackrealign @item -mstackrealign
@opindex mstackrealign @opindex mstackrealign
Realign the stack at entry. On the Intel x86, the @option{-mstackrealign} Realign the stack at entry. On the x86, the @option{-mstackrealign}
option generates an alternate prologue and epilogue that realigns the option generates an alternate prologue and epilogue that realigns the
run-time stack if necessary. This supports mixing legacy codes that keep run-time stack if necessary. This supports mixing legacy codes that keep
4-byte stack alignment with modern codes that keep 16-byte stack alignment for 4-byte stack alignment with modern codes that keep 16-byte stack alignment for
@ -16064,7 +16056,7 @@ extended instruction sets. Each has a corresponding @option{-mno-} option
to disable use of these instructions. to disable use of these instructions.
These extensions are also available as built-in functions: see These extensions are also available as built-in functions: see
@ref{X86 Built-in Functions}, for details of the functions enabled and @ref{x86 Built-in Functions}, for details of the functions enabled and
disabled by these switches. disabled by these switches.
To generate SSE/SSE2 instructions automatically from floating-point To generate SSE/SSE2 instructions automatically from floating-point
@ -16505,9 +16497,10 @@ and x32 environments. It is the default address mode for 32-bit and
x32 environments. x32 environments.
@end table @end table
@node i386 and x86-64 Windows Options @node x86 Windows Options
@subsection i386 and x86-64 Windows Options @subsection x86 Windows Options
@cindex i386 and x86-64 Windows Options @cindex x86 Windows Options
@cindex Windows Options for x86
These additional options are available for Microsoft Windows targets: These additional options are available for Microsoft Windows targets:
@ -16583,7 +16576,7 @@ GCC detects that the target assembler found during configuration
supports the feature. supports the feature.
@end table @end table
See also under @ref{i386 and x86-64 Options} for standard options. See also under @ref{x86 Options} for standard options.
@node IA-64 Options @node IA-64 Options
@subsection IA-64 Options @subsection IA-64 Options
@ -22857,12 +22850,6 @@ Disable lazy binding of function calls. This option is the default and
is defined for compatibility with Diab. is defined for compatibility with Diab.
@end table @end table
@node x86-64 Options
@subsection x86-64 Options
@cindex x86-64 options
These are listed under @xref{i386 and x86-64 Options}.
@node Xstormy16 Options @node Xstormy16 Options
@subsection Xstormy16 Options @subsection Xstormy16 Options
@cindex Xstormy16 Options @cindex Xstormy16 Options
@ -23287,10 +23274,10 @@ the GOT size for the linked executable exceeds a machine-specific
maximum size, you get an error message from the linker indicating that maximum size, you get an error message from the linker indicating that
@option{-fpic} does not work; in that case, recompile with @option{-fPIC} @option{-fpic} does not work; in that case, recompile with @option{-fPIC}
instead. (These maximums are 8k on the SPARC and 32k instead. (These maximums are 8k on the SPARC and 32k
on the m68k and RS/6000. The 386 has no such limit.) on the m68k and RS/6000. The x86 has no such limit.)
Position-independent code requires special support, and therefore works Position-independent code requires special support, and therefore works
only on certain machines. For the 386, GCC supports PIC for System V only on certain machines. For the x86, GCC supports PIC for System V
but not for the Sun 386i. Code generated for the IBM RS/6000 is always but not for the Sun 386i. Code generated for the IBM RS/6000 is always
position-independent. position-independent.
@ -23528,7 +23515,7 @@ The resulting program has a discontiguous stack which can only
overflow if the program is unable to allocate any more memory. This overflow if the program is unable to allocate any more memory. This
is most useful when running threaded programs, as it is no longer is most useful when running threaded programs, as it is no longer
necessary to calculate a good stack size to use for each thread. This necessary to calculate a good stack size to use for each thread. This
is currently only implemented for the i386 and x86_64 back ends running is currently only implemented for the x86 targets running
GNU/Linux. GNU/Linux.
When code compiled with @option{-fsplit-stack} calls code compiled When code compiled with @option{-fsplit-stack} calls code compiled

View File

@ -2306,7 +2306,7 @@ Vector constant that is all zeros.
@end table @end table
@item Intel 386---@file{config/i386/constraints.md} @item x86 family---@file{config/i386/constraints.md}
@table @code @table @code
@item R @item R
Legacy register---the eight integer registers available on all Legacy register---the eight integer registers available on all
@ -2360,7 +2360,7 @@ unsigned long long rdtsc (void)
@} @}
@end smallexample @end smallexample
This is not correct on x86_64 as it would allocate tick in either @code{ax} This is not correct on x86-64 as it would allocate tick in either @code{ax}
or @code{dx}. You have to use the following variant instead: or @code{dx}. You have to use the following variant instead:
@smallexample @smallexample