diff options
author | Jan Hubicka <jh@suse.cz> | 2001-01-02 20:24:27 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2001-01-02 19:24:27 +0000 |
commit | 2b589241d86c1f2e68d5f2dbceb60f19050bd199 (patch) | |
tree | 01c459d5b2a2b1fe5b1b1822b129430cdc4b1578 /gcc/invoke.texi | |
parent | 9e1458e7d76099127b7991efb60ec26952318e4b (diff) | |
download | gcc-2b589241d86c1f2e68d5f2dbceb60f19050bd199.zip gcc-2b589241d86c1f2e68d5f2dbceb60f19050bd199.tar.gz gcc-2b589241d86c1f2e68d5f2dbceb60f19050bd199.tar.bz2 |
i386.c (ix86_split_to_parts): Return number of part required; handle TFmodes.
* i386.c (ix86_split_to_parts): Return number of part required;
handle TFmodes.
(print_operand, ix86_expand_branch, ix86_expand_fp_movcc): Handle
TFmodes.
(ix86_split_long_move): Use number of part returned
by ix86_split_to_parts
* i386.h (MASK_128BIT_LONG_DOUBLE, TARGET_128BIT_LONG_DOUBLE):
New macros.
(TARGET_SWITCHES): Add 128bit-long-double and 96bit-long-double
(LONG_DOUBLE_TYPE_SIZE): Change from constant.
(MAX_LONG_DOUBLE_TYPE_SIZE): New macro.
(INTEL_EXTENDED_IEEE_FORMAT): Likewise.
(ALIGN_MODE_128): Add TFmode.
(IS_STACK_MODE): Likewise.
(HARD_REGNO_NREGS): TFmode needs 3 registers.
(HARD_REGNO_OK): Support TFmodes.
(ASM_OUTPUT_LONG_DOUBLE): Handle TFmodes.
* i386.md (scheduler definitions): Use memory operand to determine
fst/fld instructions; use mode attribute to determine real mode of
the instruction.
(*tf): New patterns, expanders and splitters; based on XFmode patterns.
* invoke.texi (128bit-long-double, 96bit-long-double): Document.
From-SVN: r38633
Diffstat (limited to 'gcc/invoke.texi')
-rw-r--r-- | gcc/invoke.texi | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/gcc/invoke.texi b/gcc/invoke.texi index 4d37992..c8cdb1a 100644 --- a/gcc/invoke.texi +++ b/gcc/invoke.texi @@ -446,7 +446,8 @@ in the following sections. -malign-jumps=@var{num} -malign-loops=@var{num} -malign-functions=@var{num} -mpreferred-stack-boundary=@var{num} -mthreads -mno-align-stringops -minline-all-stringops --mpush-args -maccumulate-outgoing-args +-mpush-args -maccumulate-outgoing-args -m128bit-long-double +-m96bit-long-double @emph{HPPA Options} -march=@var{architecture type} @@ -6344,9 +6345,22 @@ boundary. Aligning @code{double} variables on a two word boundary will produce code that runs somewhat faster on a @samp{Pentium} at the expense of more memory. -@strong{Warning:} if you use the @samp{-malign-double} switch, -structures containing the above types will be aligned differently than -the published application binary interface specifications for the 386. +@item -m128bit-long-double +@itemx -m128bit-long-double +Control the size of @code{long double} type. i386 application binary interface +specify the size to be 12 bytes, while modern architectures (Pentium and newer) +preffer @code{long double} aligned to 8 or 16 byte boundary. This is +impossible to reach with 12 byte long doubles in the array accesses. + +@strong{Warning:} if you use the @samp{-m128bit-long-double} switch, the +structures and arrays containing @code{long double} will change their size as +well as function calling convention for function taking @code{long double} +will be modified. + +@item -m96bit-long-double +@itemx -m96bit-long-double +Set the size of @code{long double} to 96 bytes as requires by the i386 +application binary interface. This is the default. @item -msvr3-shlib @itemx -mno-svr3-shlib |