D30V-Chars - Using as
Description: Using as

Next: D30V-Guarded, Previous: D30V-Subs, Up: D30V-Syntax

##### 9.9.2.3 Special Characters

A semicolon (‘`;`’) can be used anywhere on a line to start a comment that extends to the end of the line.

If a ‘`#`’ 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 (see Comments) or a preprocessor control command (see Preprocessing).

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 ‘`-O`’ option.

To specify the executing order, use the following symbols:

‘`->`’
  Sequential with instruction on the left first.
‘`<-`’
  Sequential with instruction on the right first.
‘`||`’
  Parallel

The D30V syntax allows either one instruction per line, one instruction per line with the execution symbol, or two instructions per line. For example

`abs r2,r3 -> abs r4,r5`
  Execute these sequentially. The instruction on the right is in the right container and is executed second.
`abs r2,r3 <- abs r4,r5`
  Execute these reverse-sequentially. The instruction on the right is in the right container, and is executed first.
`abs r2,r3 || abs r4,r5`
  Execute these in parallel.
`ldw r2,@(r3,r4) ||`
`mulx r6,r8,r9`
  Two-line format. Execute these in parallel.
`mulx a0,r8,r9`
`stw r2,@(r3,r4)`
  Two-line format. Execute these sequentially unless ‘`-O`’ option is used. If the ‘`-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 ‘`stw`’ instruction in left container and the ‘`mulx`’ instruction in the right container.
`stw r2,@(r3,r4) ->`
`mulx a0,r8,r9`
  Two-line format. Execute the ‘`stw`’ instruction followed by the ‘`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.
`stw r2,@(r3,r4) <-`
`mulx a0,r8,r9`
  Same as previous example, except that the ‘`mulx`’ instruction is executed before the ‘`stw`’ instruction.

Since ‘`$`’ has no special meaning, you may use it in symbol names.