commit
7acf73f2b0
|
@ -113,12 +113,13 @@ exclusive.
|
||||||
% compilers and toplevel
|
% compilers and toplevel
|
||||||
\input{unified-options.tex}
|
\input{unified-options.tex}
|
||||||
|
|
||||||
\paragraph{Options for the IA32 architecture}
|
\paragraph{Options for the 32-bit x86 architecture}
|
||||||
The IA32 code generator (Intel Pentium, AMD Athlon) supports the
|
The 32-bit code generator for Intel/AMD x86 processors ("i386"
|
||||||
|
architecture) supports the
|
||||||
following additional option:
|
following additional option:
|
||||||
|
|
||||||
\begin{options}
|
\begin{options}
|
||||||
\item["-ffast-math"] Use the IA32 instructions to compute
|
\item["-ffast-math"] Use the processor instructions to compute
|
||||||
trigonometric and exponential functions, instead of calling the
|
trigonometric and exponential functions, instead of calling the
|
||||||
corresponding library routines. The functions affected are:
|
corresponding library routines. The functions affected are:
|
||||||
"atan", "atan2", "cos", "log", "log10", "sin", "sqrt" and "tan".
|
"atan", "atan2", "cos", "log", "log10", "sin", "sqrt" and "tan".
|
||||||
|
@ -128,9 +129,9 @@ trigonometric operations "cos", "sin", "tan" have their range reduced to
|
||||||
$[-2^{64}, 2^{64}]$.
|
$[-2^{64}, 2^{64}]$.
|
||||||
\end{options}
|
\end{options}
|
||||||
|
|
||||||
\paragraph{Options for the AMD64 architecture}
|
\paragraph{Options for the 64-bit x86 architecture}
|
||||||
The AMD64 code generator (64-bit versions of Intel Pentium and AMD
|
The 64-bit code generator for Intel/AMD x86 processors ("amd64"
|
||||||
Athlon) supports the following additional options:
|
architecture) supports the following additional options:
|
||||||
|
|
||||||
\begin{options}
|
\begin{options}
|
||||||
\item["-fPIC"] Generate position-independent machine code. This is
|
\item["-fPIC"] Generate position-independent machine code. This is
|
||||||
|
@ -219,8 +220,8 @@ until the next heap allocation.
|
||||||
beneficial, but produces floating-point results that differ slightly
|
beneficial, but produces floating-point results that differ slightly
|
||||||
from those produced by the bytecode interpreter.
|
from those produced by the bytecode interpreter.
|
||||||
|
|
||||||
\item On IA32 processors only (Intel and AMD x86 processors in 32-bit
|
\item On Intel/AMD x86 processors in 32-bit mode,
|
||||||
mode), some intermediate results in floating-point computations are
|
some intermediate results in floating-point computations are
|
||||||
kept in extended precision rather than being rounded to double
|
kept in extended precision rather than being rounded to double
|
||||||
precision like the bytecode compiler always does. Floating-point
|
precision like the bytecode compiler always does. Floating-point
|
||||||
results can therefore differ slightly between bytecode and native code.
|
results can therefore differ slightly between bytecode and native code.
|
||||||
|
|
|
@ -393,8 +393,13 @@ libraries and options on the command line.
|
||||||
|
|
||||||
\nat{%
|
\nat{%
|
||||||
\item["-nodynlink"]
|
\item["-nodynlink"]
|
||||||
Allow the compiler to use some optimizations that are valid only for code
|
Allow the compiler to use some optimizations that are valid only for
|
||||||
that is never dynlinked.
|
code that is statically linked to produce a non-relocatable
|
||||||
|
executable. The generated code cannot be linked to produce a shared
|
||||||
|
library nor a position-independent executable (PIE). Many operating
|
||||||
|
systems produce PIEs by default, causing errors when linking code
|
||||||
|
compiled with "-nodynlink". Either do not use "-nodynlink" or pass
|
||||||
|
the option "-ccopt -no-pie" at link-time.
|
||||||
}%nat
|
}%nat
|
||||||
|
|
||||||
\item["-nolabels"]
|
\item["-nolabels"]
|
||||||
|
|
Loading…
Reference in New Issue