Author: Anirudh Prasad Date: 2020-12-02T08:25:31-05:00 New Revision: f03c21df7b845e2ffcef42f242764f36603fdbb4
URL: https://github.com/llvm/llvm-project/commit/f03c21df7b845e2ffcef42f242764f36603fdbb4 DIFF: https://github.com/llvm/llvm-project/commit/f03c21df7b845e2ffcef42f242764f36603fdbb4.diff LOG: [SystemZ] Adding extra extended mnemonics for SystemZ target This patch consists of the addition of some common additional extended mnemonics to the SystemZ target. - These are jnop, jct, jctg, jas, jasl, jxh, jxhg, jxle, jxleg, bru, brul, br*, br*l. - These mnemonics and the instructions they map to are defined here, Chapter 4 - Branching with extended mnemonic codes. - Except for jnop (which is a variant of brc 0, label), every other mnemonic is marked as a MnemonicAlias since there is already a "defined" instruction with the same encoding and/or condition mask values. - brc 0, label doesn't have a defined extended mnemonic, thus jnop is defined using as an InstAlias. Furthermore, the applyMnemonicAliases function is called in the overridden parseInstruction function in SystemZAsmParser.cpp to ensure any mnemonic aliases are applied before any further processing on the instruction is done. Reviewed By: uweigand Differential Revision: https://reviews.llvm.org/D92185 Added: Modified: llvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp llvm/lib/Target/SystemZ/SystemZInstrFormats.td llvm/lib/Target/SystemZ/SystemZInstrInfo.td llvm/test/MC/SystemZ/insn-bad.s llvm/test/MC/SystemZ/insn-good.s Removed: ################################################################################ diff --git a/llvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp b/llvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp index 8da460381783..2b815a366ccd 100644 --- a/llvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp +++ b/llvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp @@ -1322,6 +1322,11 @@ OperandMatchResultTy SystemZAsmParser::tryParseRegister(unsigned &RegNo, bool SystemZAsmParser::ParseInstruction(ParseInstructionInfo &Info, StringRef Name, SMLoc NameLoc, OperandVector &Operands) { + + // Apply mnemonic aliases first, before doing anything else, in + // case the target uses it. + applyMnemonicAliases(Name, getAvailableFeatures(), 0 /*VariantID*/); + Operands.push_back(SystemZOperand::createToken(Name, NameLoc)); // Read the remaining operands. diff --git a/llvm/lib/Target/SystemZ/SystemZInstrFormats.td b/llvm/lib/Target/SystemZ/SystemZInstrFormats.td index 4aac2eec655f..95e94c4c8e1c 100644 --- a/llvm/lib/Target/SystemZ/SystemZInstrFormats.td +++ b/llvm/lib/Target/SystemZ/SystemZInstrFormats.td @@ -1911,6 +1911,11 @@ class ICV<string name> !cast<CondVariant>("IntCondVariant"#name).suffix, !cast<CondVariant>("IntCondVariant"#name).alternate>; +// Defines a class that makes it easier to define +// a MnemonicAlias when CondVariant's are involved. +class MnemonicCondBranchAlias<CondVariant V, string from, string to> + : MnemonicAlias<!subst("#", V.suffix, from), !subst("#", V.suffix, to)>; + //===----------------------------------------------------------------------===// // Instruction definitions with semantics //===----------------------------------------------------------------------===// diff --git a/llvm/lib/Target/SystemZ/SystemZInstrInfo.td b/llvm/lib/Target/SystemZ/SystemZInstrInfo.td index d11404ed7c1b..c37e30556ddb 100644 --- a/llvm/lib/Target/SystemZ/SystemZInstrInfo.td +++ b/llvm/lib/Target/SystemZ/SystemZInstrInfo.td @@ -110,6 +110,12 @@ let isAsmParserOnly = 1, hasNoSchedulingInfo = 1, M1 = 0, XBD2 = 0 in def NOPR : InstAlias<"nopr\t$R", (BCRAsm 0, GR64:$R), 0>; def NOPR_bare : InstAlias<"nopr", (BCRAsm 0, R0D), 0>; +// An alias of BRC 0, label +def JNOP : InstAlias<"jnop\t$RI2", (BRCAsm 0, brtarget16:$RI2), 0>; + +// An alias of BRCL 0, label +def JGNOP : InstAlias<"jgnop\t$RI2", (BRCLAsm 0, brtarget32:$RI2), 0>; + // Fused compare-and-branch instructions. // // These instructions do not use or clobber the condition codes. @@ -2338,3 +2344,25 @@ defm : BlockLoadStore<anyextloadi32, i64, MVCSequence, NCSequence, OCSequence, XCSequence, 4>; defm : BlockLoadStore<load, i64, MVCSequence, NCSequence, OCSequence, XCSequence, 8>; + +//===----------------------------------------------------------------------===// +// Mnemonic Aliases +//===----------------------------------------------------------------------===// + +def JCT : MnemonicAlias<"jct", "brct">; +def JCTG : MnemonicAlias<"jctg", "brctg">; +def JAS : MnemonicAlias<"jas", "bras">; +def JASL : MnemonicAlias<"jasl", "brasl">; +def JXH : MnemonicAlias<"jxh", "brxh">; +def JXLE : MnemonicAlias<"jxle", "brxle">; +def JXHG : MnemonicAlias<"jxhg", "brxhg">; +def JXLEG : MnemonicAlias<"jxleg", "brxlg">; + +def BRU : MnemonicAlias<"bru", "j">; +def BRUL : MnemonicAlias<"brul", "jg">; + +foreach V = [ "E", "NE", "H", "NH", "L", "NL", "HE", "NHE", "LE", "NLE", + "Z", "NZ", "P", "NP", "M", "NM", "LH", "NLH", "O", "NO" ] in { + def BRUAsm#V : MnemonicCondBranchAlias <CV<V>, "br#", "j#">; + def BRULAsm#V : MnemonicCondBranchAlias <CV<V>, "br#l", "jg#">; +} diff --git a/llvm/test/MC/SystemZ/insn-bad.s b/llvm/test/MC/SystemZ/insn-bad.s index 59174067c4b2..4637a2f0dbc3 100644 --- a/llvm/test/MC/SystemZ/insn-bad.s +++ b/llvm/test/MC/SystemZ/insn-bad.s @@ -491,11 +491,23 @@ #CHECK: bras %r0, 1 #CHECK: error: offset out of range #CHECK: bras %r0, 0x10000 +#CHECK: error: offset out of range +#CHECK: jas %r0, -0x100002 +#CHECK: error: offset out of range +#CHECK: jas %r0, -1 +#CHECK: error: offset out of range +#CHECK: jas %r0, 1 +#CHECK: error: offset out of range +#CHECK: jas %r0, 0x10000 bras %r0, -0x100002 bras %r0, -1 bras %r0, 1 bras %r0, 0x10000 + jas %r0, -0x100002 + jas %r0, -1 + jas %r0, 1 + jas %r0, 0x10000 #CHECK: error: offset out of range #CHECK: brasl %r0, -0x1000000002 @@ -505,11 +517,23 @@ #CHECK: brasl %r0, 1 #CHECK: error: offset out of range #CHECK: brasl %r0, 0x100000000 +#CHECK: error: offset out of range +#CHECK: jasl %r0, -0x1000000002 +#CHECK: error: offset out of range +#CHECK: jasl %r0, -1 +#CHECK: error: offset out of range +#CHECK: jasl %r0, 1 +#CHECK: error: offset out of range +#CHECK: jasl %r0, 0x100000000 brasl %r0, -0x1000000002 brasl %r0, -1 brasl %r0, 1 brasl %r0, 0x100000000 + jasl %r0, -0x1000000002 + jasl %r0, -1 + jasl %r0, 1 + jasl %r0, 0x100000000 #CHECK: error: offset out of range #CHECK: brc 0, -0x100002 @@ -519,11 +543,23 @@ #CHECK: brc 0, 1 #CHECK: error: offset out of range #CHECK: brc 0, 0x10000 +#CHECK: error: offset out of range +#CHECK: jnop -0x100002 +#CHECK: error: offset out of range +#CHECK: jnop -1 +#CHECK: error: offset out of range +#CHECK: jnop 1 +#CHECK: error: offset out of range +#CHECK: jnop 0x10000 brc 0, -0x100002 brc 0, -1 brc 0, 1 brc 0, 0x10000 + jnop -0x100002 + jnop -1 + jnop 1 + jnop 0x10000 #CHECK: error: invalid operand #CHECK: brc foo, bar @@ -544,11 +580,23 @@ #CHECK: brcl 0, 1 #CHECK: error: offset out of range #CHECK: brcl 0, 0x100000000 +#CHECK: error: offset out of range +#CHECK: jgnop -0x1000000002 +#CHECK: error: offset out of range +#CHECK: jgnop -1 +#CHECK: error: offset out of range +#CHECK: jgnop 1 +#CHECK: error: offset out of range +#CHECK: jgnop 0x100000000 brcl 0, -0x1000000002 brcl 0, -1 brcl 0, 1 brcl 0, 0x100000000 + jgnop -0x1000000002 + jgnop -1 + jgnop 1 + jgnop 0x100000000 #CHECK: error: invalid operand #CHECK: brcl foo, bar @@ -602,11 +650,23 @@ #CHECK: brxh %r0, %r2, 1 #CHECK: error: offset out of range #CHECK: brxh %r0, %r2, 0x10000 +#CHECK: error: offset out of range +#CHECK: jxh %r0, %r2, -0x100002 +#CHECK: error: offset out of range +#CHECK: jxh %r0, %r2, -1 +#CHECK: error: offset out of range +#CHECK: jxh %r0, %r2, 1 +#CHECK: error: offset out of range +#CHECK: jxh %r0, %r2, 0x10000 brxh %r0, %r2, -0x100002 brxh %r0, %r2, -1 brxh %r0, %r2, 1 brxh %r0, %r2, 0x10000 + jxh %r0, %r2, -0x100002 + jxh %r0, %r2, -1 + jxh %r0, %r2, 1 + jxh %r0, %r2, 0x10000 #CHECK: error: offset out of range #CHECK: brxhg %r0, %r2, -0x100002 @@ -616,11 +676,23 @@ #CHECK: brxhg %r0, %r2, 1 #CHECK: error: offset out of range #CHECK: brxhg %r0, %r2, 0x10000 +#CHECK: error: offset out of range +#CHECK: jxhg %r0, %r2, -0x100002 +#CHECK: error: offset out of range +#CHECK: jxhg %r0, %r2, -1 +#CHECK: error: offset out of range +#CHECK: jxhg %r0, %r2, 1 +#CHECK: error: offset out of range +#CHECK: jxhg %r0, %r2, 0x10000 brxhg %r0, %r2, -0x100002 brxhg %r0, %r2, -1 brxhg %r0, %r2, 1 brxhg %r0, %r2, 0x10000 + jxhg %r0, %r2, -0x100002 + jxhg %r0, %r2, -1 + jxhg %r0, %r2, 1 + jxhg %r0, %r2, 0x10000 #CHECK: error: offset out of range #CHECK: brxle %r0, %r2, -0x100002 @@ -630,11 +702,23 @@ #CHECK: brxle %r0, %r2, 1 #CHECK: error: offset out of range #CHECK: brxle %r0, %r2, 0x10000 +#CHECK: error: offset out of range +#CHECK: jxle %r0, %r2, -0x100002 +#CHECK: error: offset out of range +#CHECK: jxle %r0, %r2, -1 +#CHECK: error: offset out of range +#CHECK: jxle %r0, %r2, 1 +#CHECK: error: offset out of range +#CHECK: jxle %r0, %r2, 0x10000 brxle %r0, %r2, -0x100002 brxle %r0, %r2, -1 brxle %r0, %r2, 1 brxle %r0, %r2, 0x10000 + jxle %r0, %r2, -0x100002 + jxle %r0, %r2, -1 + jxle %r0, %r2, 1 + jxle %r0, %r2, 0x10000 #CHECK: error: offset out of range #CHECK: brxlg %r0, %r2, -0x100002 @@ -644,11 +728,23 @@ #CHECK: brxlg %r0, %r2, 1 #CHECK: error: offset out of range #CHECK: brxlg %r0, %r2, 0x10000 +#CHECK: error: offset out of range +#CHECK: jxleg %r0, %r2, -0x100002 +#CHECK: error: offset out of range +#CHECK: jxleg %r0, %r2, -1 +#CHECK: error: offset out of range +#CHECK: jxleg %r0, %r2, 1 +#CHECK: error: offset out of range +#CHECK: jxleg %r0, %r2, 0x10000 brxlg %r0, %r2, -0x100002 brxlg %r0, %r2, -1 brxlg %r0, %r2, 1 brxlg %r0, %r2, 0x10000 + jxleg %r0, %r2, -0x100002 + jxleg %r0, %r2, -1 + jxleg %r0, %r2, 1 + jxleg %r0, %r2, 0x10000 #CHECK: error: invalid operand #CHECK: bxh %r0, %r0, 4096 diff --git a/llvm/test/MC/SystemZ/insn-good.s b/llvm/test/MC/SystemZ/insn-good.s index f75db59211b3..ce610b529f8e 100644 --- a/llvm/test/MC/SystemZ/insn-good.s +++ b/llvm/test/MC/SystemZ/insn-good.s @@ -1172,19 +1172,40 @@ br %r14 br %r15 +#CHECK: bras %r0, .[[LAB:L.*]]-65536 # encoding: [0xa7,0x05,A,A] +#CHECK: fixup A - offset: 2, value: (.[[LAB]]-65536)+2, kind: FK_390_PC16DBL #CHECK: bras %r0, .[[LAB:L.*]]-65536 # encoding: [0xa7,0x05,A,A] #CHECK: fixup A - offset: 2, value: (.[[LAB]]-65536)+2, kind: FK_390_PC16DBL bras %r0, -0x10000 + jas %r0, -0x10000 + +#CHECK: bras %r0, .[[LAB:L.*]]-2 # encoding: [0xa7,0x05,A,A] +#CHECK: fixup A - offset: 2, value: (.[[LAB]]-2)+2, kind: FK_390_PC16DBL #CHECK: bras %r0, .[[LAB:L.*]]-2 # encoding: [0xa7,0x05,A,A] #CHECK: fixup A - offset: 2, value: (.[[LAB]]-2)+2, kind: FK_390_PC16DBL bras %r0, -2 + jas %r0, -2 + +#CHECK: bras %r0, .[[LAB:L.*]] # encoding: [0xa7,0x05,A,A] +#CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL #CHECK: bras %r0, .[[LAB:L.*]] # encoding: [0xa7,0x05,A,A] #CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL bras %r0, 0 + jas %r0, 0 + +#CHECK: bras %r0, .[[LAB:L.*]]+65534 # encoding: [0xa7,0x05,A,A] +#CHECK: fixup A - offset: 2, value: (.[[LAB]]+65534)+2, kind: FK_390_PC16DBL #CHECK: bras %r0, .[[LAB:L.*]]+65534 # encoding: [0xa7,0x05,A,A] #CHECK: fixup A - offset: 2, value: (.[[LAB]]+65534)+2, kind: FK_390_PC16DBL bras %r0, 0xfffe + jas %r0, 0xfffe +#CHECK: bras %r0, foo # encoding: [0xa7,0x05,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL +#CHECK: bras %r14, foo # encoding: [0xa7,0xe5,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL +#CHECK: bras %r15, foo # encoding: [0xa7,0xf5,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL #CHECK: bras %r0, foo # encoding: [0xa7,0x05,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL #CHECK: bras %r14, foo # encoding: [0xa7,0xe5,A,A] @@ -1194,7 +1215,16 @@ bras %r0,foo bras %r14,foo bras %r15,foo + jas %r0,foo + jas %r14,foo + jas %r15,foo +#CHECK: bras %r0, bar+100 # encoding: [0xa7,0x05,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL +#CHECK: bras %r14, bar+100 # encoding: [0xa7,0xe5,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL +#CHECK: bras %r15, bar+100 # encoding: [0xa7,0xf5,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL #CHECK: bras %r0, bar+100 # encoding: [0xa7,0x05,A,A] #CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL #CHECK: bras %r14, bar+100 # encoding: [0xa7,0xe5,A,A] @@ -1204,7 +1234,16 @@ bras %r0,bar+100 bras %r14,bar+100 bras %r15,bar+100 + jas %r0,bar+100 + jas %r14,bar+100 + jas %r15,bar+100 +#CHECK: bras %r0, bar@PLT # encoding: [0xa7,0x05,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL +#CHECK: bras %r14, bar@PLT # encoding: [0xa7,0xe5,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL +#CHECK: bras %r15, bar@PLT # encoding: [0xa7,0xf5,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL #CHECK: bras %r0, bar@PLT # encoding: [0xa7,0x05,A,A] #CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL #CHECK: bras %r14, bar@PLT # encoding: [0xa7,0xe5,A,A] @@ -1214,20 +1253,41 @@ bras %r0,bar@PLT bras %r14,bar@PLT bras %r15,bar@PLT + jas %r0,bar@PLT + jas %r14,bar@PLT + jas %r15,bar@PLT +#CHECK: brasl %r0, .[[LAB:L.*]]-4294967296 # encoding: [0xc0,0x05,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (.[[LAB]]-4294967296)+2, kind: FK_390_PC32DBL #CHECK: brasl %r0, .[[LAB:L.*]]-4294967296 # encoding: [0xc0,0x05,A,A,A,A] #CHECK: fixup A - offset: 2, value: (.[[LAB]]-4294967296)+2, kind: FK_390_PC32DBL brasl %r0, -0x100000000 + jasl %r0, -0x100000000 +#CHECK: brasl %r0, .[[LAB:L.*]]-2 # encoding: [0xc0,0x05,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (.[[LAB]]-2)+2, kind: FK_390_PC32DBL #CHECK: brasl %r0, .[[LAB:L.*]]-2 # encoding: [0xc0,0x05,A,A,A,A] #CHECK: fixup A - offset: 2, value: (.[[LAB]]-2)+2, kind: FK_390_PC32DBL brasl %r0, -2 + jasl %r0, -2 +#CHECK: brasl %r0, .[[LAB:L.*]] # encoding: [0xc0,0x05,A,A,A,A] +#CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC32DBL #CHECK: brasl %r0, .[[LAB:L.*]] # encoding: [0xc0,0x05,A,A,A,A] #CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC32DBL brasl %r0, 0 + jasl %r0, 0 +#CHECK: brasl %r0, .[[LAB:L.*]]+4294967294 # encoding: [0xc0,0x05,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (.[[LAB]]+4294967294)+2, kind: FK_390_PC32DBL #CHECK: brasl %r0, .[[LAB:L.*]]+4294967294 # encoding: [0xc0,0x05,A,A,A,A] #CHECK: fixup A - offset: 2, value: (.[[LAB]]+4294967294)+2, kind: FK_390_PC32DBL brasl %r0, 0xfffffffe + jasl %r0, 0xfffffffe +#CHECK: brasl %r0, foo # encoding: [0xc0,0x05,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: brasl %r14, foo # encoding: [0xc0,0xe5,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: brasl %r15, foo # encoding: [0xc0,0xf5,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL #CHECK: brasl %r0, foo # encoding: [0xc0,0x05,A,A,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL #CHECK: brasl %r14, foo # encoding: [0xc0,0xe5,A,A,A,A] @@ -1237,7 +1297,16 @@ brasl %r0,foo brasl %r14,foo brasl %r15,foo + jasl %r0,foo + jasl %r14,foo + jasl %r15,foo +#CHECK: brasl %r0, bar+100 # encoding: [0xc0,0x05,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL +#CHECK: brasl %r14, bar+100 # encoding: [0xc0,0xe5,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL +#CHECK: brasl %r15, bar+100 # encoding: [0xc0,0xf5,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL #CHECK: brasl %r0, bar+100 # encoding: [0xc0,0x05,A,A,A,A] #CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL #CHECK: brasl %r14, bar+100 # encoding: [0xc0,0xe5,A,A,A,A] @@ -1247,7 +1316,16 @@ brasl %r0,bar+100 brasl %r14,bar+100 brasl %r15,bar+100 + jasl %r0,bar+100 + jasl %r14,bar+100 + jasl %r15,bar+100 +#CHECK: brasl %r0, bar@PLT # encoding: [0xc0,0x05,A,A,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL +#CHECK: brasl %r14, bar@PLT # encoding: [0xc0,0xe5,A,A,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL +#CHECK: brasl %r15, bar@PLT # encoding: [0xc0,0xf5,A,A,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL #CHECK: brasl %r0, bar@PLT # encoding: [0xc0,0x05,A,A,A,A] #CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL #CHECK: brasl %r14, bar@PLT # encoding: [0xc0,0xe5,A,A,A,A] @@ -1257,542 +1335,897 @@ brasl %r0,bar@PLT brasl %r14,bar@PLT brasl %r15,bar@PLT + jasl %r0,bar@PLT + jasl %r14,bar@PLT + jasl %r15,bar@PLT +#CHECK: brc 0, .[[LAB:L.*]]-65536 # encoding: [0xa7,0x04,A,A] +#CHECK: fixup A - offset: 2, value: (.[[LAB]]-65536)+2, kind: FK_390_PC16DBL #CHECK: brc 0, .[[LAB:L.*]]-65536 # encoding: [0xa7,0x04,A,A] #CHECK: fixup A - offset: 2, value: (.[[LAB]]-65536)+2, kind: FK_390_PC16DBL brc 0, -0x10000 + jnop -0x10000 + +#CHECK: brc 0, .[[LAB:L.*]]-2 # encoding: [0xa7,0x04,A,A] +#CHECK: fixup A - offset: 2, value: (.[[LAB]]-2)+2, kind: FK_390_PC16DBL #CHECK: brc 0, .[[LAB:L.*]]-2 # encoding: [0xa7,0x04,A,A] #CHECK: fixup A - offset: 2, value: (.[[LAB]]-2)+2, kind: FK_390_PC16DBL brc 0, -2 + jnop -2 + +#CHECK: brc 0, .[[LAB:L.*]] # encoding: [0xa7,0x04,A,A] +#CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL #CHECK: brc 0, .[[LAB:L.*]] # encoding: [0xa7,0x04,A,A] #CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL brc 0, 0 + jnop 0 + +#CHECK: brc 0, .[[LAB:L.*]]+65534 # encoding: [0xa7,0x04,A,A] +#CHECK: fixup A - offset: 2, value: (.[[LAB]]+65534)+2, kind: FK_390_PC16DBL #CHECK: brc 0, .[[LAB:L.*]]+65534 # encoding: [0xa7,0x04,A,A] #CHECK: fixup A - offset: 2, value: (.[[LAB]]+65534)+2, kind: FK_390_PC16DBL brc 0, 0xfffe + jnop 0xfffe +#CHECK: brc 0, foo # encoding: [0xa7,0x04,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL #CHECK: brc 0, foo # encoding: [0xa7,0x04,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL brc 0, foo + jnop foo #CHECK: brc 1, foo # encoding: [0xa7,0x14,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL #CHECK: jo foo # encoding: [0xa7,0x14,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL +#CHECK: jo foo # encoding: [0xa7,0x14,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL brc 1, foo jo foo + bro foo #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 +#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 + brh foo + brp foo #CHECK: brc 3, foo # encoding: [0xa7,0x34,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL #CHECK: jnle foo # encoding: [0xa7,0x34,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL +#CHECK: jnle foo # encoding: [0xa7,0x34,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL brc 3, foo jnle foo + brnle foo #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 +#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 + brl foo + brm foo #CHECK: brc 5, foo # encoding: [0xa7,0x54,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL #CHECK: jnhe foo # encoding: [0xa7,0x54,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL +#CHECK: jnhe foo # encoding: [0xa7,0x54,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL brc 5, foo jnhe foo + brnhe foo #CHECK: brc 6, foo # encoding: [0xa7,0x64,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL #CHECK: jlh foo # encoding: [0xa7,0x64,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL +#CHECK: jlh foo # encoding: [0xa7,0x64,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL brc 6, foo jlh foo + brlh foo #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 +#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 + brne foo + brnz 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 +#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 + bre foo + brz foo #CHECK: brc 9, foo # encoding: [0xa7,0x94,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL #CHECK: jnlh foo # encoding: [0xa7,0x94,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL +#CHECK: jnlh foo # encoding: [0xa7,0x94,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL brc 9, foo jnlh foo + brnlh foo #CHECK: brc 10, foo # encoding: [0xa7,0xa4,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL #CHECK: jhe foo # encoding: [0xa7,0xa4,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL +#CHECK: jhe foo # encoding: [0xa7,0xa4,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL brc 10, foo jhe foo + brhe foo #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 +#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 + brnl foo + brnm foo #CHECK: brc 12, foo # encoding: [0xa7,0xc4,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL #CHECK: jle foo # encoding: [0xa7,0xc4,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL +#CHECK: jle foo # encoding: [0xa7,0xc4,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL brc 12, foo jle foo + brle foo #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 +#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 + brnh foo + brnp foo #CHECK: brc 14, foo # encoding: [0xa7,0xe4,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL #CHECK: jno foo # encoding: [0xa7,0xe4,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL +#CHECK: jno foo # encoding: [0xa7,0xe4,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL brc 14, foo jno foo + brno foo #CHECK: brc 15, foo # encoding: [0xa7,0xf4,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL #CHECK: j foo # encoding: [0xa7,0xf4,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL +#CHECK: j foo # encoding: [0xa7,0xf4,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL brc 15, foo j foo + bru foo +#CHECK: brc 0, bar+100 # encoding: [0xa7,0x04,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL #CHECK: brc 0, bar+100 # encoding: [0xa7,0x04,A,A] #CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL brc 0, bar+100 + jnop bar+100 +#CHECK: jo bar+100 # encoding: [0xa7,0x14,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL #CHECK: jo bar+100 # encoding: [0xa7,0x14,A,A] #CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL jo bar+100 + bro bar+100 +#CHECK: jh bar+100 # encoding: [0xa7,0x24,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL #CHECK: jh bar+100 # encoding: [0xa7,0x24,A,A] #CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL jh bar+100 + brh bar+100 +#CHECK: jnle bar+100 # encoding: [0xa7,0x34,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL #CHECK: jnle bar+100 # encoding: [0xa7,0x34,A,A] #CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL jnle bar+100 + brnle bar+100 +#CHECK: jl bar+100 # encoding: [0xa7,0x44,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL #CHECK: jl bar+100 # encoding: [0xa7,0x44,A,A] #CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL jl bar+100 + brl bar+100 +#CHECK: jnhe bar+100 # encoding: [0xa7,0x54,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL #CHECK: jnhe bar+100 # encoding: [0xa7,0x54,A,A] #CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL jnhe bar+100 + brnhe bar+100 +#CHECK: jlh bar+100 # encoding: [0xa7,0x64,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL #CHECK: jlh bar+100 # encoding: [0xa7,0x64,A,A] #CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL jlh bar+100 + brlh bar+100 +#CHECK: jne bar+100 # encoding: [0xa7,0x74,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL #CHECK: jne bar+100 # encoding: [0xa7,0x74,A,A] #CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL jne bar+100 + brne bar+100 +#CHECK: je bar+100 # encoding: [0xa7,0x84,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL #CHECK: je bar+100 # encoding: [0xa7,0x84,A,A] #CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL je bar+100 + bre bar+100 +#CHECK: jnlh bar+100 # encoding: [0xa7,0x94,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL #CHECK: jnlh bar+100 # encoding: [0xa7,0x94,A,A] #CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL jnlh bar+100 + brnlh bar+100 +#CHECK: jhe bar+100 # encoding: [0xa7,0xa4,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL #CHECK: jhe bar+100 # encoding: [0xa7,0xa4,A,A] #CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL jhe bar+100 + brhe bar+100 +#CHECK: jnl bar+100 # encoding: [0xa7,0xb4,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL #CHECK: jnl bar+100 # encoding: [0xa7,0xb4,A,A] #CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL jnl bar+100 + brnl bar+100 +#CHECK: jle bar+100 # encoding: [0xa7,0xc4,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL #CHECK: jle bar+100 # encoding: [0xa7,0xc4,A,A] #CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL jle bar+100 + brle bar+100 +#CHECK: jnh bar+100 # encoding: [0xa7,0xd4,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL #CHECK: jnh bar+100 # encoding: [0xa7,0xd4,A,A] #CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL jnh bar+100 + brnh bar+100 +#CHECK: jno bar+100 # encoding: [0xa7,0xe4,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL #CHECK: jno bar+100 # encoding: [0xa7,0xe4,A,A] #CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL jno bar+100 + brno bar+100 +#CHECK: j bar+100 # encoding: [0xa7,0xf4,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL #CHECK: j bar+100 # encoding: [0xa7,0xf4,A,A] #CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL j bar+100 + bru bar+100 +#CHECK: brc 0, bar@PLT # encoding: [0xa7,0x04,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL #CHECK: brc 0, bar@PLT # encoding: [0xa7,0x04,A,A] #CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL brc 0, bar@PLT + jnop bar@PLT +#CHECK: jo bar@PLT # encoding: [0xa7,0x14,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL #CHECK: jo bar@PLT # encoding: [0xa7,0x14,A,A] #CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL jo bar@PLT + bro bar@PLT +#CHECK: jh bar@PLT # encoding: [0xa7,0x24,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL #CHECK: jh bar@PLT # encoding: [0xa7,0x24,A,A] #CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL jh bar@PLT + brh bar@PLT +#CHECK: jnle bar@PLT # encoding: [0xa7,0x34,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL #CHECK: jnle bar@PLT # encoding: [0xa7,0x34,A,A] #CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL jnle bar@PLT + brnle bar@PLT +#CHECK: jl bar@PLT # encoding: [0xa7,0x44,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL #CHECK: jl bar@PLT # encoding: [0xa7,0x44,A,A] #CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL jl bar@PLT + brl bar@PLT +#CHECK: jnhe bar@PLT # encoding: [0xa7,0x54,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL #CHECK: jnhe bar@PLT # encoding: [0xa7,0x54,A,A] #CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL jnhe bar@PLT + brnhe bar@PLT +#CHECK: jlh bar@PLT # encoding: [0xa7,0x64,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL #CHECK: jlh bar@PLT # encoding: [0xa7,0x64,A,A] #CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL jlh bar@PLT + brlh bar@PLT +#CHECK: jne bar@PLT # encoding: [0xa7,0x74,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL #CHECK: jne bar@PLT # encoding: [0xa7,0x74,A,A] #CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL jne bar@PLT + brne bar@PLT +#CHECK: je bar@PLT # encoding: [0xa7,0x84,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL #CHECK: je bar@PLT # encoding: [0xa7,0x84,A,A] #CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL je bar@PLT + bre bar@PLT +#CHECK: jnlh bar@PLT # encoding: [0xa7,0x94,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL #CHECK: jnlh bar@PLT # encoding: [0xa7,0x94,A,A] #CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL jnlh bar@PLT + brnlh bar@PLT +#CHECK: jhe bar@PLT # encoding: [0xa7,0xa4,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL #CHECK: jhe bar@PLT # encoding: [0xa7,0xa4,A,A] #CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL jhe bar@PLT + brhe bar@PLT +#CHECK: jnl bar@PLT # encoding: [0xa7,0xb4,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL #CHECK: jnl bar@PLT # encoding: [0xa7,0xb4,A,A] #CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL jnl bar@PLT + brnl bar@PLT +#CHECK: jle bar@PLT # encoding: [0xa7,0xc4,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL #CHECK: jle bar@PLT # encoding: [0xa7,0xc4,A,A] #CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL jle bar@PLT + brle bar@PLT +#CHECK: jnh bar@PLT # encoding: [0xa7,0xd4,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL #CHECK: jnh bar@PLT # encoding: [0xa7,0xd4,A,A] #CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL jnh bar@PLT + brnh bar@PLT +#CHECK: jno bar@PLT # encoding: [0xa7,0xe4,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL #CHECK: jno bar@PLT # encoding: [0xa7,0xe4,A,A] #CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL jno bar@PLT + brno bar@PLT +#CHECK: j bar@PLT # encoding: [0xa7,0xf4,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL #CHECK: j bar@PLT # encoding: [0xa7,0xf4,A,A] #CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL j bar@PLT + bru bar@PLT +#CHECK: brcl 0, .[[LAB:L.*]]-4294967296 # encoding: [0xc0,0x04,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (.[[LAB]]-4294967296)+2, kind: FK_390_PC32DBL #CHECK: brcl 0, .[[LAB:L.*]]-4294967296 # encoding: [0xc0,0x04,A,A,A,A] #CHECK: fixup A - offset: 2, value: (.[[LAB]]-4294967296)+2, kind: FK_390_PC32DBL brcl 0, -0x100000000 + jgnop -0x100000000 +#CHECK: brcl 0, .[[LAB:L.*]]-2 # encoding: [0xc0,0x04,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (.[[LAB]]-2)+2, kind: FK_390_PC32DBL #CHECK: brcl 0, .[[LAB:L.*]]-2 # encoding: [0xc0,0x04,A,A,A,A] #CHECK: fixup A - offset: 2, value: (.[[LAB]]-2)+2, kind: FK_390_PC32DBL brcl 0, -2 + jgnop -2 +#CHECK: brcl 0, .[[LAB:L.*]] # encoding: [0xc0,0x04,A,A,A,A] +#CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC32DBL #CHECK: brcl 0, .[[LAB:L.*]] # encoding: [0xc0,0x04,A,A,A,A] #CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC32DBL brcl 0, 0 + jgnop 0 +#CHECK: brcl 0, .[[LAB:L.*]]+4294967294 # encoding: [0xc0,0x04,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (.[[LAB]]+4294967294)+2, kind: FK_390_PC32DBL #CHECK: brcl 0, .[[LAB:L.*]]+4294967294 # encoding: [0xc0,0x04,A,A,A,A] #CHECK: fixup A - offset: 2, value: (.[[LAB]]+4294967294)+2, kind: FK_390_PC32DBL brcl 0, 0xfffffffe + jgnop 0xfffffffe +#CHECK: brcl 0, foo # encoding: [0xc0,0x04,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL #CHECK: brcl 0, foo # encoding: [0xc0,0x04,A,A,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL brcl 0, foo + jgnop foo #CHECK: brcl 1, foo # encoding: [0xc0,0x14,A,A,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL #CHECK: jgo foo # encoding: [0xc0,0x14,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: jgo foo # encoding: [0xc0,0x14,A,A,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL brcl 1, foo jgo foo + brol foo #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 +#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 + brhl foo + brpl foo #CHECK: brcl 3, foo # encoding: [0xc0,0x34,A,A,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL #CHECK: jgnle foo # encoding: [0xc0,0x34,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: jgnle foo # encoding: [0xc0,0x34,A,A,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL brcl 3, foo jgnle foo + brnlel foo #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 +#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 + brll foo + brml foo #CHECK: brcl 5, foo # encoding: [0xc0,0x54,A,A,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL #CHECK: jgnhe foo # encoding: [0xc0,0x54,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: jgnhe foo # encoding: [0xc0,0x54,A,A,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL brcl 5, foo jgnhe foo + brnhel foo #CHECK: brcl 6, foo # encoding: [0xc0,0x64,A,A,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL #CHECK: jglh foo # encoding: [0xc0,0x64,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: jglh foo # encoding: [0xc0,0x64,A,A,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL brcl 6, foo jglh foo + brlhl foo #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 +#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 + brnel foo + brnzl 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 +#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 + brel foo + brzl foo #CHECK: brcl 9, foo # encoding: [0xc0,0x94,A,A,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL #CHECK: jgnlh foo # encoding: [0xc0,0x94,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: jgnlh foo # encoding: [0xc0,0x94,A,A,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL brcl 9, foo jgnlh foo + brnlhl foo #CHECK: brcl 10, foo # encoding: [0xc0,0xa4,A,A,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL #CHECK: jghe foo # encoding: [0xc0,0xa4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: jghe foo # encoding: [0xc0,0xa4,A,A,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL brcl 10, foo jghe foo + brhel foo #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 +#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 + brnll foo + brnml foo #CHECK: brcl 12, foo # encoding: [0xc0,0xc4,A,A,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL #CHECK: jgle foo # encoding: [0xc0,0xc4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: jgle foo # encoding: [0xc0,0xc4,A,A,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL brcl 12, foo jgle foo + brlel foo #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 +#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 + brnhl foo + brnpl foo #CHECK: brcl 14, foo # encoding: [0xc0,0xe4,A,A,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL #CHECK: jgno foo # encoding: [0xc0,0xe4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: jgno foo # encoding: [0xc0,0xe4,A,A,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL brcl 14, foo jgno foo + brnol foo #CHECK: brcl 15, foo # encoding: [0xc0,0xf4,A,A,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL #CHECK: jg foo # encoding: [0xc0,0xf4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: jg foo # encoding: [0xc0,0xf4,A,A,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL brcl 15, foo jg foo + brul foo +#CHECK: brcl 0, bar+100 # encoding: [0xc0,0x04,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL #CHECK: brcl 0, bar+100 # encoding: [0xc0,0x04,A,A,A,A] #CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL brcl 0, bar+100 + jgnop bar+100 +#CHECK: jgo bar+100 # encoding: [0xc0,0x14,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL #CHECK: jgo bar+100 # encoding: [0xc0,0x14,A,A,A,A] #CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL jgo bar+100 + brol bar+100 +#CHECK: jgh bar+100 # encoding: [0xc0,0x24,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL #CHECK: jgh bar+100 # encoding: [0xc0,0x24,A,A,A,A] #CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL jgh bar+100 + brhl bar+100 +#CHECK: jgnle bar+100 # encoding: [0xc0,0x34,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL #CHECK: jgnle bar+100 # encoding: [0xc0,0x34,A,A,A,A] #CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL jgnle bar+100 + brnlel bar+100 +#CHECK: jgl bar+100 # encoding: [0xc0,0x44,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL #CHECK: jgl bar+100 # encoding: [0xc0,0x44,A,A,A,A] #CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL jgl bar+100 + brll bar+100 +#CHECK: jgnhe bar+100 # encoding: [0xc0,0x54,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL #CHECK: jgnhe bar+100 # encoding: [0xc0,0x54,A,A,A,A] #CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL jgnhe bar+100 + brnhel bar+100 +#CHECK: jglh bar+100 # encoding: [0xc0,0x64,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL #CHECK: jglh bar+100 # encoding: [0xc0,0x64,A,A,A,A] #CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL jglh bar+100 + brlhl bar+100 +#CHECK: jgne bar+100 # encoding: [0xc0,0x74,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL #CHECK: jgne bar+100 # encoding: [0xc0,0x74,A,A,A,A] #CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL jgne bar+100 + brnel bar+100 +#CHECK: jge bar+100 # encoding: [0xc0,0x84,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL #CHECK: jge bar+100 # encoding: [0xc0,0x84,A,A,A,A] #CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL jge bar+100 + brel bar+100 +#CHECK: jgnlh bar+100 # encoding: [0xc0,0x94,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL #CHECK: jgnlh bar+100 # encoding: [0xc0,0x94,A,A,A,A] #CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL jgnlh bar+100 + brnlhl bar+100 +#CHECK: jghe bar+100 # encoding: [0xc0,0xa4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL #CHECK: jghe bar+100 # encoding: [0xc0,0xa4,A,A,A,A] #CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL jghe bar+100 + brhel bar+100 +#CHECK: jgnl bar+100 # encoding: [0xc0,0xb4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL #CHECK: jgnl bar+100 # encoding: [0xc0,0xb4,A,A,A,A] #CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL jgnl bar+100 + brnll bar+100 +#CHECK: jgle bar+100 # encoding: [0xc0,0xc4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL #CHECK: jgle bar+100 # encoding: [0xc0,0xc4,A,A,A,A] #CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL jgle bar+100 + brlel bar+100 +#CHECK: jgnh bar+100 # encoding: [0xc0,0xd4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL #CHECK: jgnh bar+100 # encoding: [0xc0,0xd4,A,A,A,A] #CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL jgnh bar+100 + brnhl bar+100 +#CHECK: jgno bar+100 # encoding: [0xc0,0xe4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL #CHECK: jgno bar+100 # encoding: [0xc0,0xe4,A,A,A,A] #CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL jgno bar+100 + brnol bar+100 +#CHECK: jg bar+100 # encoding: [0xc0,0xf4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL #CHECK: jg bar+100 # encoding: [0xc0,0xf4,A,A,A,A] #CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL jg bar+100 + brul bar+100 +#CHECK: brcl 0, bar@PLT # encoding: [0xc0,0x04,A,A,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL #CHECK: brcl 0, bar@PLT # encoding: [0xc0,0x04,A,A,A,A] #CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL brcl 0, bar@PLT + jgnop bar@PLT +#CHECK: jgo bar@PLT # encoding: [0xc0,0x14,A,A,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL #CHECK: jgo bar@PLT # encoding: [0xc0,0x14,A,A,A,A] #CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL jgo bar@PLT + brol bar@PLT +#CHECK: jgh bar@PLT # encoding: [0xc0,0x24,A,A,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL #CHECK: jgh bar@PLT # encoding: [0xc0,0x24,A,A,A,A] #CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL jgh bar@PLT + brhl bar@PLT +#CHECK: jgnle bar@PLT # encoding: [0xc0,0x34,A,A,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL #CHECK: jgnle bar@PLT # encoding: [0xc0,0x34,A,A,A,A] #CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL jgnle bar@PLT + brnlel bar@PLT +#CHECK: jgl bar@PLT # encoding: [0xc0,0x44,A,A,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL #CHECK: jgl bar@PLT # encoding: [0xc0,0x44,A,A,A,A] #CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL jgl bar@PLT + brll bar@PLT +#CHECK: jgnhe bar@PLT # encoding: [0xc0,0x54,A,A,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL #CHECK: jgnhe bar@PLT # encoding: [0xc0,0x54,A,A,A,A] #CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL jgnhe bar@PLT + brnhel bar@PLT +#CHECK: jglh bar@PLT # encoding: [0xc0,0x64,A,A,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL #CHECK: jglh bar@PLT # encoding: [0xc0,0x64,A,A,A,A] #CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL jglh bar@PLT + brlhl bar@PLT +#CHECK: jgne bar@PLT # encoding: [0xc0,0x74,A,A,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL #CHECK: jgne bar@PLT # encoding: [0xc0,0x74,A,A,A,A] #CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL jgne bar@PLT + brnel bar@PLT +#CHECK: jge bar@PLT # encoding: [0xc0,0x84,A,A,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL #CHECK: jge bar@PLT # encoding: [0xc0,0x84,A,A,A,A] #CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL jge bar@PLT + brel bar@PLT +#CHECK: jgnlh bar@PLT # encoding: [0xc0,0x94,A,A,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL #CHECK: jgnlh bar@PLT # encoding: [0xc0,0x94,A,A,A,A] #CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL jgnlh bar@PLT + brnlhl bar@PLT +#CHECK: jghe bar@PLT # encoding: [0xc0,0xa4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL #CHECK: jghe bar@PLT # encoding: [0xc0,0xa4,A,A,A,A] #CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL jghe bar@PLT + brhel bar@PLT +#CHECK: jgnl bar@PLT # encoding: [0xc0,0xb4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL #CHECK: jgnl bar@PLT # encoding: [0xc0,0xb4,A,A,A,A] #CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL jgnl bar@PLT + brnll bar@PLT +#CHECK: jgle bar@PLT # encoding: [0xc0,0xc4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL #CHECK: jgle bar@PLT # encoding: [0xc0,0xc4,A,A,A,A] #CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL jgle bar@PLT + brlel bar@PLT +#CHECK: jgnh bar@PLT # encoding: [0xc0,0xd4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL #CHECK: jgnh bar@PLT # encoding: [0xc0,0xd4,A,A,A,A] #CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL jgnh bar@PLT + brnhl bar@PLT +#CHECK: jgno bar@PLT # encoding: [0xc0,0xe4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL #CHECK: jgno bar@PLT # encoding: [0xc0,0xe4,A,A,A,A] #CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL jgno bar@PLT + brnol bar@PLT +#CHECK: jg bar@PLT # encoding: [0xc0,0xf4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL #CHECK: jg bar@PLT # encoding: [0xc0,0xf4,A,A,A,A] #CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL jg bar@PLT + brul bar@PLT #CHECK: bct %r0, 0 # encoding: [0x46,0x00,0x00,0x00] #CHECK: bct %r0, 4095 # encoding: [0x46,0x00,0x0f,0xff] @@ -1852,37 +2285,69 @@ bctgr %r15,%r0 bctgr %r15,%r9 +#CHECK: brct %r0, .[[LAB:L.*]]-65536 # encoding: [0xa7,0x06,A,A] +#CHECK: fixup A - offset: 2, value: (.[[LAB]]-65536)+2, kind: FK_390_PC16DBL #CHECK: brct %r0, .[[LAB:L.*]]-65536 # encoding: [0xa7,0x06,A,A] #CHECK: fixup A - offset: 2, value: (.[[LAB]]-65536)+2, kind: FK_390_PC16DBL brct %r0, -0x10000 + jct %r0, -0x10000 +#CHECK: brct %r0, .[[LAB:L.*]]-2 # encoding: [0xa7,0x06,A,A] +#CHECK: fixup A - offset: 2, value: (.[[LAB]]-2)+2, kind: FK_390_PC16DBL #CHECK: brct %r0, .[[LAB:L.*]]-2 # encoding: [0xa7,0x06,A,A] #CHECK: fixup A - offset: 2, value: (.[[LAB]]-2)+2, kind: FK_390_PC16DBL brct %r0, -2 + jct %r0, -2 +#CHECK: brct %r0, .[[LAB:L.*]] # encoding: [0xa7,0x06,A,A] +#CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL #CHECK: brct %r0, .[[LAB:L.*]] # encoding: [0xa7,0x06,A,A] #CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL brct %r0, 0 + jct %r0, 0 +#CHECK: brct %r0, .[[LAB:L.*]]+65534 # encoding: [0xa7,0x06,A,A] +#CHECK: fixup A - offset: 2, value: (.[[LAB]]+65534)+2, kind: FK_390_PC16DBL #CHECK: brct %r0, .[[LAB:L.*]]+65534 # encoding: [0xa7,0x06,A,A] #CHECK: fixup A - offset: 2, value: (.[[LAB]]+65534)+2, kind: FK_390_PC16DBL brct %r0, 0xfffe + jct %r0, 0xfffe +#CHECK: brct %r15, .[[LAB:L.*]] # encoding: [0xa7,0xf6,A,A] +#CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL #CHECK: brct %r15, .[[LAB:L.*]] # encoding: [0xa7,0xf6,A,A] #CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL brct %r15, 0 + jct %r15, 0 +#CHECK: brctg %r0, .[[LAB:L.*]]-65536 # encoding: [0xa7,0x07,A,A] +#CHECK: fixup A - offset: 2, value: (.[[LAB]]-65536)+2, kind: FK_390_PC16DBL #CHECK: brctg %r0, .[[LAB:L.*]]-65536 # encoding: [0xa7,0x07,A,A] #CHECK: fixup A - offset: 2, value: (.[[LAB]]-65536)+2, kind: FK_390_PC16DBL brctg %r0, -0x10000 + jctg %r0, -0x10000 +#CHECK: brctg %r0, .[[LAB:L.*]]-2 # encoding: [0xa7,0x07,A,A] +#CHECK: fixup A - offset: 2, value: (.[[LAB]]-2)+2, kind: FK_390_PC16DBL #CHECK: brctg %r0, .[[LAB:L.*]]-2 # encoding: [0xa7,0x07,A,A] #CHECK: fixup A - offset: 2, value: (.[[LAB]]-2)+2, kind: FK_390_PC16DBL brctg %r0, -2 + jctg %r0, -2 +#CHECK: brctg %r0, .[[LAB:L.*]] # encoding: [0xa7,0x07,A,A] +#CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL #CHECK: brctg %r0, .[[LAB:L.*]] # encoding: [0xa7,0x07,A,A] #CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL brctg %r0, 0 + jctg %r0, 0 +#CHECK: brctg %r0, .[[LAB:L.*]]+65534 # encoding: [0xa7,0x07,A,A] +#CHECK: fixup A - offset: 2, value: (.[[LAB]]+65534)+2, kind: FK_390_PC16DBL #CHECK: brctg %r0, .[[LAB:L.*]]+65534 # encoding: [0xa7,0x07,A,A] #CHECK: fixup A - offset: 2, value: (.[[LAB]]+65534)+2, kind: FK_390_PC16DBL brctg %r0, 0xfffe + jctg %r0, 0xfffe +#CHECK: brctg %r15, .[[LAB:L.*]] # encoding: [0xa7,0xf7,A,A] +#CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL #CHECK: brctg %r15, .[[LAB:L.*]] # encoding: [0xa7,0xf7,A,A] #CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL brctg %r15, 0 + jctg %r15, 0 + + #CHECK: bxh %r0, %r0, 0 # encoding: [0x86,0x00,0x00,0x00] #CHECK: bxh %r0, %r15, 0 # encoding: [0x86,0x0f,0x00,0x00] @@ -1934,19 +2399,37 @@ bxhg %r0,%r0,524287(%r1) bxhg %r0,%r0,524287(%r15) +#CHECK: brxh %r0, %r2, .[[LAB:L.*]]-65536 # encoding: [0x84,0x02,A,A] +#CHECK: fixup A - offset: 2, value: (.[[LAB]]-65536)+2, kind: FK_390_PC16DBL #CHECK: brxh %r0, %r2, .[[LAB:L.*]]-65536 # encoding: [0x84,0x02,A,A] #CHECK: fixup A - offset: 2, value: (.[[LAB]]-65536)+2, kind: FK_390_PC16DBL brxh %r0,%r2, -0x10000 + jxh %r0,%r2, -0x10000 +#CHECK: brxh %r0, %r2, .[[LAB:L.*]]-2 # encoding: [0x84,0x02,A,A] +#CHECK: fixup A - offset: 2, value: (.[[LAB]]-2)+2, kind: FK_390_PC16DBL #CHECK: brxh %r0, %r2, .[[LAB:L.*]]-2 # encoding: [0x84,0x02,A,A] #CHECK: fixup A - offset: 2, value: (.[[LAB]]-2)+2, kind: FK_390_PC16DBL brxh %r0, %r2, -2 + jxh %r0, %r2, -2 +#CHECK: brxh %r0, %r2, .[[LAB:L.*]] # encoding: [0x84,0x02,A,A] +#CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL #CHECK: brxh %r0, %r2, .[[LAB:L.*]] # encoding: [0x84,0x02,A,A] #CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL brxh %r0,%r2, 0 + jxh %r0,%r2, 0 +#CHECK: brxh %r0, %r2, .[[LAB:L.*]]+65534 # encoding: [0x84,0x02,A,A] +#CHECK: fixup A - offset: 2, value: (.[[LAB]]+65534)+2, kind: FK_390_PC16DBL #CHECK: brxh %r0, %r2, .[[LAB:L.*]]+65534 # encoding: [0x84,0x02,A,A] #CHECK: fixup A - offset: 2, value: (.[[LAB]]+65534)+2, kind: FK_390_PC16DBL brxh %r0,%r2, 0xfffe + jxh %r0,%r2, 0xfffe +#CHECK: brxh %r0, %r2, foo # encoding: [0x84,0x02,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL +#CHECK: brxh %r14, %r2, foo # encoding: [0x84,0xe2,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL +#CHECK: brxh %r15, %r2, foo # encoding: [0x84,0xf2,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL #CHECK: brxh %r0, %r2, foo # encoding: [0x84,0x02,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL #CHECK: brxh %r14, %r2, foo # encoding: [0x84,0xe2,A,A] @@ -1956,7 +2439,16 @@ brxh %r0,%r2,foo brxh %r14,%r2,foo brxh %r15,%r2,foo + jxh %r0,%r2,foo + jxh %r14,%r2,foo + jxh %r15,%r2,foo +#CHECK: brxh %r0, %r2, bar+100 # encoding: [0x84,0x02,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL +#CHECK: brxh %r14, %r2, bar+100 # encoding: [0x84,0xe2,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL +#CHECK: brxh %r15, %r2, bar+100 # encoding: [0x84,0xf2,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL #CHECK: brxh %r0, %r2, bar+100 # encoding: [0x84,0x02,A,A] #CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL #CHECK: brxh %r14, %r2, bar+100 # encoding: [0x84,0xe2,A,A] @@ -1966,7 +2458,16 @@ brxh %r0,%r2,bar+100 brxh %r14,%r2,bar+100 brxh %r15,%r2,bar+100 + jxh %r0,%r2,bar+100 + jxh %r14,%r2,bar+100 + jxh %r15,%r2,bar+100 +#CHECK: brxh %r0, %r2, bar@PLT # encoding: [0x84,0x02,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL +#CHECK: brxh %r14, %r2, bar@PLT # encoding: [0x84,0xe2,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL +#CHECK: brxh %r15, %r2, bar@PLT # encoding: [0x84,0xf2,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL #CHECK: brxh %r0, %r2, bar@PLT # encoding: [0x84,0x02,A,A] #CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL #CHECK: brxh %r14, %r2, bar@PLT # encoding: [0x84,0xe2,A,A] @@ -1976,20 +2477,41 @@ brxh %r0,%r2,bar@PLT brxh %r14,%r2,bar@PLT brxh %r15,%r2,bar@PLT + jxh %r0,%r2,bar@PLT + jxh %r14,%r2,bar@PLT + jxh %r15,%r2,bar@PLT +#CHECK: brxhg %r0, %r2, .[[LAB:L.*]]-65536 # encoding: [0xec,0x02,A,A,0x00,0x44] +#CHECK: fixup A - offset: 2, value: (.[[LAB]]-65536)+2, kind: FK_390_PC16DBL #CHECK: brxhg %r0, %r2, .[[LAB:L.*]]-65536 # encoding: [0xec,0x02,A,A,0x00,0x44] #CHECK: fixup A - offset: 2, value: (.[[LAB]]-65536)+2, kind: FK_390_PC16DBL brxhg %r0,%r2, -0x10000 + jxhg %r0,%r2, -0x10000 +#CHECK: brxhg %r0, %r2, .[[LAB:L.*]]-2 # encoding: [0xec,0x02,A,A,0x00,0x44] +#CHECK: fixup A - offset: 2, value: (.[[LAB]]-2)+2, kind: FK_390_PC16DBL #CHECK: brxhg %r0, %r2, .[[LAB:L.*]]-2 # encoding: [0xec,0x02,A,A,0x00,0x44] #CHECK: fixup A - offset: 2, value: (.[[LAB]]-2)+2, kind: FK_390_PC16DBL brxhg %r0, %r2, -2 + jxhg %r0, %r2, -2 +#CHECK: brxhg %r0, %r2, .[[LAB:L.*]] # encoding: [0xec,0x02,A,A,0x00,0x44] +#CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL #CHECK: brxhg %r0, %r2, .[[LAB:L.*]] # encoding: [0xec,0x02,A,A,0x00,0x44] #CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL brxhg %r0,%r2, 0 + jxhg %r0,%r2, 0 +#CHECK: brxhg %r0, %r2, .[[LAB:L.*]]+65534 # encoding: [0xec,0x02,A,A,0x00,0x44] +#CHECK: fixup A - offset: 2, value: (.[[LAB]]+65534)+2, kind: FK_390_PC16DBL #CHECK: brxhg %r0, %r2, .[[LAB:L.*]]+65534 # encoding: [0xec,0x02,A,A,0x00,0x44] #CHECK: fixup A - offset: 2, value: (.[[LAB]]+65534)+2, kind: FK_390_PC16DBL brxhg %r0,%r2, 0xfffe + jxhg %r0,%r2, 0xfffe +#CHECK: brxhg %r0, %r2, foo # encoding: [0xec,0x02,A,A,0x00,0x44] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL +#CHECK: brxhg %r14, %r2, foo # encoding: [0xec,0xe2,A,A,0x00,0x44] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL +#CHECK: brxhg %r15, %r2, foo # encoding: [0xec,0xf2,A,A,0x00,0x44] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL #CHECK: brxhg %r0, %r2, foo # encoding: [0xec,0x02,A,A,0x00,0x44] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL #CHECK: brxhg %r14, %r2, foo # encoding: [0xec,0xe2,A,A,0x00,0x44] @@ -1999,7 +2521,16 @@ brxhg %r0,%r2,foo brxhg %r14,%r2,foo brxhg %r15,%r2,foo + jxhg %r0,%r2,foo + jxhg %r14,%r2,foo + jxhg %r15,%r2,foo +#CHECK: brxhg %r0, %r2, bar+100 # encoding: [0xec,0x02,A,A,0x00,0x44] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL +#CHECK: brxhg %r14, %r2, bar+100 # encoding: [0xec,0xe2,A,A,0x00,0x44] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL +#CHECK: brxhg %r15, %r2, bar+100 # encoding: [0xec,0xf2,A,A,0x00,0x44] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL #CHECK: brxhg %r0, %r2, bar+100 # encoding: [0xec,0x02,A,A,0x00,0x44] #CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL #CHECK: brxhg %r14, %r2, bar+100 # encoding: [0xec,0xe2,A,A,0x00,0x44] @@ -2009,7 +2540,16 @@ brxhg %r0,%r2,bar+100 brxhg %r14,%r2,bar+100 brxhg %r15,%r2,bar+100 + jxhg %r0,%r2,bar+100 + jxhg %r14,%r2,bar+100 + jxhg %r15,%r2,bar+100 +#CHECK: brxhg %r0, %r2, bar@PLT # encoding: [0xec,0x02,A,A,0x00,0x44] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL +#CHECK: brxhg %r14, %r2, bar@PLT # encoding: [0xec,0xe2,A,A,0x00,0x44] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL +#CHECK: brxhg %r15, %r2, bar@PLT # encoding: [0xec,0xf2,A,A,0x00,0x44] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL #CHECK: brxhg %r0, %r2, bar@PLT # encoding: [0xec,0x02,A,A,0x00,0x44] #CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL #CHECK: brxhg %r14, %r2, bar@PLT # encoding: [0xec,0xe2,A,A,0x00,0x44] @@ -2019,6 +2559,10 @@ brxhg %r0,%r2,bar@PLT brxhg %r14,%r2,bar@PLT brxhg %r15,%r2,bar@PLT + jxhg %r0,%r2,bar@PLT + jxhg %r14,%r2,bar@PLT + jxhg %r15,%r2,bar@PLT + #CHECK: bxle %r0, %r0, 0 # encoding: [0x87,0x00,0x00,0x00] #CHECK: bxle %r0, %r15, 0 # encoding: [0x87,0x0f,0x00,0x00] @@ -2070,19 +2614,37 @@ bxleg %r0,%r0,524287(%r1) bxleg %r0,%r0,524287(%r15) +#CHECK: brxle %r0, %r2, .[[LAB:L.*]]-65536 # encoding: [0x85,0x02,A,A] +#CHECK: fixup A - offset: 2, value: (.[[LAB]]-65536)+2, kind: FK_390_PC16DBL #CHECK: brxle %r0, %r2, .[[LAB:L.*]]-65536 # encoding: [0x85,0x02,A,A] #CHECK: fixup A - offset: 2, value: (.[[LAB]]-65536)+2, kind: FK_390_PC16DBL brxle %r0,%r2, -0x10000 + jxle %r0,%r2, -0x10000 +#CHECK: brxle %r0, %r2, .[[LAB:L.*]]-2 # encoding: [0x85,0x02,A,A] +#CHECK: fixup A - offset: 2, value: (.[[LAB]]-2)+2, kind: FK_390_PC16DBL #CHECK: brxle %r0, %r2, .[[LAB:L.*]]-2 # encoding: [0x85,0x02,A,A] #CHECK: fixup A - offset: 2, value: (.[[LAB]]-2)+2, kind: FK_390_PC16DBL brxle %r0, %r2, -2 + jxle %r0, %r2, -2 +#CHECK: brxle %r0, %r2, .[[LAB:L.*]] # encoding: [0x85,0x02,A,A] +#CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL #CHECK: brxle %r0, %r2, .[[LAB:L.*]] # encoding: [0x85,0x02,A,A] #CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL brxle %r0,%r2, 0 + jxle %r0,%r2, 0 +#CHECK: brxle %r0, %r2, .[[LAB:L.*]]+65534 # encoding: [0x85,0x02,A,A] +#CHECK: fixup A - offset: 2, value: (.[[LAB]]+65534)+2, kind: FK_390_PC16DBL #CHECK: brxle %r0, %r2, .[[LAB:L.*]]+65534 # encoding: [0x85,0x02,A,A] #CHECK: fixup A - offset: 2, value: (.[[LAB]]+65534)+2, kind: FK_390_PC16DBL brxle %r0,%r2, 0xfffe + jxle %r0,%r2, 0xfffe +#CHECK: brxle %r0, %r2, foo # encoding: [0x85,0x02,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL +#CHECK: brxle %r14, %r2, foo # encoding: [0x85,0xe2,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL +#CHECK: brxle %r15, %r2, foo # encoding: [0x85,0xf2,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL #CHECK: brxle %r0, %r2, foo # encoding: [0x85,0x02,A,A] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL #CHECK: brxle %r14, %r2, foo # encoding: [0x85,0xe2,A,A] @@ -2092,7 +2654,16 @@ brxle %r0,%r2,foo brxle %r14,%r2,foo brxle %r15,%r2,foo + jxle %r0,%r2,foo + jxle %r14,%r2,foo + jxle %r15,%r2,foo +#CHECK: brxle %r0, %r2, bar+100 # encoding: [0x85,0x02,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL +#CHECK: brxle %r14, %r2, bar+100 # encoding: [0x85,0xe2,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL +#CHECK: brxle %r15, %r2, bar+100 # encoding: [0x85,0xf2,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL #CHECK: brxle %r0, %r2, bar+100 # encoding: [0x85,0x02,A,A] #CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL #CHECK: brxle %r14, %r2, bar+100 # encoding: [0x85,0xe2,A,A] @@ -2102,7 +2673,16 @@ brxle %r0,%r2,bar+100 brxle %r14,%r2,bar+100 brxle %r15,%r2,bar+100 + jxle %r0,%r2,bar+100 + jxle %r14,%r2,bar+100 + jxle %r15,%r2,bar+100 +#CHECK: brxle %r0, %r2, bar@PLT # encoding: [0x85,0x02,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL +#CHECK: brxle %r14, %r2, bar@PLT # encoding: [0x85,0xe2,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL +#CHECK: brxle %r15, %r2, bar@PLT # encoding: [0x85,0xf2,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL #CHECK: brxle %r0, %r2, bar@PLT # encoding: [0x85,0x02,A,A] #CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL #CHECK: brxle %r14, %r2, bar@PLT # encoding: [0x85,0xe2,A,A] @@ -2112,20 +2692,41 @@ brxle %r0,%r2,bar@PLT brxle %r14,%r2,bar@PLT brxle %r15,%r2,bar@PLT + jxle %r0,%r2,bar@PLT + jxle %r14,%r2,bar@PLT + jxle %r15,%r2,bar@PLT +#CHECK: brxlg %r0, %r2, .[[LAB:L.*]]-65536 # encoding: [0xec,0x02,A,A,0x00,0x45] +#CHECK: fixup A - offset: 2, value: (.[[LAB]]-65536)+2, kind: FK_390_PC16DBL #CHECK: brxlg %r0, %r2, .[[LAB:L.*]]-65536 # encoding: [0xec,0x02,A,A,0x00,0x45] #CHECK: fixup A - offset: 2, value: (.[[LAB]]-65536)+2, kind: FK_390_PC16DBL brxlg %r0,%r2, -0x10000 + jxleg %r0,%r2, -0x10000 +#CHECK: brxlg %r0, %r2, .[[LAB:L.*]]-2 # encoding: [0xec,0x02,A,A,0x00,0x45] +#CHECK: fixup A - offset: 2, value: (.[[LAB]]-2)+2, kind: FK_390_PC16DBL #CHECK: brxlg %r0, %r2, .[[LAB:L.*]]-2 # encoding: [0xec,0x02,A,A,0x00,0x45] #CHECK: fixup A - offset: 2, value: (.[[LAB]]-2)+2, kind: FK_390_PC16DBL brxlg %r0, %r2, -2 + jxleg %r0, %r2, -2 +#CHECK: brxlg %r0, %r2, .[[LAB:L.*]] # encoding: [0xec,0x02,A,A,0x00,0x45] +#CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL #CHECK: brxlg %r0, %r2, .[[LAB:L.*]] # encoding: [0xec,0x02,A,A,0x00,0x45] #CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL brxlg %r0,%r2, 0 + jxleg %r0,%r2, 0 +#CHECK: brxlg %r0, %r2, .[[LAB:L.*]]+65534 # encoding: [0xec,0x02,A,A,0x00,0x45] +#CHECK: fixup A - offset: 2, value: (.[[LAB]]+65534)+2, kind: FK_390_PC16DBL #CHECK: brxlg %r0, %r2, .[[LAB:L.*]]+65534 # encoding: [0xec,0x02,A,A,0x00,0x45] #CHECK: fixup A - offset: 2, value: (.[[LAB]]+65534)+2, kind: FK_390_PC16DBL brxlg %r0,%r2, 0xfffe + jxleg %r0,%r2, 0xfffe +#CHECK: brxlg %r0, %r2, foo # encoding: [0xec,0x02,A,A,0x00,0x45] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL +#CHECK: brxlg %r14, %r2, foo # encoding: [0xec,0xe2,A,A,0x00,0x45] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL +#CHECK: brxlg %r15, %r2, foo # encoding: [0xec,0xf2,A,A,0x00,0x45] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL #CHECK: brxlg %r0, %r2, foo # encoding: [0xec,0x02,A,A,0x00,0x45] #CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL #CHECK: brxlg %r14, %r2, foo # encoding: [0xec,0xe2,A,A,0x00,0x45] @@ -2135,7 +2736,16 @@ brxlg %r0,%r2,foo brxlg %r14,%r2,foo brxlg %r15,%r2,foo + jxleg %r0,%r2,foo + jxleg %r14,%r2,foo + jxleg %r15,%r2,foo +#CHECK: brxlg %r0, %r2, bar+100 # encoding: [0xec,0x02,A,A,0x00,0x45] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL +#CHECK: brxlg %r14, %r2, bar+100 # encoding: [0xec,0xe2,A,A,0x00,0x45] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL +#CHECK: brxlg %r15, %r2, bar+100 # encoding: [0xec,0xf2,A,A,0x00,0x45] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL #CHECK: brxlg %r0, %r2, bar+100 # encoding: [0xec,0x02,A,A,0x00,0x45] #CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL #CHECK: brxlg %r14, %r2, bar+100 # encoding: [0xec,0xe2,A,A,0x00,0x45] @@ -2145,7 +2755,16 @@ brxlg %r0,%r2,bar+100 brxlg %r14,%r2,bar+100 brxlg %r15,%r2,bar+100 + jxleg %r0,%r2,bar+100 + jxleg %r14,%r2,bar+100 + jxleg %r15,%r2,bar+100 +#CHECK: brxlg %r0, %r2, bar@PLT # encoding: [0xec,0x02,A,A,0x00,0x45] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL +#CHECK: brxlg %r14, %r2, bar@PLT # encoding: [0xec,0xe2,A,A,0x00,0x45] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL +#CHECK: brxlg %r15, %r2, bar@PLT # encoding: [0xec,0xf2,A,A,0x00,0x45] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL #CHECK: brxlg %r0, %r2, bar@PLT # encoding: [0xec,0x02,A,A,0x00,0x45] #CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL #CHECK: brxlg %r14, %r2, bar@PLT # encoding: [0xec,0xe2,A,A,0x00,0x45] @@ -2155,6 +2774,9 @@ brxlg %r0,%r2,bar@PLT brxlg %r14,%r2,bar@PLT brxlg %r15,%r2,bar@PLT + jxleg %r0,%r2,bar@PLT + jxleg %r14,%r2,bar@PLT + jxleg %r15,%r2,bar@PLT #CHECK: c %r0, 0 # encoding: [0x59,0x00,0x00,0x00] #CHECK: c %r0, 4095 # encoding: [0x59,0x00,0x0f,0xff] _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits