as: s390 Aliases
9.40.3.5 Instruction Aliases
............................
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