@c Copyright (C) 1997, 2011 Free Software Foundation, Inc.
@c This is part of the GAS manual.
@c For copying conditions, see the file as.texinfo.
@ifset GENERIC
@page
@node D30V-Dependent
@chapter D30V Dependent Features
@end ifset
@ifclear GENERIC
@node Machine Dependencies
@chapter D30V Dependent Features
@end ifclear

@cindex D30V support
@menu
* D30V-Opts::                   D30V Options
* D30V-Syntax::                 Syntax
* D30V-Float::                  Floating Point
* D30V-Opcodes::                Opcodes
@end menu

@node D30V-Opts
@section D30V Options
@cindex options, D30V
@cindex D30V options
The Mitsubishi D30V version of @code{@value{AS}} has a few machine
dependent options.

@table @samp
@item -O
The D30V can often execute two sub-instructions in parallel. When this option
is used, @code{@value{AS}} will attempt to optimize its output by detecting when
instructions can be executed in parallel.

@item -n
When this option is used, @code{@value{AS}} will issue a warning every
time it adds a nop instruction.

@item -N
When this option is used, @code{@value{AS}} will issue a warning if it
needs to insert a nop after a 32-bit multiply before a load or 16-bit
multiply instruction.
@end table

@node D30V-Syntax
@section Syntax
@cindex D30V syntax
@cindex syntax, D30V

The D30V syntax is based on the syntax in Mitsubishi's D30V architecture manual.
The differences are detailed below.

@menu
* D30V-Size::                 Size Modifiers
* D30V-Subs::                 Sub-Instructions
* D30V-Chars::                Special Characters
* D30V-Guarded::              Guarded Execution
* D30V-Regs::                 Register Names
* D30V-Addressing::           Addressing Modes
@end menu


@node D30V-Size
@subsection Size Modifiers
@cindex D30V size modifiers
@cindex size modifiers, D30V
The D30V version of @code{@value{AS}} uses the instruction names in the D30V
Architecture Manual.  However, the names in the manual are sometimes ambiguous.
There are instruction names that can assemble to a short or long form opcode.
How does the assembler pick the correct form?  @code{@value{AS}} will always pick the
smallest form if it can.  When dealing with a symbol that is not defined yet when a
line is being assembled, it will always use the long form.  If you need to force the
assembler to use either the short or long form of the instruction, you can append
either @samp{.s} (short) or @samp{.l} (long) to it.  For example, if you are writing
an assembly program and you want to do a branch to a symbol that is defined later
in your program, you can write @samp{bra.s foo}.
Objdump and GDB will always append @samp{.s} or @samp{.l} to instructions which
have both short and long forms.

@node D30V-Subs
@subsection Sub-Instructions
@cindex D30V sub-instructions
@cindex sub-instructions, D30V
The D30V assembler takes as input a series of instructions, either one-per-line,
or in the special two-per-line format described in the next section.  Some of these
instructions will be short-form or sub-instructions.  These sub-instructions can be packed
into a single instruction.  The assembler will do this automatically.  It will also detect
when it should not pack instructions.  For example, when a label is defined, the next
instruction will never be packaged with the previous one.  Whenever a branch and link
instruction is called, it will not be packaged with the next instruction so the return
address will be valid.  Nops are automatically inserted when necessary.

If you do not want the assembler automatically making these decisions, you can control
the packaging and execution type (parallel or sequential) with the special execution
symbols described in the next section.

@node D30V-Chars
@subsection Special Characters
@cindex line comment character, D30V
@cindex D30V line comment character
A semicolon (@samp{;}) can be used anywhere on a line to start a
comment that extends to the end of the line.

If a @samp{#} appears as the first character of a line, the whole line
is treated as a comment, but in this case the line could also be a
logical line number directive (@pxref{Comments}) or a preprocessor
control command (@pxref{Preprocessing}).

@cindex sub-instruction ordering, D30V
@cindex D30V sub-instruction ordering
Sub-instructions may be executed in order, in reverse-order, or in parallel.
Instructions listed in the standard one-per-line format will be executed
sequentially unless you use the @samp{-O} option.

To specify the executing order, use the following symbols:
@table @samp
@item ->
Sequential with instruction on the left first.

@item <-
Sequential with instruction on the right first.

@item ||
Parallel
@end table

The D30V syntax allows either one instruction per line, one instruction per line with
the execution symbol, or two instructions per line.  For example
@table @code
@item abs r2,r3 -> abs r4,r5
Execute these sequentially.  The instruction on the right is in the right
container and is executed second.

@item abs r2,r3 <- abs r4,r5
Execute these reverse-sequentially.  The instruction on the right is in the right
container, and is executed first.

@item abs r2,r3 || abs r4,r5
Execute these in parallel.

@item ldw r2,@@(r3,r4) ||
@itemx mulx r6,r8,r9
Two-line format. Execute these in parallel.

@item mulx a0,r8,r9
@itemx stw r2,@@(r3,r4)
Two-line format. Execute these sequentially unless @samp{-O} option is
used.  If the @samp{-O} option is used, the assembler will determine if
the instructions could be done in parallel (the above two instructions
can be done in parallel), and if so, emit them as parallel instructions.
The assembler will put them in the proper containers.  In the above
example, the assembler will put the @samp{stw} instruction in left
container and the @samp{mulx} instruction in the right container.

@item stw r2,@@(r3,r4) ->
@itemx mulx a0,r8,r9
Two-line format.  Execute the @samp{stw} instruction followed by the
@samp{mulx} instruction sequentially.  The first instruction goes in the
left container and the second instruction goes into right container.
The assembler will give an error if the machine ordering constraints are
violated.

@item stw r2,@@(r3,r4) <-
@itemx mulx a0,r8,r9
Same as previous example, except that the @samp{mulx} instruction is
executed before the @samp{stw} instruction.
@end table

@cindex symbol names, @samp{$} in
@cindex @code{$} in symbol names
Since @samp{$} has no special meaning, you may use it in symbol names.

@node D30V-Guarded
@subsection Guarded Execution
@cindex D30V Guarded Execution
@code{@value{AS}} supports the full range of guarded execution
directives for each instruction.  Just append the directive after the
instruction proper.  The directives are:

@table @samp
@item /tx
Execute the instruction if flag f0 is true.
@item /fx
Execute the instruction if flag f0 is false.
@item /xt
Execute the instruction if flag f1 is true.
@item /xf
Execute the instruction if flag f1 is false.
@item /tt
Execute the instruction if both flags f0 and f1 are true.
@item /tf
Execute the instruction if flag f0 is true and flag f1 is false.
@end table

@node D30V-Regs
@subsection Register Names
@cindex D30V registers
@cindex registers, D30V
You can use the predefined symbols @samp{r0} through @samp{r63} to refer
to the D30V registers.  You can also use @samp{sp} as an alias for
@samp{r63} and @samp{link} as an alias for @samp{r62}.  The accumulators
are @samp{a0} and @samp{a1}.

The D30V also has predefined symbols for these control registers and status bits:
@table @code
@item psw
Processor Status Word
@item bpsw
Backup Processor Status Word
@item pc
Program Counter
@item bpc
Backup Program Counter
@item rpt_c
Repeat Count
@item rpt_s
Repeat Start address
@item rpt_e
Repeat End address
@item mod_s
Modulo Start address
@item mod_e
Modulo End address
@item iba
Instruction Break Address
@item f0
Flag 0
@item f1
Flag 1
@item f2
Flag 2
@item f3
Flag 3
@item f4
Flag 4
@item f5
Flag 5
@item f6
Flag 6
@item f7
Flag 7
@item s
Same as flag 4 (saturation flag)
@item v
Same as flag 5 (overflow flag)
@item va
Same as flag 6 (sticky overflow flag)
@item c
Same as flag 7 (carry/borrow flag)
@item b
Same as flag 7 (carry/borrow flag)
@end table

@node D30V-Addressing
@subsection Addressing Modes
@cindex addressing modes, D30V
@cindex D30V addressing modes
@code{@value{AS}} understands the following addressing modes for the D30V.
@code{R@var{n}} in the following refers to any of the numbered
registers, but @emph{not} the control registers.
@table @code
@item R@var{n}
Register direct
@item @@R@var{n}
Register indirect
@item @@R@var{n}+
Register indirect with post-increment
@item @@R@var{n}-
Register indirect with post-decrement
@item @@-SP
Register indirect with pre-decrement
@item @@(@var{disp}, R@var{n})
Register indirect with displacement
@item @var{addr}
PC relative address (for branch or rep).
@item #@var{imm}
Immediate data (the @samp{#} is optional and ignored)
@end table

@node D30V-Float
@section Floating Point
@cindex floating point, D30V
@cindex D30V floating point
The D30V has no hardware floating point, but the @code{.float} and @code{.double}
directives generates @sc{ieee} floating-point numbers for compatibility
with other development tools.

@node D30V-Opcodes
@section Opcodes
@cindex D30V opcode summary
@cindex opcode summary, D30V
@cindex mnemonics, D30V
@cindex instruction summary, D30V
For detailed information on the D30V machine instruction set, see
@cite{D30V Architecture: A VLIW Microprocessor for Multimedia Applications}
(Mitsubishi Electric Corp.).
@code{@value{AS}} implements all the standard D30V opcodes.  The only changes are those
described in the section on size modifiers

