]> oss.titaniummirror.com Git - msp430-binutils.git/blobdiff - gas/doc/c-mips.texi
Merge commit 'upstream/2.20'
[msp430-binutils.git] / gas / doc / c-mips.texi
index 9f197268b016f59652c4f04ddbe3af980e166d97..9ca7ebf5c970980a2871f16ab70816f06a3b8a49 100644 (file)
@@ -1,5 +1,5 @@
 @c Copyright 1991, 1992, 1993, 1994, 1995, 1997, 1999, 2000, 2001,
-@c 2002, 2003, 2004
+@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
 @c Free Software Foundation, Inc.
 @c This is part of the GAS manual.
 @c For copying conditions, see the file as.texinfo.
@@ -32,6 +32,7 @@ Assembly Language Programming'' in the same work.
 * MIPS option stack::  Directives to save and restore options
 * MIPS ASE instruction generation overrides:: Directives to control
                        generation of MIPS ASE instructions
+* MIPS floating-point:: Directives to override floating-point options
 @end menu
 
 @node MIPS Opts
@@ -181,6 +182,10 @@ all problems in hand-written assembler code.
 @itemx -no-mfix-vr4130
 Insert nops to work around the VR4130 @samp{mflo}/@samp{mfhi} errata.
 
+@item -mfix-24k
+@itemx -no-mfix-24k
+Insert nops to work around the 24K @samp{eret}/@samp{deret} errata.
+
 @item -m4010
 @itemx -no-m4010
 Generate code for the LSI @sc{r4010} chip.  This tells the assembler to
@@ -238,6 +243,8 @@ rm7000,
 rm9000,
 10000,
 12000,
+14000,
+16000,
 4kc,
 4km,
 4kp,
@@ -265,12 +272,20 @@ m4kp,
 74kf,
 74kf1_1,
 74kf3_2,
+1004kc,
+1004kf2_1,
+1004kf,
+1004kf1_1,
 5kc,
 5kf,
 20kc,
 25kf,
 sb1,
-sb1a
+sb1a,
+loongson2e,
+loongson2f,
+octeon,
+xlr
 @end quotation
 
 For compatibility reasons, @samp{@var{n}x} and @samp{@var{b}fx} are
@@ -299,10 +314,21 @@ other assemblers, which use it to turn off C style preprocessing.  With
 @sc{gnu} @code{@value{AS}}, there is no need for @samp{-nocpp}, because the
 @sc{gnu} assembler itself never runs the C preprocessor.
 
+@item -msoft-float
+@itemx -mhard-float
+Disable or enable floating-point instructions.  Note that by default
+floating-point instructions are always allowed even with CPU targets
+that don't have support for these instructions.
+
+@item -msingle-float
+@itemx -mdouble-float
+Disable or enable double-precision floating-point operations.  Note
+that by default double-precision floating-point operations are always
+allowed even with CPU targets that don't have support for these
+operations.
+
 @item --construct-floats
 @itemx --no-construct-floats
-@cindex --construct-floats
-@cindex --no-construct-floats
 The @code{--no-construct-floats} option disables the construction of
 double width floating point constants by loading the two halves of the
 value into the two single width floating point registers that make up
@@ -505,6 +531,32 @@ when loading the address of a label which precedes instructions,
 @code{@value{AS}} automatically adds 1 to the value, so that jumping to
 the loaded address will do the right thing.
 
+@kindex @code{.global}
+The @code{.global} and @code{.globl} directives supported by
+@code{@value{AS}} will by default mark the symbol as pointing to a
+region of data not code.  This means that, for example, any
+instructions following such a symbol will not be disassembled by
+@code{objdump} as it will regard them as data.  To change this
+behaviour an optional section name can be placed after the symbol name
+in the @code{.global} directive.  If this section exists and is known
+to be a code section, then the symbol will be marked as poiting at
+code not data.  Ie the syntax for the directive is:
+
+  @code{.global @var{symbol}[ @var{section}][, @var{symbol}[ @var{section}]] ...},
+
+Here is a short example:
+
+@example
+        .global foo .text, bar, baz .data
+foo:
+        nop
+bar:
+        .word 0x0
+baz:
+        .word 0x1
+        
+@end example
+
 @node MIPS option stack
 @section Directives to save and restore options
 
@@ -577,3 +629,26 @@ in the assembly.  The @code{.set nomt} directive prevents MT
 instructions from being accepted.
 
 Traditional @sc{mips} assemblers do not support these directives.
+
+@node MIPS floating-point
+@section Directives to override floating-point options
+
+@cindex Disable floating-point instructions
+@kindex @code{.set softfloat}
+@kindex @code{.set hardfloat}
+The directives @code{.set softfloat} and @code{.set hardfloat} provide
+finer control of disabling and enabling float-point instructions.
+These directives always override the default (that hard-float
+instructions are accepted) or the command-line options
+(@samp{-msoft-float} and @samp{-mhard-float}).
+
+@cindex Disable single-precision floating-point operations
+@kindex @code{.set singlefloat}
+@kindex @code{.set doublefloat}
+The directives @code{.set singlefloat} and @code{.set doublefloat}
+provide finer control of disabling and enabling double-precision
+float-point operations.  These directives always override the default
+(that double-precision operations are accepted) or the command-line
+options (@samp{-msingle-float} and @samp{-mdouble-float}).
+
+Traditional @sc{mips} assemblers do not support these directives.