X-Git-Url: https://oss.titaniummirror.com/gitweb?p=msp430-binutils.git;a=blobdiff_plain;f=gas%2Fdoc%2Fc-mips.texi;fp=gas%2Fdoc%2Fc-mips.texi;h=9ca7ebf5c970980a2871f16ab70816f06a3b8a49;hp=9f197268b016f59652c4f04ddbe3af980e166d97;hb=d5da4f291af551c0b8b79e1d4a9b173d60e5c10e;hpb=7b5ea4fcdf2819e070665ab5610f8b48e3867c10 diff --git a/gas/doc/c-mips.texi b/gas/doc/c-mips.texi index 9f19726..9ca7ebf 100644 --- a/gas/doc/c-mips.texi +++ b/gas/doc/c-mips.texi @@ -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.