8.28.5 VAX Branch Improvement
Certain pseudo opcodes are permitted. They are for branch
instructions. They expand to the shortest branch instruction that
reaches the target. Generally these mnemonics are made by
substituting `j' for `b' at the start of a DEC mnemonic.
This feature is included both for compatibility and to help
compilers. If you do not need this feature, avoid these
opcodes. Here are the mnemonics, and the code they can expand into.
jbsb
- `Jsb' is already an instruction mnemonic, so we chose `jbsb'.
- (byte displacement)
- bsbb ...
- (word displacement)
- bsbw ...
- (long displacement)
- jsb ...
jbr
jr
- Unconditional branch.
- (byte displacement)
- brb ...
- (word displacement)
- brw ...
- (long displacement)
- jmp ...
jCOND
- COND may be any one of the conditional branches
neq
, nequ
, eql
, eqlu
, gtr
,
geq
, lss
, gtru
, lequ
, vc
, vs
,
gequ
, cc
, lssu
, cs
.
COND may also be one of the bit tests
bs
, bc
, bss
, bcs
, bsc
, bcc
,
bssi
, bcci
, lbs
, lbc
.
NOTCOND is the opposite condition to COND.
- (byte displacement)
- bCOND ...
- (word displacement)
- bNOTCOND foo ; brw ... ; foo:
- (long displacement)
- bNOTCOND foo ; jmp ... ; foo:
jacbX
- X may be one of
b d f g h l w
.
- (word displacement)
- OPCODE ...
- (long displacement)
| OPCODE ..., foo ;
brb bar ;
foo: jmp ... ;
bar:
|
jaobYYY
- YYY may be one of
lss leq
.
jsobZZZ
- ZZZ may be one of
geq gtr
.
- (byte displacement)
- OPCODE ...
- (word displacement)
| OPCODE ..., foo ;
brb bar ;
foo: brw destination ;
bar:
|
- (long displacement)
| OPCODE ..., foo ;
brb bar ;
foo: jmp destination ;
bar:
|
aobleq
aoblss
sobgeq
sobgtr
- (byte displacement)
- OPCODE ...
- (word displacement)
| OPCODE ..., foo ;
brb bar ;
foo: brw destination ;
bar:
|
- (long displacement)
| OPCODE ..., foo ;
brb bar ;
foo: jmp destination ;
bar:
|
This document was generated
by Antti-Juhani Kaijanaho on May, 2 2005
using texi2html