mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-24 18:44:20 +08:00
* doc/c-mips.texi (MIPS Opts): Updated list of -mNNNN and
-mcpu=NNNN flags.
This commit is contained in:
parent
de484a066b
commit
3b88ed2a72
@ -1,4 +1,4 @@
|
|||||||
@c Copyright (C) 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
|
@c Copyright (C) 1991, 92, 93, 94, 95, 1997 Free Software Foundation, Inc.
|
||||||
@c This is part of the GAS manual.
|
@c This is part of the GAS manual.
|
||||||
@c For copying conditions, see the file as.texinfo.
|
@c For copying conditions, see the file as.texinfo.
|
||||||
@ifset GENERIC
|
@ifset GENERIC
|
||||||
@ -24,6 +24,9 @@ Programming'' in the same work.
|
|||||||
* MIPS Object:: ECOFF object code
|
* MIPS Object:: ECOFF object code
|
||||||
* MIPS Stabs:: Directives for debugging information
|
* MIPS Stabs:: Directives for debugging information
|
||||||
* MIPS ISA:: Directives to override the ISA level
|
* MIPS ISA:: Directives to override the ISA level
|
||||||
|
* MIPS autoextend:: Directives for extending MIPS 16 bit instructions
|
||||||
|
* MIPS insn:: Directive to mark data as an instruction
|
||||||
|
* MIPS option stack:: Directives to save and restore options
|
||||||
@end menu
|
@end menu
|
||||||
|
|
||||||
@node MIPS Opts
|
@node MIPS Opts
|
||||||
@ -70,13 +73,6 @@ Generate code for the MIPS 16 processor. This is equivalent to putting
|
|||||||
@samp{.set mips16} at the start of the assembly file. @samp{-no-mips16}
|
@samp{.set mips16} at the start of the assembly file. @samp{-no-mips16}
|
||||||
turns off this option.
|
turns off this option.
|
||||||
|
|
||||||
@item -m4650
|
|
||||||
@itemx -no-m4650
|
|
||||||
Generate code for the MIPS @sc{r4650} chip. This tells the assembler to accept
|
|
||||||
the @samp{mad} and @samp{madu} instruction, and to not schedule @samp{nop}
|
|
||||||
instructions around accesses to the @samp{HI} and @samp{LO} registers.
|
|
||||||
@samp{-no-m4650} turns off this option.
|
|
||||||
|
|
||||||
@item -m4010
|
@item -m4010
|
||||||
@itemx -no-m4010
|
@itemx -no-m4010
|
||||||
Generate code for the LSI @sc{r4010} chip. This tells the assembler to
|
Generate code for the LSI @sc{r4010} chip. This tells the assembler to
|
||||||
@ -85,9 +81,86 @@ etc.), and to not schedule @samp{nop} instructions around accesses to
|
|||||||
the @samp{HI} and @samp{LO} registers. @samp{-no-m4010} turns off this
|
the @samp{HI} and @samp{LO} registers. @samp{-no-m4010} turns off this
|
||||||
option.
|
option.
|
||||||
|
|
||||||
@item -mcpu=@var{CPU}
|
@item -m4650
|
||||||
Generate code for a particular MIPS cpu. This has little effect on the
|
@itemx -no-m4650
|
||||||
assembler, but it is passed by @code{@value{GCC}}.
|
Generate code for the MIPS @sc{r4650} chip. This tells the assembler to accept
|
||||||
|
the @samp{mad} and @samp{madu} instruction, and to not schedule @samp{nop}
|
||||||
|
instructions around accesses to the @samp{HI} and @samp{LO} registers.
|
||||||
|
@samp{-no-m4650} turns off this option.
|
||||||
|
|
||||||
|
@c start-sanitize-tx19
|
||||||
|
@item -m1900
|
||||||
|
@itemx -no-m1900
|
||||||
|
@c end-sanitize-tx19
|
||||||
|
@itemx -m3900
|
||||||
|
@itemx -no-m3900
|
||||||
|
@itemx -m4100
|
||||||
|
@itemx -no-m4100
|
||||||
|
@c start-sanitize-vr4xxx
|
||||||
|
@itemx -m4121
|
||||||
|
@itemx -no-m4121
|
||||||
|
@c end-sanitize-vr4xxx
|
||||||
|
@c start-sanitize-4320
|
||||||
|
@itemx -m4320
|
||||||
|
@itemx -no-m4320
|
||||||
|
@c end-sanitize-4320
|
||||||
|
@c start-sanitize-tx49
|
||||||
|
@itemx -m4900
|
||||||
|
@itemx -no-m4900
|
||||||
|
@c end-sanitize-tx49
|
||||||
|
@c start-sanitize-cygnus
|
||||||
|
@itemx -m5400
|
||||||
|
@itemx -no-m5400
|
||||||
|
@c end-sanitize-cygnus
|
||||||
|
@c start-sanitize-r5900
|
||||||
|
@itemx -m5900
|
||||||
|
@itemx -no-m5900
|
||||||
|
@c end-sanitize-r5900
|
||||||
|
For each option @samp{-m@var{nnnn}}, generate code for the MIPS
|
||||||
|
@sc{r@var{nnnn}} chip. This tells the assembler to accept instructions
|
||||||
|
specific to that chip, and to schedule for that chip's hazards.
|
||||||
|
|
||||||
|
@item -mcpu=@var{cpu}
|
||||||
|
Generate code for a particular MIPS cpu. It is exactly equivalent to
|
||||||
|
@samp{-m@var{cpu}}, except that there are more value of @var{cpu}
|
||||||
|
understood. Valid @var{cpu} value are:
|
||||||
|
|
||||||
|
@quotation
|
||||||
|
@c start-sanitize-tx19
|
||||||
|
1900,
|
||||||
|
@c end-sanitize-tx19
|
||||||
|
2000,
|
||||||
|
3000,
|
||||||
|
3900,
|
||||||
|
4000,
|
||||||
|
4010,
|
||||||
|
4100,
|
||||||
|
@c start-sanitize-vr4xxx
|
||||||
|
4111,
|
||||||
|
4121,
|
||||||
|
@c end-sanitize-vr4xxx
|
||||||
|
4300,
|
||||||
|
@c start-sanitize-vr4320
|
||||||
|
4320,
|
||||||
|
@c end-sanitize-vr4320
|
||||||
|
4400,
|
||||||
|
4600,
|
||||||
|
4650,
|
||||||
|
@c start-sanitize-tx49
|
||||||
|
4900,
|
||||||
|
@c end-sanitize-tx49
|
||||||
|
5000,
|
||||||
|
@c start-sanitize-cygnus
|
||||||
|
5400,
|
||||||
|
@c end-sanitize-cygnus
|
||||||
|
@c start-sanitize-r5900
|
||||||
|
5900,
|
||||||
|
@c end-sanitize-r5900
|
||||||
|
6000,
|
||||||
|
8000,
|
||||||
|
10000
|
||||||
|
@end quotation
|
||||||
|
|
||||||
|
|
||||||
@cindex @code{-nocpp} ignored (MIPS)
|
@cindex @code{-nocpp} ignored (MIPS)
|
||||||
@item -nocpp
|
@item -nocpp
|
||||||
@ -181,3 +254,46 @@ in which it will assemble instructions for the MIPS 16 processor. Use
|
|||||||
@samp{.set nomips16} to return to normal 32 bit mode.
|
@samp{.set nomips16} to return to normal 32 bit mode.
|
||||||
|
|
||||||
Traditional @sc{mips} assemblers do not support this directive.
|
Traditional @sc{mips} assemblers do not support this directive.
|
||||||
|
|
||||||
|
@node MIPS autoextend
|
||||||
|
@section Directives for extending MIPS 16 bit instructions
|
||||||
|
|
||||||
|
@kindex @code{.set autoextend}
|
||||||
|
@kindex @code{.set noautoextend}
|
||||||
|
By default, MIPS 16 instructions are automatically extended to 32 bits
|
||||||
|
when necessary. The directive @samp{.set noautoextend} will turn this
|
||||||
|
off. When @samp{.set noautoextend} is in effect, any 32 bit instruction
|
||||||
|
must be explicitly extended with the @samp{.e} modifier (e.g.,
|
||||||
|
@samp{li.e $4,1000}). The directive @samp{.set autoextend} may be used
|
||||||
|
to once again automatically extend instructions when necessary.
|
||||||
|
|
||||||
|
This directive is only meaningful when in MIPS 16 mode. Traditional
|
||||||
|
@sc{mips} assemblers do not support this directive.
|
||||||
|
|
||||||
|
@node MIPS insn
|
||||||
|
@section Directive to mark data as an instruction
|
||||||
|
|
||||||
|
@kindex @code{.insn}
|
||||||
|
The @code{.insn} directive tells @code{@value{AS}} that the following
|
||||||
|
data is actually instructions. This makes a difference in MIPS 16 mode:
|
||||||
|
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.
|
||||||
|
|
||||||
|
@node MIPS option stack
|
||||||
|
@section Directives to save and restore options
|
||||||
|
|
||||||
|
@cindex MIPS option stack
|
||||||
|
@kindex @code{.set push}
|
||||||
|
@kindex @code{.set pop}
|
||||||
|
The directives @code{.set push} and @code{.set pop} may be used to save
|
||||||
|
and restore the current settings for all the options which are
|
||||||
|
controlled by @code{.set}. The @code{.set push} directive saves the
|
||||||
|
current settings on a stack. The @code{.set pop} directive pops the
|
||||||
|
stack and restores the settings.
|
||||||
|
|
||||||
|
These directives can be useful inside an macro which must change an
|
||||||
|
option such as the ISA level or instruction reordering but does not want
|
||||||
|
to change the state of the code which invoked the macro.
|
||||||
|
|
||||||
|
Traditional @sc{mips} assemblers do not support these directives.
|
||||||
|
Loading…
Reference in New Issue
Block a user