aboutsummaryrefslogtreecommitdiff
path: root/gcc/invoke.texi
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2001-01-02 20:24:27 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2001-01-02 19:24:27 +0000
commit2b589241d86c1f2e68d5f2dbceb60f19050bd199 (patch)
tree01c459d5b2a2b1fe5b1b1822b129430cdc4b1578 /gcc/invoke.texi
parent9e1458e7d76099127b7991efb60ec26952318e4b (diff)
downloadgcc-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.texi22
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