Next: s390 Operand Modifier, Previous: s390 Formats, Up: s390 Syntax
A specific bit pattern can have multiple mnemonics, for example
the bit pattern `0xa7000000' has the mnemonics `tmh' and
`tmlh'. In addition, there are a number of mnemonics recognized by
as
that are not present in the Principles of Operation.
These are the short forms of the branch instructions, where the condition
code mask operand is encoded in the mnemonic. This is relevant for the
branch instructions, the compare and branch instructions, and the
compare and trap instructions.
For the branch instructions there are 20 condition code strings that can be used as part of the mnemonic in place of a mask operand in the instruction format:
instruction | short form
|
---|---|
bcr M1,R2 | b<m>r R2
|
bc M1,D2(X2,B2) | b<m> D2(X2,B2)
|
brc M1,I2 | j<m> I2
|
brcl M1,I2 | jg<m> I2
|
In the mnemonic for a branch instruction the condition code string <m> can be any of the following:
o | jump on overflow / if ones
|
h | jump on A high
|
p | jump on plus
|
nle | jump on not low or equal
|
l | jump on A low
|
m | jump on minus
|
nhe | jump on not high or equal
|
lh | jump on low or high
|
ne | jump on A not equal B
|
nz | jump on not zero / if not zeros
|
e | jump on A equal B
|
z | jump on zero / if zeroes
|
nlh | jump on not low or high
|
he | jump on high or equal
|
nl | jump on A not low
|
nm | jump on not minus / if not mixed
|
le | jump on low or equal
|
nh | jump on A not high
|
np | jump on not plus
|
no | jump on not overflow / if not ones
|
For the compare and branch, and compare and trap instructions there are 12 condition code strings that can be used as part of the mnemonic in place of a mask operand in the instruction format:
instruction | short form
|
---|---|
crb R1,R2,M3,D4(B4) | crb<m> R1,R2,D4(B4)
|
cgrb R1,R2,M3,D4(B4) | cgrb<m> R1,R2,D4(B4)
|
crj R1,R2,M3,I4 | crj<m> R1,R2,I4
|
cgrj R1,R2,M3,I4 | cgrj<m> R1,R2,I4
|
cib R1,I2,M3,D4(B4) | cib<m> R1,I2,D4(B4)
|
cgib R1,I2,M3,D4(B4) | cgib<m> R1,I2,D4(B4)
|
cij R1,I2,M3,I4 | cij<m> R1,I2,I4
|
cgij R1,I2,M3,I4 | cgij<m> R1,I2,I4
|
crt R1,R2,M3 | crt<m> R1,R2
|
cgrt R1,R2,M3 | cgrt<m> R1,R2
|
cit R1,I2,M3 | cit<m> R1,I2
|
cgit R1,I2,M3 | cgit<m> R1,I2
|
clrb R1,R2,M3,D4(B4) | clrb<m> R1,R2,D4(B4)
|
clgrb R1,R2,M3,D4(B4) | clgrb<m> R1,R2,D4(B4)
|
clrj R1,R2,M3,I4 | clrj<m> R1,R2,I4
|
clgrj R1,R2,M3,I4 | clgrj<m> R1,R2,I4
|
clib R1,I2,M3,D4(B4) | clib<m> R1,I2,D4(B4)
|
clgib R1,I2,M3,D4(B4) | clgib<m> R1,I2,D4(B4)
|
clij R1,I2,M3,I4 | clij<m> R1,I2,I4
|
clgij R1,I2,M3,I4 | clgij<m> R1,I2,I4
|
clrt R1,R2,M3 | clrt<m> R1,R2
|
clgrt R1,R2,M3 | clgrt<m> R1,R2
|
clfit R1,I2,M3 | clfit<m> R1,I2
|
clgit R1,I2,M3 | clgit<m> R1,I2
|
In the mnemonic for a compare and branch and compare and trap instruction the condition code string <m> can be any of the following:
h | jump on A high
|
nle | jump on not low or equal
|
l | jump on A low
|
nhe | jump on not high or equal
|
ne | jump on A not equal B
|
lh | jump on low or high
|
e | jump on A equal B
|
nlh | jump on not low or high
|
nl | jump on A not low
|
he | jump on high or equal
|
nh | jump on A not high
|
le | jump on low or equal
|