479 lines · plain
1 2# RUN: llvm-mc -triple s390x-unknown-unknown -mcpu=z13 --show-encoding %s | FileCheck %s3 4# RUN: llvm-mc -triple s390x-unknown-unknown -mcpu=z13 -filetype=obj %s -o %t5# RUN: llvm-readobj -r %t | FileCheck %s -check-prefix=CHECK-REL6# RUN: llvm-readelf -s - < %t | FileCheck %s --check-prefix=READELF --implicit-check-not=TLS7 8# RUN: llvm-mc -triple s390x-unknown-unknown -mcpu=z13 -filetype=obj %s | \9# RUN: llvm-objdump -d - | FileCheck %s -check-prefix=CHECK-DIS10 11# CHECK: larl %r14, target # encoding: [0xc0,0xe0,A,A,A,A]12# CHECK-NEXT: # fixup A - offset: 2, value: target+2, kind: FK_390_PC32DBL13# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_PC32DBL target 0x214 .align 1615 larl %r14, target16 17# CHECK: larl %r14, target@GOT # encoding: [0xc0,0xe0,A,A,A,A]18# CHECK-NEXT: # fixup A - offset: 2, value: target@GOT+2, kind: FK_390_PC32DBL19# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_GOTENT target 0x220 .align 1621 larl %r14, target@got22 23# CHECK: larl %r14, target@GOTENT # encoding: [0xc0,0xe0,A,A,A,A]24# CHECK-NEXT: # fixup A - offset: 2, value: target@GOTENT+2, kind: FK_390_PC32DBL25# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_GOTENT target 0x226 .align 1627 larl %r14, target@gotent28 29# CHECK: larl %r14, s_indntpoff@INDNTPOFF # encoding: [0xc0,0xe0,A,A,A,A]30# CHECK-NEXT: # fixup A - offset: 2, value: s_indntpoff@INDNTPOFF+2, kind: FK_390_PC32DBL31# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_TLS_IEENT s_indntpoff 0x232 .align 1633 larl %r14, s_indntpoff@indntpoff34 35# CHECK: brasl %r14, target # encoding: [0xc0,0xe5,A,A,A,A]36# CHECK-NEXT: # fixup A - offset: 2, value: target+2, kind: FK_390_PC32DBL37# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_PC32DBL target 0x238 .align 1639 brasl %r14, target40 41# CHECK: brasl %r14, target@PLT # encoding: [0xc0,0xe5,A,A,A,A]42# CHECK-NEXT: # fixup A - offset: 2, value: target@PLT+2, kind: FK_390_PC32DBL43# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_PLT32DBL target 0x244 .align 1645 brasl %r14, target@plt46 47# CHECK: brasl %r14, target@PLT:tls_gdcall:s_gdcall # encoding: [0xc0,0xe5,A,A,A,A]48# CHECK-NEXT: # fixup A - offset: 2, value: target@PLT+2, kind: FK_390_PC32DBL49# CHECK-NEXT: # fixup B - offset: 0, value: s_gdcall@TLSGD, kind: FK_390_TLS_CALL50# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_PLT32DBL target 0x251# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_GDCALL s_gdcall 0x052 .align 1653 brasl %r14, target@plt:tls_gdcall:s_gdcall54 55# CHECK: brasl %r14, target@PLT:tls_ldcall:s_ldcall # encoding: [0xc0,0xe5,A,A,A,A]56# CHECK-NEXT: # fixup A - offset: 2, value: target@PLT+2, kind: FK_390_PC32DBL57# CHECK-NEXT: # fixup B - offset: 0, value: s_ldcall@TLSLDM, kind: FK_390_TLS_CALL58# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_PLT32DBL target 0x259# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LDCALL s_ldcall 0x060 .align 1661 brasl %r14, target@plt:tls_ldcall:s_ldcall62 63# CHECK: bras %r14, target # encoding: [0xa7,0xe5,A,A]64# CHECK-NEXT: # fixup A - offset: 2, value: target+2, kind: FK_390_PC16DBL65# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_PC16DBL target 0x266 .align 1667 bras %r14, target68 69# CHECK: bras %r14, target@PLT # encoding: [0xa7,0xe5,A,A]70# CHECK-NEXT: # fixup A - offset: 2, value: target@PLT+2, kind: FK_390_PC16DBL71# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_PLT16DBL target 0x272 .align 1673 bras %r14, target@plt74 75# CHECK: bras %r14, target@PLT:tls_gdcall:gdcall # encoding: [0xa7,0xe5,A,A]76# CHECK-NEXT: # fixup A - offset: 2, value: target@PLT+2, kind: FK_390_PC16DBL77# CHECK-NEXT: # fixup B - offset: 0, value: gdcall@TLSGD, kind: FK_390_TLS_CALL78# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_PLT16DBL target 0x279# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_GDCALL gdcall 0x080 .align 1681 bras %r14, target@plt:tls_gdcall:gdcall82 83# CHECK: bras %r14, target@PLT:tls_ldcall:ldcall # encoding: [0xa7,0xe5,A,A]84# CHECK-NEXT: # fixup A - offset: 2, value: target@PLT+2, kind: FK_390_PC16DBL85# CHECK-NEXT: # fixup B - offset: 0, value: ldcall@TLSLDM, kind: FK_390_TLS_CALL86# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_PLT16DBL target 0x287# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LDCALL ldcall 0x088 .align 1689 bras %r14, target@plt:tls_ldcall:ldcall90 91 92# Symbolic displacements93 94## BD1295# CHECK: vl %v0, src # encoding: [0xe7,0x00,0b0000AAAA,A,0x00,0x06]96# CHECK-NEXT: # fixup A - offset: 2, value: src, kind: FK_390_U12Imm97# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_12 src 0x098 .align 1699 vl %v0, src100 101# CHECK: vl %v0, src(%r1) # encoding: [0xe7,0x00,0b0001AAAA,A,0x00,0x06]102# CHECK-NEXT: # fixup A - offset: 2, value: src, kind: FK_390_U12Imm103# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_12 src 0x0104 .align 16105 vl %v0, src(%r1)106 107# CHECK: .insn vrx,253987186016262,%v0,src(%r1),3 # encoding: [0xe7,0x00,0b0001AAAA,A,0x30,0x06]108# CHECK-NEXT: # fixup A - offset: 2, value: src, kind: FK_390_U12Imm109# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_12 src 0x0110 .align 16111 .insn vrx,0xe70000000006,%v0,src(%r1),3 # vl112 113## BD20114# CHECK: lmg %r6, %r15, src # encoding: [0xeb,0x6f,0b0000AAAA,A,A,0x04]115# CHECK-NEXT: # fixup A - offset: 2, value: src, kind: FK_390_S20Imm116# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_20 src 0x0117 .align 16118 lmg %r6, %r15, src119 120# CHECK: lmg %r6, %r15, src(%r1) # encoding: [0xeb,0x6f,0b0001AAAA,A,A,0x04]121# CHECK-NEXT: # fixup A - offset: 2, value: src, kind: FK_390_S20Imm122# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_20 src 0x0123 .align 16124 lmg %r6, %r15, src(%r1)125 126# CHECK: .insn siy,258385232527441,src(%r15),240 # encoding: [0xeb,0xf0,0b1111AAAA,A,A,0x51]127# CHECK-NEXT: # fixup A - offset: 2, value: src, kind: FK_390_S20Imm128# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_20 src 0x0129 .align 16130 .insn siy,0xeb0000000051,src(%r15),240 # tmy131 132## BDX12133# CHECK: la %r14, src # encoding: [0x41,0xe0,0b0000AAAA,A]134# CHECK-NEXT: # fixup A - offset: 2, value: src, kind: FK_390_U12Imm135# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_12 src 0x0136 .align 16137 la %r14, src138 139# CHECK: la %r14, src(%r1) # encoding: [0x41,0xe0,0b0001AAAA,A]140# CHECK-NEXT: # fixup A - offset: 2, value: src, kind: FK_390_U12Imm141# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_12 src 0x0142 .align 16143 la %r14, src(%r1)144 145# CHECK: la %r14, src(%r1,%r2) # encoding: [0x41,0xe1,0b0010AAAA,A]146# CHECK-NEXT: # fixup A - offset: 2, value: src, kind: FK_390_U12Imm147# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_12 src 0x0148 .align 16149 la %r14, src(%r1, %r2)150 151# CHECK: .insn vrx,253987186016262,%v2,src(%r2,%r3),3 # encoding: [0xe7,0x22,0b0011AAAA,A,0x30,0x06]152# CHECK-NEXT: # fixup A - offset: 2, value: src, kind: FK_390_U12Imm153# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_12 src 0x0154 .align 16155 .insn vrx,0xe70000000006,%v2,src(%r2, %r3),3 # vl156 157##BDX20158# CHECK: lg %r14, src # encoding: [0xe3,0xe0,0b0000AAAA,A,A,0x04]159# CHECK-NEXT: # fixup A - offset: 2, value: src, kind: FK_390_S20Imm160# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_20 src 0x0161 .align 16162 lg %r14, src163 164# CHECK: lg %r14, src(%r1) # encoding: [0xe3,0xe0,0b0001AAAA,A,A,0x04]165# CHECK-NEXT: # fixup A - offset: 2, value: src, kind: FK_390_S20Imm166# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_20 src 0x0167 .align 16168 lg %r14, src(%r1)169 170# CHECK: lg %r14, src(%r1,%r2) # encoding: [0xe3,0xe1,0b0010AAAA,A,A,0x04]171# CHECK-NEXT: # fixup A - offset: 2, value: src, kind: FK_390_S20Imm172# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_20 src 0x0173 .align 16174 lg %r14, src(%r1, %r2)175 176# CHECK: .insn rxy,260584255783013,%f1,src(%r2,%r15) # encoding: [0xed,0x12,0b1111AAAA,A,A,0x65]177# CHECK-NEXT: # fixup A - offset: 2, value: src, kind: FK_390_S20Imm178# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_20 src 0x0179 .align 16180 .insn rxy,0xed0000000065,%f1,src(%r2,%r15) # ldy181 182##BD12L4183# CHECK: tp src(16) # encoding: [0xeb,0xf0,0b0000AAAA,A,0x00,0xc0]184# CHECK-NEXT: # fixup A - offset: 2, value: src, kind: FK_390_U12Imm185# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_12 src 0x0186 .align 16187 tp src(16)188 189# CHECK: tp src(16,%r1) # encoding: [0xeb,0xf0,0b0001AAAA,A,0x00,0xc0]190# CHECK-NEXT: # fixup A - offset: 2, value: src, kind: FK_390_U12Imm191# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_12 src 0x0192 .align 16193 tp src(16, %r1)194 195##BD12L8196#SSa197# CHECK: mvc dst(1,%r1), src(%r1) # encoding: [0xd2,0x00,0b0001AAAA,A,0b0001BBBB,B]198# CHECK-NEXT: # fixup A - offset: 2, value: dst, kind: FK_390_U12Imm199# CHECK-NEXT: # fixup B - offset: 4, value: src, kind: FK_390_U12Imm200# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_12 dst 0x0201# CHECK-REL: 0x{{[0-9A-F]*4}} R_390_12 src 0x0202 .align 16203 mvc dst(1,%r1), src(%r1)204 205#SSb206# CHECK: mvo src(16,%r1), src(1,%r2) # encoding: [0xf1,0xf0,0b0001AAAA,A,0b0010BBBB,B]207# CHECK-NEXT: # fixup A - offset: 2, value: src, kind: FK_390_U12Imm208# CHECK-NEXT: # fixup B - offset: 4, value: src, kind: FK_390_U12Imm209# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_12 src 0x0210# CHECK-REL: 0x{{[0-9A-F]*4}} R_390_12 src 0x0211 .align 16212 mvo src(16,%r1), src(1,%r2)213 214#SSc215# CHECK: srp src(1,%r1), src(%r15), 0 # encoding: [0xf0,0x00,0b0001AAAA,A,0b1111BBBB,B]216# CHECK-NEXT: # fixup A - offset: 2, value: src, kind: FK_390_U12Imm217# CHECK-NEXT: # fixup B - offset: 4, value: src, kind: FK_390_U12Imm218# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_12 src 0x0219# CHECK-REL: 0x{{[0-9A-F]*4}} R_390_12 src 0x0220 .align 16221 srp src(1,%r1), src(%r15), 0222 223##BDR12224#SSd225# CHECK: mvck dst(%r2,%r1), src, %r3 # encoding: [0xd9,0x23,0b0001AAAA,A,0b0000BBBB,B]226# CHECK-NEXT: # fixup A - offset: 2, value: dst, kind: FK_390_U12Imm227# CHECK-NEXT: # fixup B - offset: 4, value: src, kind: FK_390_U12Imm228# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_12 dst 0x0229# CHECK-REL: 0x{{[0-9A-F]*4}} R_390_12 src 0x0230 .align 16231 mvck dst(%r2,%r1), src, %r3232 233# CHECK: .insn ss,238594023227392,dst(%r2,%r1),src,%r3 # encoding: [0xd9,0x23,0b0001AAAA,A,0b0000BBBB,B]234# CHECK-NEXT: # fixup A - offset: 2, value: dst, kind: FK_390_U12Imm235# CHECK-NEXT: # fixup B - offset: 4, value: src, kind: FK_390_U12Imm236# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_12 dst 0x0237# CHECK-REL: 0x{{[0-9A-F]*4}} R_390_12 src 0x0238 .align 16239 .insn ss,0xd90000000000,dst(%r2,%r1),src,%r3 # mvck240 241#SSe242# CHECK: lmd %r2, %r4, src1(%r1), src2(%r1) # encoding: [0xef,0x24,0b0001AAAA,A,0b0001BBBB,B]243# CHECK-NEXT: # fixup A - offset: 2, value: src1, kind: FK_390_U12Imm244# CHECK-NEXT: # fixup B - offset: 4, value: src2, kind: FK_390_U12Imm245# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_12 src1 0x0246# CHECK-REL: 0x{{[0-9A-F]*4}} R_390_12 src2 0x0247 .align 16248 lmd %r2, %r4, src1(%r1), src2(%r1)249 250#SSf251# CHECK: pka dst(%r15), src(256,%r15) # encoding: [0xe9,0xff,0b1111AAAA,A,0b1111BBBB,B]252# CHECK-NEXT: # fixup A - offset: 2, value: dst, kind: FK_390_U12Imm253# CHECK-NEXT: # fixup B - offset: 4, value: src, kind: FK_390_U12Imm254# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_12 dst 0x0255# CHECK-REL: 0x{{[0-9A-F]*4}} R_390_12 src 0x0256 .align 16257 pka dst(%r15), src(256,%r15)258 259#SSE260# CHECK: strag dst(%r1), src(%r15) # encoding: [0xe5,0x02,0b0001AAAA,A,0b1111BBBB,B]261# CHECK-NEXT: # fixup A - offset: 2, value: dst, kind: FK_390_U12Imm262# CHECK-NEXT: # fixup B - offset: 4, value: src, kind: FK_390_U12Imm263# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_12 dst 0x0264# CHECK-REL: 0x{{[0-9A-F]*4}} R_390_12 src 0x0265 .align 16266 strag dst(%r1), src(%r15)267 268# CHECK: .insn sse,251796752695296,dst(%r1),src(%r15) # encoding: [0xe5,0x02,0b0001AAAA,A,0b1111BBBB,B]269# CHECK-NEXT: # fixup A - offset: 2, value: dst, kind: FK_390_U12Imm270# CHECK-NEXT: # fixup B - offset: 4, value: src, kind: FK_390_U12Imm271# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_12 dst 0x0272# CHECK-REL: 0x{{[0-9A-F]*4}} R_390_12 src 0x0273 .align 16274 .insn sse,0xe50200000000,dst(%r1),src(%r15) # strag275 276#SSF277# CHECK: ectg src, src(%r15), %r2 # encoding: [0xc8,0x21,0b0000AAAA,A,0b1111BBBB,B]278# CHECK-NEXT: # fixup A - offset: 2, value: src, kind: FK_390_U12Imm279# CHECK-NEXT: # fixup B - offset: 4, value: src, kind: FK_390_U12Imm280# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_12 src 0x0281# CHECK-REL: 0x{{[0-9A-F]*4}} R_390_12 src 0x0282 .align 16283 ectg src, src(%r15), %r2284 285# CHECK: .insn ssf,219906620522496,src,src(%r15),%r2 # encoding: [0xc8,0x21,0b0000AAAA,A,0b1111BBBB,B]286# CHECK-NEXT: # fixup A - offset: 2, value: src, kind: FK_390_U12Imm287# CHECK-NEXT: # fixup B - offset: 4, value: src, kind: FK_390_U12Imm288# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_12 src 0x0289# CHECK-REL: 0x{{[0-9A-F]*4}} R_390_12 src 0x0290 .align 16291 .insn ssf,0xc80100000000,src,src(%r15),%r2 # ectg292 293##BDV12294# CHECK: vgeg %v0, src(%v0,%r1), 0 # encoding: [0xe7,0x00,0b0001AAAA,A,0x00,0x12]295# CHECK-NEXT: # fixup A - offset: 2, value: src, kind: FK_390_U12Imm296# CHECK-REL: 0x{{[0-9A-F]*2}} R_390_12 src 0x0297 .align 16298 vgeg %v0, src(%v0,%r1), 0299 300## Fixup for second operand only301# CHECK: mvc 32(8,%r1), src # encoding: [0xd2,0x07,0x10,0x20,0b0000AAAA,A]302# CHECK-NEXT: # fixup A - offset: 4, value: src, kind: FK_390_U12Imm303 .align 16304 mvc 32(8,%r1),src305 306##U8307# CHECK: cli 0(%r1), src # encoding: [0x95,A,0x10,0x00]308# CHECK-NEXT: # fixup A - offset: 1, value: src, kind: FK_390_U8Imm309# CHECK-REL: 0x{{[0-9A-F]+}} R_390_8 src 0x0310 .align 16311 cli 0(%r1),src312 313# CHECK: [[L:\..+]]:314# CHECK-NEXT: cli 0(%r1), local_u8-[[L]] # encoding: [0x95,A,0x10,0x00]315# CHECK-NEXT: # fixup A - offset: 1, value: local_u8-[[L]], kind: FK_390_U8Imm316# CHECK-DIS: 95 04 10 00 cli 0(%r1), 4317 .align 16318 cli 0(%r1),local_u8-.319local_u8:320 321##S8322# CHECK: asi 0(%r1), src # encoding: [0xeb,A,0x10,0x00,0x00,0x6a]323# CHECK-NEXT: # fixup A - offset: 1, value: src, kind: FK_390_S8Imm324# CHECK-REL: 0x{{[0-9A-F]+}} R_390_8 src 0x0325 .align 16326 asi 0(%r1),src327 328# CHECK: [[L:\..+]]:329# CHECK-NEXT: asi 0(%r1), local_s8-[[L]] # encoding: [0xeb,A,0x10,0x00,0x00,0x6a]330# CHECK-NEXT: # fixup A - offset: 1, value: local_s8-[[L]], kind: FK_390_S8Imm331# CHECK-DIS: eb 06 10 00 00 6a asi 0(%r1), 6332 .align 16333 asi 0(%r1),local_s8-.334local_s8:335 336##U16337# CHECK: oill %r1, src # encoding: [0xa5,0x1b,A,A]338# CHECK-NEXT: # fixup A - offset: 2, value: src, kind: FK_390_U16Imm339# CHECK-REL: 0x{{[0-9A-F]+}} R_390_16 src 0x0340 .align 16341 oill %r1,src342 343# CHECK: [[L:\..+]]:344# CHECK-NEXT: oill %r1, local_u16-[[L]] # encoding: [0xa5,0x1b,A,A]345# CHECK-NEXT: # fixup A - offset: 2, value: local_u16-[[L]], kind: FK_390_U16Imm346# CHECK-DIS: a5 1b 00 04 oill %r1, 4347 .align 16348 oill %r1,local_u16-.349local_u16:350 351# CHECK: [[L:\..+]]:352# CHECK-NEXT: oill %r1, src-[[L]] # encoding: [0xa5,0x1b,A,A]353# CHECK-NEXT: # fixup A - offset: 2, value: src-[[L]], kind: FK_390_U16Imm354# CHECK-REL: 0x{{[0-9A-F]+}} R_390_PC16 src 0x2355 .align 16356 oill %r1,src-.357 358##S16359# CHECK: lghi %r1, src # encoding: [0xa7,0x19,A,A]360# CHECK-NEXT: # fixup A - offset: 2, value: src, kind: FK_390_S16Imm361# CHECK-REL: 0x{{[0-9A-F]+}} R_390_16 src 0x0362 .align 16363 lghi %r1,src364 365# CHECK: [[L:\..+]]:366# CHECK-NEXT: lghi %r1, local_s16-[[L]] # encoding: [0xa7,0x19,A,A]367# CHECK-NEXT: # fixup A - offset: 2, value: local_s16-[[L]], kind: FK_390_S16Imm368# CHECK-DIS: a7 19 00 04 lghi %r1, 4369 .align 16370 lghi %r1,local_s16-.371local_s16:372 373# CHECK: [[L:\..+]]:374# CHECK-NEXT: lghi %r1, src-[[L]] # encoding: [0xa7,0x19,A,A]375# CHECK-NEXT: # fixup A - offset: 2, value: src-[[L]], kind: FK_390_S16Imm376# CHECK-REL: 0x{{[0-9A-F]+}} R_390_PC16 src 0x2377 .align 16378 lghi %r1,src-.379 380##U32381# CHECK: clfi %r1, src # encoding: [0xc2,0x1f,A,A,A,A]382# CHECK-NEXT: # fixup A - offset: 2, value: src, kind: FK_390_U32Imm383# CHECK-REL: 0x{{[0-9A-F]+}} R_390_32 src 0x0384 .align 16385 clfi %r1,src386 387# CHECK: [[L:\..+]]:388# CHECK-NEXT: clfi %r1, local_u32-[[L]] # encoding: [0xc2,0x1f,A,A,A,A]389# CHECK-NEXT: # fixup A - offset: 2, value: local_u32-[[L]], kind: FK_390_U32Imm390# CHECK-DIS: c2 1f 00 00 00 06 clfi %r1, 6391 .align 16392 clfi %r1,local_u32-.393local_u32:394 395# CHECK: [[L:\..+]]:396# CHECK: clfi %r1, src-[[L]] # encoding: [0xc2,0x1f,A,A,A,A]397# CHECK-NEXT: # fixup A - offset: 2, value: src-[[L]], kind: FK_390_U32Imm398# CHECK-REL: 0x{{[0-9A-F]+}} R_390_PC32 src 0x2399 .align 16400 clfi %r1,src-.401 402##S32403# CHECK: lgfi %r1, src # encoding: [0xc0,0x11,A,A,A,A]404# CHECK-NEXT: # fixup A - offset: 2, value: src, kind: FK_390_S32Imm405# CHECK-REL: 0x{{[0-9A-F]+}} R_390_32 src 0x0406 .align 16407 lgfi %r1,src408 409# CHECK: [[L:\..+]]:410# CHECK: lgfi %r1, local_s32-[[L]] # encoding: [0xc0,0x11,A,A,A,A]411# CHECK-NEXT: # fixup A - offset: 2, value: local_s32-[[L]], kind: FK_390_S32Imm412# CHECK-DIS: c0 11 00 00 00 06 lgfi %r1, 6413 .align 16414 lgfi %r1,local_s32-.415local_s32:416 417# CHECK: [[L:\..+]]:418# CHECK: lgfi %r1, src-[[L]] # encoding: [0xc0,0x11,A,A,A,A]419# CHECK-NEXT: # fixup A - offset: 2, value: src-[[L]], kind: FK_390_S32Imm420# CHECK-REL: 0x{{[0-9A-F]+}} R_390_PC32 src 0x2421 .align 16422 lgfi %r1,src-.423 424# CHECK-REL-LABEL: .rela.adjusted425# CHECK-REL: R_390_GOTENT local426# CHECK-REL: R_390_PLT32DBL local427.section .adjusted,"ax"428local:429larl %r14, local@got430brasl %r14, local@plt431 432# Data relocs433# llvm-mc does not show any "encoding" string for data, so we just check the relocs434 435# CHECK-REL-LABEL: .rela.data436 .data437 438# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LE64 s_ntpoff 0x0439 .align 16440 .quad s_ntpoff@ntpoff441 442# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LDO64 s_dtpoff 0x0443 .align 16444 .quad s_dtpoff@dtpoff445 446# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LDM64 s_tlsldm 0x0447 .align 16448 .quad s_tlsldm@tlsldm449 450# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_GD64 s_tlsgd 0x0451 .align 16452 .quad s_tlsgd@tlsgd453 454# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LE32 s_ntpoff 0x0455 .align 16456 .long s_ntpoff@ntpoff457 458# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LDO32 s_dtpoff 0x0459 .align 16460 .long s_dtpoff@dtpoff461 462# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_LDM32 s_tlsldm 0x0463 .align 16464 .long s_tlsldm@tlsldm465 466# CHECK-REL: 0x{{[0-9A-F]*0}} R_390_TLS_GD32 s_tlsgd 0x0467 .align 16468 .long s_tlsgd@tlsgd469 470# READELF: TLS GLOBAL DEFAULT UND s_indntpoff471# READELF: TLS GLOBAL DEFAULT UND s_gdcall472# READELF: TLS GLOBAL DEFAULT UND s_ldcall473# READELF: TLS GLOBAL DEFAULT UND gdcall474# READELF: TLS GLOBAL DEFAULT UND ldcall475# READELF: TLS GLOBAL DEFAULT UND s_ntpoff476# READELF: TLS GLOBAL DEFAULT UND s_dtpoff477# READELF: TLS GLOBAL DEFAULT UND s_tlsldm478# READELF: TLS GLOBAL DEFAULT UND s_tlsgd479