[SystemZ] Add support for additional branch extended mnemonics

Added support for extended mnemonics for the following branch instructions and
load/store-on-condition opcodes:

BR, LOCR, LOCGR, LOC, LOCG, STOC, STOCG

Phabricator: http://reviews.llvm.org/D19729

Committing on behalf of Zhan Liau

llvm-svn: 269106
This commit is contained in:
Kit Barton 2016-05-10 20:11:24 +00:00
parent 7860c9bbf4
commit 02d455768e
3 changed files with 130 additions and 15 deletions

View File

@ -165,7 +165,7 @@ defm AsmC : CompareBranches<imm32zx4, "", "$M3, ">;
// Define AsmParser mnemonics for each general condition-code mask
// (integer or floating-point)
multiclass CondExtendedMnemonic<bits<4> ccmask, string name> {
multiclass CondExtendedMnemonicA<bits<4> ccmask, string name> {
let isBranch = 1, isTerminator = 1, R1 = ccmask in {
def J : InstRI<0xA74, (outs), (ins brtarget16:$I2),
"j"##name##"\t$I2", []>;
@ -180,20 +180,27 @@ multiclass CondExtendedMnemonic<bits<4> ccmask, string name> {
def STOC : FixedCondStoreRSY<"stoc"##name, 0xEBF3, GR32, ccmask, 4>;
def STOCG : FixedCondStoreRSY<"stocg"##name, 0xEBE3, GR64, ccmask, 8>;
}
defm AsmO : CondExtendedMnemonic<1, "o">;
defm AsmH : CondExtendedMnemonic<2, "h">;
defm AsmNLE : CondExtendedMnemonic<3, "nle">;
defm AsmL : CondExtendedMnemonic<4, "l">;
defm AsmNHE : CondExtendedMnemonic<5, "nhe">;
defm AsmLH : CondExtendedMnemonic<6, "lh">;
defm AsmNE : CondExtendedMnemonic<7, "ne">;
defm AsmE : CondExtendedMnemonic<8, "e">;
defm AsmNLH : CondExtendedMnemonic<9, "nlh">;
defm AsmHE : CondExtendedMnemonic<10, "he">;
defm AsmNL : CondExtendedMnemonic<11, "nl">;
defm AsmLE : CondExtendedMnemonic<12, "le">;
defm AsmNH : CondExtendedMnemonic<13, "nh">;
defm AsmNO : CondExtendedMnemonic<14, "no">;
multiclass CondExtendedMnemonic<bits<4> ccmask, string name1, string name2>
: CondExtendedMnemonicA<ccmask, name1> {
let isAsmParserOnly = 1 in
defm Alt : CondExtendedMnemonicA<ccmask, name2>;
}
defm AsmO : CondExtendedMnemonicA<1, "o">;
defm AsmH : CondExtendedMnemonic<2, "h", "p">;
defm AsmNLE : CondExtendedMnemonicA<3, "nle">;
defm AsmL : CondExtendedMnemonic<4, "l", "m">;
defm AsmNHE : CondExtendedMnemonicA<5, "nhe">;
defm AsmLH : CondExtendedMnemonicA<6, "lh">;
defm AsmNE : CondExtendedMnemonic<7, "ne", "nz">;
defm AsmE : CondExtendedMnemonic<8, "e", "z">;
defm AsmNLH : CondExtendedMnemonicA<9, "nlh">;
defm AsmHE : CondExtendedMnemonicA<10, "he">;
defm AsmNL : CondExtendedMnemonic<11, "nl", "nm">;
defm AsmLE : CondExtendedMnemonicA<12, "le">;
defm AsmNH : CondExtendedMnemonic<13, "nh", "np">;
defm AsmNO : CondExtendedMnemonicA<14, "no">;
// Define AsmParser mnemonics for each integer condition-code mask.
// This is like the list above, except that condition 3 is not possible

View File

@ -825,32 +825,44 @@
#CHECK: loco %r1, 2(%r3) # encoding: [0xeb,0x11,0x30,0x02,0x00,0xf2]
#CHECK: loch %r1, 2(%r3) # encoding: [0xeb,0x12,0x30,0x02,0x00,0xf2]
#CHECK: locp %r1, 2(%r3) # encoding: [0xeb,0x12,0x30,0x02,0x00,0xf2]
#CHECK: locnle %r1, 2(%r3) # encoding: [0xeb,0x13,0x30,0x02,0x00,0xf2]
#CHECK: locl %r1, 2(%r3) # encoding: [0xeb,0x14,0x30,0x02,0x00,0xf2]
#CHECK: locm %r1, 2(%r3) # encoding: [0xeb,0x14,0x30,0x02,0x00,0xf2]
#CHECK: locnhe %r1, 2(%r3) # encoding: [0xeb,0x15,0x30,0x02,0x00,0xf2]
#CHECK: loclh %r1, 2(%r3) # encoding: [0xeb,0x16,0x30,0x02,0x00,0xf2]
#CHECK: locne %r1, 2(%r3) # encoding: [0xeb,0x17,0x30,0x02,0x00,0xf2]
#CHECK: locnz %r1, 2(%r3) # encoding: [0xeb,0x17,0x30,0x02,0x00,0xf2]
#CHECK: loce %r1, 2(%r3) # encoding: [0xeb,0x18,0x30,0x02,0x00,0xf2]
#CHECK: locz %r1, 2(%r3) # encoding: [0xeb,0x18,0x30,0x02,0x00,0xf2]
#CHECK: locnlh %r1, 2(%r3) # encoding: [0xeb,0x19,0x30,0x02,0x00,0xf2]
#CHECK: loche %r1, 2(%r3) # encoding: [0xeb,0x1a,0x30,0x02,0x00,0xf2]
#CHECK: locnl %r1, 2(%r3) # encoding: [0xeb,0x1b,0x30,0x02,0x00,0xf2]
#CHECK: locnm %r1, 2(%r3) # encoding: [0xeb,0x1b,0x30,0x02,0x00,0xf2]
#CHECK: locle %r1, 2(%r3) # encoding: [0xeb,0x1c,0x30,0x02,0x00,0xf2]
#CHECK: locnh %r1, 2(%r3) # encoding: [0xeb,0x1d,0x30,0x02,0x00,0xf2]
#CHECK: locnp %r1, 2(%r3) # encoding: [0xeb,0x1d,0x30,0x02,0x00,0xf2]
#CHECK: locno %r1, 2(%r3) # encoding: [0xeb,0x1e,0x30,0x02,0x00,0xf2]
loco %r1,2(%r3)
loch %r1,2(%r3)
locp %r1,2(%r3)
locnle %r1,2(%r3)
locl %r1,2(%r3)
locm %r1,2(%r3)
locnhe %r1,2(%r3)
loclh %r1,2(%r3)
locne %r1,2(%r3)
locnz %r1,2(%r3)
loce %r1,2(%r3)
locz %r1,2(%r3)
locnlh %r1,2(%r3)
loche %r1,2(%r3)
locnl %r1,2(%r3)
locnm %r1,2(%r3)
locle %r1,2(%r3)
locnh %r1,2(%r3)
locnp %r1,2(%r3)
locno %r1,2(%r3)
#CHECK: locg %r0, 0, 0 # encoding: [0xeb,0x00,0x00,0x00,0x00,0xe2]
@ -873,32 +885,44 @@
#CHECK: locgo %r1, 2(%r3) # encoding: [0xeb,0x11,0x30,0x02,0x00,0xe2]
#CHECK: locgh %r1, 2(%r3) # encoding: [0xeb,0x12,0x30,0x02,0x00,0xe2]
#CHECK: locgp %r1, 2(%r3) # encoding: [0xeb,0x12,0x30,0x02,0x00,0xe2]
#CHECK: locgnle %r1, 2(%r3) # encoding: [0xeb,0x13,0x30,0x02,0x00,0xe2]
#CHECK: locgl %r1, 2(%r3) # encoding: [0xeb,0x14,0x30,0x02,0x00,0xe2]
#CHECK: locgm %r1, 2(%r3) # encoding: [0xeb,0x14,0x30,0x02,0x00,0xe2]
#CHECK: locgnhe %r1, 2(%r3) # encoding: [0xeb,0x15,0x30,0x02,0x00,0xe2]
#CHECK: locglh %r1, 2(%r3) # encoding: [0xeb,0x16,0x30,0x02,0x00,0xe2]
#CHECK: locgne %r1, 2(%r3) # encoding: [0xeb,0x17,0x30,0x02,0x00,0xe2]
#CHECK: locgnz %r1, 2(%r3) # encoding: [0xeb,0x17,0x30,0x02,0x00,0xe2]
#CHECK: locge %r1, 2(%r3) # encoding: [0xeb,0x18,0x30,0x02,0x00,0xe2]
#CHECK: locgz %r1, 2(%r3) # encoding: [0xeb,0x18,0x30,0x02,0x00,0xe2]
#CHECK: locgnlh %r1, 2(%r3) # encoding: [0xeb,0x19,0x30,0x02,0x00,0xe2]
#CHECK: locghe %r1, 2(%r3) # encoding: [0xeb,0x1a,0x30,0x02,0x00,0xe2]
#CHECK: locgnl %r1, 2(%r3) # encoding: [0xeb,0x1b,0x30,0x02,0x00,0xe2]
#CHECK: locgnm %r1, 2(%r3) # encoding: [0xeb,0x1b,0x30,0x02,0x00,0xe2]
#CHECK: locgle %r1, 2(%r3) # encoding: [0xeb,0x1c,0x30,0x02,0x00,0xe2]
#CHECK: locgnh %r1, 2(%r3) # encoding: [0xeb,0x1d,0x30,0x02,0x00,0xe2]
#CHECK: locgnp %r1, 2(%r3) # encoding: [0xeb,0x1d,0x30,0x02,0x00,0xe2]
#CHECK: locgno %r1, 2(%r3) # encoding: [0xeb,0x1e,0x30,0x02,0x00,0xe2]
locgo %r1,2(%r3)
locgh %r1,2(%r3)
locgp %r1,2(%r3)
locgnle %r1,2(%r3)
locgl %r1,2(%r3)
locgm %r1,2(%r3)
locgnhe %r1,2(%r3)
locglh %r1,2(%r3)
locgne %r1,2(%r3)
locgnz %r1,2(%r3)
locge %r1,2(%r3)
locgz %r1,2(%r3)
locgnlh %r1,2(%r3)
locghe %r1,2(%r3)
locgnl %r1,2(%r3)
locgnm %r1,2(%r3)
locgle %r1,2(%r3)
locgnh %r1,2(%r3)
locgnp %r1,2(%r3)
locgno %r1,2(%r3)
#CHECK: locgr %r1, %r2, 0 # encoding: [0xb9,0xe2,0x00,0x12]
@ -909,32 +933,44 @@
#CHECK: locgro %r1, %r3 # encoding: [0xb9,0xe2,0x10,0x13]
#CHECK: locgrh %r1, %r3 # encoding: [0xb9,0xe2,0x20,0x13]
#CHECK: locgrp %r1, %r3 # encoding: [0xb9,0xe2,0x20,0x13]
#CHECK: locgrnle %r1, %r3 # encoding: [0xb9,0xe2,0x30,0x13]
#CHECK: locgrl %r1, %r3 # encoding: [0xb9,0xe2,0x40,0x13]
#CHECK: locgrm %r1, %r3 # encoding: [0xb9,0xe2,0x40,0x13]
#CHECK: locgrnhe %r1, %r3 # encoding: [0xb9,0xe2,0x50,0x13]
#CHECK: locgrlh %r1, %r3 # encoding: [0xb9,0xe2,0x60,0x13]
#CHECK: locgrne %r1, %r3 # encoding: [0xb9,0xe2,0x70,0x13]
#CHECK: locgrnz %r1, %r3 # encoding: [0xb9,0xe2,0x70,0x13]
#CHECK: locgre %r1, %r3 # encoding: [0xb9,0xe2,0x80,0x13]
#CHECK: locgrz %r1, %r3 # encoding: [0xb9,0xe2,0x80,0x13]
#CHECK: locgrnlh %r1, %r3 # encoding: [0xb9,0xe2,0x90,0x13]
#CHECK: locgrhe %r1, %r3 # encoding: [0xb9,0xe2,0xa0,0x13]
#CHECK: locgrnl %r1, %r3 # encoding: [0xb9,0xe2,0xb0,0x13]
#CHECK: locgrnm %r1, %r3 # encoding: [0xb9,0xe2,0xb0,0x13]
#CHECK: locgrle %r1, %r3 # encoding: [0xb9,0xe2,0xc0,0x13]
#CHECK: locgrnh %r1, %r3 # encoding: [0xb9,0xe2,0xd0,0x13]
#CHECK: locgrnp %r1, %r3 # encoding: [0xb9,0xe2,0xd0,0x13]
#CHECK: locgrno %r1, %r3 # encoding: [0xb9,0xe2,0xe0,0x13]
locgro %r1,%r3
locgrh %r1,%r3
locgrp %r1,%r3
locgrnle %r1,%r3
locgrl %r1,%r3
locgrm %r1,%r3
locgrnhe %r1,%r3
locgrlh %r1,%r3
locgrne %r1,%r3
locgrnz %r1,%r3
locgre %r1,%r3
locgrz %r1,%r3
locgrnlh %r1,%r3
locgrhe %r1,%r3
locgrnl %r1,%r3
locgrnm %r1,%r3
locgrle %r1,%r3
locgrnh %r1,%r3
locgrnp %r1,%r3
locgrno %r1,%r3
#CHECK: locr %r1, %r2, 0 # encoding: [0xb9,0xf2,0x00,0x12]
@ -945,32 +981,44 @@
#CHECK: locro %r1, %r3 # encoding: [0xb9,0xf2,0x10,0x13]
#CHECK: locrh %r1, %r3 # encoding: [0xb9,0xf2,0x20,0x13]
#CHECK: locrp %r1, %r3 # encoding: [0xb9,0xf2,0x20,0x13]
#CHECK: locrnle %r1, %r3 # encoding: [0xb9,0xf2,0x30,0x13]
#CHECK: locrl %r1, %r3 # encoding: [0xb9,0xf2,0x40,0x13]
#CHECK: locrm %r1, %r3 # encoding: [0xb9,0xf2,0x40,0x13]
#CHECK: locrnhe %r1, %r3 # encoding: [0xb9,0xf2,0x50,0x13]
#CHECK: locrlh %r1, %r3 # encoding: [0xb9,0xf2,0x60,0x13]
#CHECK: locrne %r1, %r3 # encoding: [0xb9,0xf2,0x70,0x13]
#CHECK: locrnz %r1, %r3 # encoding: [0xb9,0xf2,0x70,0x13]
#CHECK: locre %r1, %r3 # encoding: [0xb9,0xf2,0x80,0x13]
#CHECK: locrz %r1, %r3 # encoding: [0xb9,0xf2,0x80,0x13]
#CHECK: locrnlh %r1, %r3 # encoding: [0xb9,0xf2,0x90,0x13]
#CHECK: locrhe %r1, %r3 # encoding: [0xb9,0xf2,0xa0,0x13]
#CHECK: locrnl %r1, %r3 # encoding: [0xb9,0xf2,0xb0,0x13]
#CHECK: locrnm %r1, %r3 # encoding: [0xb9,0xf2,0xb0,0x13]
#CHECK: locrle %r1, %r3 # encoding: [0xb9,0xf2,0xc0,0x13]
#CHECK: locrnh %r1, %r3 # encoding: [0xb9,0xf2,0xd0,0x13]
#CHECK: locrnp %r1, %r3 # encoding: [0xb9,0xf2,0xd0,0x13]
#CHECK: locrno %r1, %r3 # encoding: [0xb9,0xf2,0xe0,0x13]
locro %r1,%r3
locrh %r1,%r3
locrp %r1,%r3
locrnle %r1,%r3
locrl %r1,%r3
locrm %r1,%r3
locrnhe %r1,%r3
locrlh %r1,%r3
locrne %r1,%r3
locrnz %r1,%r3
locre %r1,%r3
locrz %r1,%r3
locrnlh %r1,%r3
locrhe %r1,%r3
locrnl %r1,%r3
locrnm %r1,%r3
locrle %r1,%r3
locrnh %r1,%r3
locrnp %r1,%r3
locrno %r1,%r3
#CHECK: ngrk %r0, %r0, %r0 # encoding: [0xb9,0xe4,0x00,0x00]
@ -1275,32 +1323,44 @@
#CHECK: stoco %r1, 2(%r3) # encoding: [0xeb,0x11,0x30,0x02,0x00,0xf3]
#CHECK: stoch %r1, 2(%r3) # encoding: [0xeb,0x12,0x30,0x02,0x00,0xf3]
#CHECK: stocp %r1, 2(%r3) # encoding: [0xeb,0x12,0x30,0x02,0x00,0xf3]
#CHECK: stocnle %r1, 2(%r3) # encoding: [0xeb,0x13,0x30,0x02,0x00,0xf3]
#CHECK: stocl %r1, 2(%r3) # encoding: [0xeb,0x14,0x30,0x02,0x00,0xf3]
#CHECK: stocm %r1, 2(%r3) # encoding: [0xeb,0x14,0x30,0x02,0x00,0xf3]
#CHECK: stocnhe %r1, 2(%r3) # encoding: [0xeb,0x15,0x30,0x02,0x00,0xf3]
#CHECK: stoclh %r1, 2(%r3) # encoding: [0xeb,0x16,0x30,0x02,0x00,0xf3]
#CHECK: stocne %r1, 2(%r3) # encoding: [0xeb,0x17,0x30,0x02,0x00,0xf3]
#CHECK: stocnz %r1, 2(%r3) # encoding: [0xeb,0x17,0x30,0x02,0x00,0xf3]
#CHECK: stoce %r1, 2(%r3) # encoding: [0xeb,0x18,0x30,0x02,0x00,0xf3]
#CHECK: stocz %r1, 2(%r3) # encoding: [0xeb,0x18,0x30,0x02,0x00,0xf3]
#CHECK: stocnlh %r1, 2(%r3) # encoding: [0xeb,0x19,0x30,0x02,0x00,0xf3]
#CHECK: stoche %r1, 2(%r3) # encoding: [0xeb,0x1a,0x30,0x02,0x00,0xf3]
#CHECK: stocnl %r1, 2(%r3) # encoding: [0xeb,0x1b,0x30,0x02,0x00,0xf3]
#CHECK: stocnm %r1, 2(%r3) # encoding: [0xeb,0x1b,0x30,0x02,0x00,0xf3]
#CHECK: stocle %r1, 2(%r3) # encoding: [0xeb,0x1c,0x30,0x02,0x00,0xf3]
#CHECK: stocnh %r1, 2(%r3) # encoding: [0xeb,0x1d,0x30,0x02,0x00,0xf3]
#CHECK: stocnp %r1, 2(%r3) # encoding: [0xeb,0x1d,0x30,0x02,0x00,0xf3]
#CHECK: stocno %r1, 2(%r3) # encoding: [0xeb,0x1e,0x30,0x02,0x00,0xf3]
stoco %r1,2(%r3)
stoch %r1,2(%r3)
stocp %r1,2(%r3)
stocnle %r1,2(%r3)
stocl %r1,2(%r3)
stocm %r1,2(%r3)
stocnhe %r1,2(%r3)
stoclh %r1,2(%r3)
stocne %r1,2(%r3)
stocnz %r1,2(%r3)
stoce %r1,2(%r3)
stocz %r1,2(%r3)
stocnlh %r1,2(%r3)
stoche %r1,2(%r3)
stocnl %r1,2(%r3)
stocnm %r1,2(%r3)
stocle %r1,2(%r3)
stocnh %r1,2(%r3)
stocnp %r1,2(%r3)
stocno %r1,2(%r3)
#CHECK: stocg %r0, 0, 0 # encoding: [0xeb,0x00,0x00,0x00,0x00,0xe3]
@ -1323,32 +1383,44 @@
#CHECK: stocgo %r1, 2(%r3) # encoding: [0xeb,0x11,0x30,0x02,0x00,0xe3]
#CHECK: stocgh %r1, 2(%r3) # encoding: [0xeb,0x12,0x30,0x02,0x00,0xe3]
#CHECK: stocgp %r1, 2(%r3) # encoding: [0xeb,0x12,0x30,0x02,0x00,0xe3]
#CHECK: stocgnle %r1, 2(%r3) # encoding: [0xeb,0x13,0x30,0x02,0x00,0xe3]
#CHECK: stocgl %r1, 2(%r3) # encoding: [0xeb,0x14,0x30,0x02,0x00,0xe3]
#CHECK: stocgm %r1, 2(%r3) # encoding: [0xeb,0x14,0x30,0x02,0x00,0xe3]
#CHECK: stocgnhe %r1, 2(%r3) # encoding: [0xeb,0x15,0x30,0x02,0x00,0xe3]
#CHECK: stocglh %r1, 2(%r3) # encoding: [0xeb,0x16,0x30,0x02,0x00,0xe3]
#CHECK: stocgne %r1, 2(%r3) # encoding: [0xeb,0x17,0x30,0x02,0x00,0xe3]
#CHECK: stocgnz %r1, 2(%r3) # encoding: [0xeb,0x17,0x30,0x02,0x00,0xe3]
#CHECK: stocge %r1, 2(%r3) # encoding: [0xeb,0x18,0x30,0x02,0x00,0xe3]
#CHECK: stocgz %r1, 2(%r3) # encoding: [0xeb,0x18,0x30,0x02,0x00,0xe3]
#CHECK: stocgnlh %r1, 2(%r3) # encoding: [0xeb,0x19,0x30,0x02,0x00,0xe3]
#CHECK: stocghe %r1, 2(%r3) # encoding: [0xeb,0x1a,0x30,0x02,0x00,0xe3]
#CHECK: stocgnl %r1, 2(%r3) # encoding: [0xeb,0x1b,0x30,0x02,0x00,0xe3]
#CHECK: stocgnm %r1, 2(%r3) # encoding: [0xeb,0x1b,0x30,0x02,0x00,0xe3]
#CHECK: stocgle %r1, 2(%r3) # encoding: [0xeb,0x1c,0x30,0x02,0x00,0xe3]
#CHECK: stocgnh %r1, 2(%r3) # encoding: [0xeb,0x1d,0x30,0x02,0x00,0xe3]
#CHECK: stocgnp %r1, 2(%r3) # encoding: [0xeb,0x1d,0x30,0x02,0x00,0xe3]
#CHECK: stocgno %r1, 2(%r3) # encoding: [0xeb,0x1e,0x30,0x02,0x00,0xe3]
stocgo %r1,2(%r3)
stocgh %r1,2(%r3)
stocgp %r1,2(%r3)
stocgnle %r1,2(%r3)
stocgl %r1,2(%r3)
stocgm %r1,2(%r3)
stocgnhe %r1,2(%r3)
stocglh %r1,2(%r3)
stocgne %r1,2(%r3)
stocgnz %r1,2(%r3)
stocge %r1,2(%r3)
stocgz %r1,2(%r3)
stocgnlh %r1,2(%r3)
stocghe %r1,2(%r3)
stocgnl %r1,2(%r3)
stocgnm %r1,2(%r3)
stocgle %r1,2(%r3)
stocgnh %r1,2(%r3)
stocgnp %r1,2(%r3)
stocgno %r1,2(%r3)
#CHECK: xgrk %r0, %r0, %r0 # encoding: [0xb9,0xe7,0x00,0x00]

View File

@ -740,9 +740,12 @@
#CHECK: brc 2, foo # encoding: [0xa7,0x24,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
#CHECK: jh foo # encoding: [0xa7,0x24,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
#CHECK: jp foo # encoding: [0xa7,0x24,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
brc 2, foo
jh foo
jp foo
#CHECK: brc 3, foo # encoding: [0xa7,0x34,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
@ -754,9 +757,12 @@
#CHECK: brc 4, foo # encoding: [0xa7,0x44,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
#CHECK: jl foo # encoding: [0xa7,0x44,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
#CHECK: jm foo # encoding: [0xa7,0x44,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
brc 4, foo
jl foo
jm foo
#CHECK: brc 5, foo # encoding: [0xa7,0x54,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
@ -775,16 +781,22 @@
#CHECK: brc 7, foo # encoding: [0xa7,0x74,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
#CHECK: jne foo # encoding: [0xa7,0x74,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
#CHECK: jnz foo # encoding: [0xa7,0x74,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
brc 7, foo
jne foo
jnz foo
#CHECK: brc 8, foo # encoding: [0xa7,0x84,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
#CHECK: je foo # encoding: [0xa7,0x84,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
#CHECK: jz foo # encoding: [0xa7,0x84,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
brc 8, foo
je foo
jz foo
#CHECK: brc 9, foo # encoding: [0xa7,0x94,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
@ -803,9 +815,12 @@
#CHECK: brc 11, foo # encoding: [0xa7,0xb4,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
#CHECK: jnl foo # encoding: [0xa7,0xb4,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
#CHECK: jnm foo # encoding: [0xa7,0xb4,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
brc 11, foo
jnl foo
jnm foo
#CHECK: brc 12, foo # encoding: [0xa7,0xc4,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
@ -817,9 +832,12 @@
#CHECK: brc 13, foo # encoding: [0xa7,0xd4,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
#CHECK: jnh foo # encoding: [0xa7,0xd4,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
#CHECK: jnp foo # encoding: [0xa7,0xd4,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
brc 13, foo
jnh foo
jnp foo
#CHECK: brc 14, foo # encoding: [0xa7,0xe4,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
@ -990,9 +1008,12 @@
#CHECK: brcl 2, foo # encoding: [0xc0,0x24,A,A,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
#CHECK: jgh foo # encoding: [0xc0,0x24,A,A,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
#CHECK: jgp foo # encoding: [0xc0,0x24,A,A,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
brcl 2, foo
jgh foo
jgp foo
#CHECK: brcl 3, foo # encoding: [0xc0,0x34,A,A,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
@ -1004,9 +1025,12 @@
#CHECK: brcl 4, foo # encoding: [0xc0,0x44,A,A,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
#CHECK: jgl foo # encoding: [0xc0,0x44,A,A,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
#CHECK: jgm foo # encoding: [0xc0,0x44,A,A,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
brcl 4, foo
jgl foo
jgm foo
#CHECK: brcl 5, foo # encoding: [0xc0,0x54,A,A,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
@ -1025,16 +1049,22 @@
#CHECK: brcl 7, foo # encoding: [0xc0,0x74,A,A,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
#CHECK: jgne foo # encoding: [0xc0,0x74,A,A,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
#CHECK: jgnz foo # encoding: [0xc0,0x74,A,A,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
brcl 7, foo
jgne foo
jgnz foo
#CHECK: brcl 8, foo # encoding: [0xc0,0x84,A,A,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
#CHECK: jge foo # encoding: [0xc0,0x84,A,A,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
#CHECK: jgz foo # encoding: [0xc0,0x84,A,A,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
brcl 8, foo
jge foo
jgz foo
#CHECK: brcl 9, foo # encoding: [0xc0,0x94,A,A,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
@ -1053,9 +1083,12 @@
#CHECK: brcl 11, foo # encoding: [0xc0,0xb4,A,A,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
#CHECK: jgnl foo # encoding: [0xc0,0xb4,A,A,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
#CHECK: jgnm foo # encoding: [0xc0,0xb4,A,A,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
brcl 11, foo
jgnl foo
jgnm foo
#CHECK: brcl 12, foo # encoding: [0xc0,0xc4,A,A,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
@ -1067,9 +1100,12 @@
#CHECK: brcl 13, foo # encoding: [0xc0,0xd4,A,A,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
#CHECK: jgnh foo # encoding: [0xc0,0xd4,A,A,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
#CHECK: jgnp foo # encoding: [0xc0,0xd4,A,A,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
brcl 13, foo
jgnh foo
jgnp foo
#CHECK: brcl 14, foo # encoding: [0xc0,0xe4,A,A,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL