diff options
author | Adam Nemet <anemet@caviumnetworks.com> | 2008-04-28 17:06:28 +0000 |
---|---|---|
committer | Adam Nemet <anemet@caviumnetworks.com> | 2008-04-28 17:06:28 +0000 |
commit | 037b32b9ffec4d7e68c596a0835dee8b0d26818f (patch) | |
tree | ba79374ad0f0edeb74676fa2092aa0a84f848f49 /gas/doc | |
parent | 39c5c16818bedead39379bb4558775905c7e60d7 (diff) | |
download | gdb-037b32b9ffec4d7e68c596a0835dee8b0d26818f.zip gdb-037b32b9ffec4d7e68c596a0835dee8b0d26818f.tar.gz gdb-037b32b9ffec4d7e68c596a0835dee8b0d26818f.tar.bz2 |
* config/tc-mips.c (file_mips_soft_float, file_mips_single_float):
New statics.
(OPTION_ELF_BASE): Make room for new option macros.
(OPTION_SOFT_FLOAT, OPTION_HARD_FLOAT, OPTION_SINGLE_FLOAT,
OPTION_DOUBLE_FLOAT): New option macros.
(md_longopts): Add msoft-float, mhard-float, msingle-float and
mdouble-float.
(md_parse_option): Handle OPTION_SINGLE_FLOAT,
OPTION_DOUBLE_FLOAT, OPTION_SOFT_FLOAT and OPTION_HARD_FLOAT.
(md_show_usage): Add -msoft-float, -mhard-float, -msingle-float
and -mdouble-float.
(struct mips_set_options): New fields soft_float and single_float.
(mips_opts): Initialized them. Add comment for each field
initializer.
(mips_after_parse_args): Set them based on file_mips_soft_float
and file_mips_single_float.
(s_mipsset): Add support for `.set softfloat', `.set hardfloat',
`.set singlefloat' and `.set doublefloat'.
(is_opcode_valid): New function to invoke OPCODE_IS_MEMBER.
Handle single-float and soft-float instructions here.
(macro_build, mips_ip): Use it instead of OPCODE_IS_MEMBER.
(is_opcode_valid_16): New function.
(mips16_ip): Use it instead of OPCODE_IS_MEMBER.
(macro) <M_LDC1_AB, M_SDC1_AB, M_L_DOB, M_L_DAB, M_S_DAB,
M_S_DOB>: Remove special-casing of r4650.
* doc/c-mips.texi (-march=): Add Octeon.
(MIPS Opts): Document -msoft-float and -mhard-float. Document
-msingle-float and -mdouble-float.
(MIPS floating-point): New section. Document `.set softfloat' and
`.set hardfloat'. Document `.set singlefloat' and `.set
doublefloat'.
Diffstat (limited to 'gas/doc')
-rw-r--r-- | gas/doc/c-mips.texi | 42 |
1 files changed, 39 insertions, 3 deletions
diff --git a/gas/doc/c-mips.texi b/gas/doc/c-mips.texi index e6fe033..136d2d2 100644 --- a/gas/doc/c-mips.texi +++ b/gas/doc/c-mips.texi @@ -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 @@ -272,7 +273,8 @@ m4kp, sb1, sb1a, loongson2e, -loongson2f +loongson2f, +octeon @end quotation For compatibility reasons, @samp{@var{n}x} and @samp{@var{b}fx} are @@ -301,10 +303,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 @@ -579,3 +592,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 softfloat} +@kindex @code{.set hardfloat} +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. |