* sim-info.c (sim_info): Be verbose when either VERBOSE or STATE_VERBOSE_P.
[deliverable/binutils-gdb.git] / gas / doc / c-m32r.texi
CommitLineData
ef582182 1@c Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc.
ee73be40
NC
2@c This is part of the GAS manual.
3@c For copying conditions, see the file as.texinfo.
4@ifset GENERIC
5@page
6@node M32R-Dependent
7@chapter M32R Dependent Features
8@end ifset
9@ifclear GENERIC
10@node Machine Dependencies
11@chapter M32R Dependent Features
12@end ifclear
13
ef582182
NC
14@c start-sanitize-m32rx
15
ee73be40
NC
16@cindex M32R support
17@menu
18* M32R-Opts:: M32R Options
ef582182 19* M32R-Warnings:: M32R Warnings
ee73be40
NC
20@end menu
21
22@node M32R-Opts
23@section M32R Options
24
25@cindex options, M32R
26@cindex M32R options
ef582182 27
ee73be40 28The Mitsubishi M32R version of @code{@value{AS}} has a few machine
ef582182 29dependent options:
ee73be40 30
ef582182
NC
31@table @code
32@item --m32rx
33@cindex @samp{--m32rx} option, M32RX
34@cindex architecture options, M32RX
ee73be40
NC
35@cindex M32R architecture options
36@code{@value{AS}} can assemble code for several different members of the
37Mitsubishi M32R family. Normally the default is to assemble code for
38the M32R microprocessor. This option may be used to change the default
39to the M32RX microprocessor, which adds some more instructions to the
ef582182
NC
40basic M32R instruction set, and some additional parameters to some of
41the original instructions.
42
43@item --warn-explicit-parallel-conflicts
44@cindex @samp{--warn-explicit-parallel-conflicts} option, M32RX
45Instructs @code{@value{AS}} to produce warning messages when
46questionable parallel instructions are encountered. This option is
47enabled by default, but @code{@value{GCC}} disables it when it invokes
48@code{@value{AS}} directly. Questionable instructions are those whoes
49behaviour would be different if they were executed sequentially. For
50example the code fragment @samp{mv r1, r2 || mv r3, r1} produces a
51different result from @samp{mv r1, r2 \n mv r3, r1} since the former
52moves r1 into r3 and then r2 into r1, whereas the later moves r2 into r1
53and r3.
54
55@item --no-warn-explicit-parallel-conflicts
56@cindex @samp{--no-warn-explicit-parallel-conflicts} option, M32RX
57Instructs @code{@value{AS}} not to produce warning messages when
58questionable parallel instructions are encountered.
59
60@end table
61
62@node M32R-Warnings
63@section M32R Warnings
64
65@cindex warnings, M32R
66@cindex M32R warnings
67
68There are several warning and error messages that can be produced by
69@code{@value{AS}} which are specific to the M32R:
70
71@table @code
72
8e7a5a04 73@item output of 1st instruction is the same as an input to 2nd instruction - is this intentional ?
ef582182
NC
74This message is only produced if warnings for explicit parallel
75conflicts have been enabled. It indicates that the assembler has
76encountered a parallel instruction in which the destination register of
77the left hand instruction is used as an input register in the right hand
78instruction. For example in this code fragment
79@samp{mv r1, r2 || neg r3, r1} register r1 is the destination of the
80move instruction and the input to the neg instruction.
81
8e7a5a04 82@item output of 2nd instruction is the same as an input to 1st instruction - is this intentional ?
ef582182
NC
83This message is only produced if warnings for explicit parallel
84conflicts have been enabled. It indicates that the assembler has
85encountered a parallel instruction in which the destination register of
86the right hand instruction is used as an input register in the left hand
87instruction. For example in this code fragment
88@samp{mv r1, r2 || neg r2, r3} register r2 is the destination of the
89neg instruction and the input to the move instruction.
90
91@item instruction @samp{...} is for the M32RX only
92This message is produced when the assembler encounters an instruction
93which is only supported by the M32Rx processor, and the @samp{--m32rx}
94command line flag has not been specified to allow assembly of such
95instructions.
96
97@item only the NOP instruction can be issued in parallel on the m32r
98This message is produced when the assembler encounters a parallel
99instruction which does not involve a NOP instruction and the
100@samp{--m32rx} command line flag has not been specified. Only the M32Rx
101processor is able to execute two instructions in parallel.
102
103@item instruction @samp{...} cannot be executed in parallel.
104This message is produced when the assembler encounters a parallel
105instruction which is made up of one or two instructions which cannot be
106executed in parallel.
107
108@item Instructions share the same execution pipeline
109This message is produced when the assembler encounters a parallel
110instruction whoes components both use the same execution pipeline.
111
ef582182
NC
112@item Instructions write to the same destination register.
113This message is produced when the assembler encounters a parallel
114instruction where both components attempt to modify the same register.
8e7a5a04 115For example these code fragments will produce this message:
ef582182 116@samp{mv r1, r2 || neg r1, r3}
8e7a5a04
NC
117@samp{jl r0 || mv r14, r1}
118@samp{st r2, @@-r1 || mv r1, r3}
119@samp{mv r1, r2 || ld r0, @@r1+}
ee73be40 120
ef582182
NC
121@end table
122@c end-sanitize-m32rx
This page took 0.038501 seconds and 4 git commands to generate.