llvm.org GIT mirror llvm / 89dcdff
[MC] Merge VK_PPC_TPREL in to generic VK_TPREL. Differential Revision: http://reviews.llvm.org/D17038 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260401 91177308-0d34-0410-b5e6-96231b3b80d8 Colin LeMahieu 4 years ago
10 changed file(s) with 54 addition(s) and 58 deletion(s). Raw diff Collapse all Expand all
214214 VK_PPC_TOC_HI, // symbol@toc@h
215215 VK_PPC_TOC_HA, // symbol@toc@ha
216216 VK_PPC_DTPMOD, // symbol@dtpmod
217 VK_PPC_TPREL, // symbol@tprel
218217 VK_PPC_TPREL_LO, // symbol@tprel@l
219218 VK_PPC_TPREL_HI, // symbol@tprel@h
220219 VK_PPC_TPREL_HA, // symbol@tprel@ha
222221 VK_PPC_TPREL_HIGHERA, // symbol@tprel@highera
223222 VK_PPC_TPREL_HIGHEST, // symbol@tprel@highest
224223 VK_PPC_TPREL_HIGHESTA, // symbol@tprel@highesta
225 VK_PPC_DTPREL, // symbol@dtprel
226224 VK_PPC_DTPREL_LO, // symbol@dtprel@l
227225 VK_PPC_DTPREL_HI, // symbol@dtprel@h
228226 VK_PPC_DTPREL_HA, // symbol@dtprel@ha
405405 case MCSymbolRefExpr::VK_TLSLD:
406406 case MCSymbolRefExpr::VK_TLSLDM:
407407 case MCSymbolRefExpr::VK_TPOFF:
408 case MCSymbolRefExpr::VK_TPREL:
408409 case MCSymbolRefExpr::VK_DTPOFF:
410 case MCSymbolRefExpr::VK_DTPREL:
409411 case MCSymbolRefExpr::VK_Mips_TLSGD:
410412 case MCSymbolRefExpr::VK_Mips_GOTTPREL:
411413 case MCSymbolRefExpr::VK_Mips_TPREL_HI:
412414 case MCSymbolRefExpr::VK_Mips_TPREL_LO:
413415 case MCSymbolRefExpr::VK_PPC_DTPMOD:
414 case MCSymbolRefExpr::VK_PPC_TPREL:
415416 case MCSymbolRefExpr::VK_PPC_TPREL_LO:
416417 case MCSymbolRefExpr::VK_PPC_TPREL_HI:
417418 case MCSymbolRefExpr::VK_PPC_TPREL_HA:
419420 case MCSymbolRefExpr::VK_PPC_TPREL_HIGHERA:
420421 case MCSymbolRefExpr::VK_PPC_TPREL_HIGHEST:
421422 case MCSymbolRefExpr::VK_PPC_TPREL_HIGHESTA:
422 case MCSymbolRefExpr::VK_PPC_DTPREL:
423423 case MCSymbolRefExpr::VK_PPC_DTPREL_LO:
424424 case MCSymbolRefExpr::VK_PPC_DTPREL_HI:
425425 case MCSymbolRefExpr::VK_PPC_DTPREL_HA:
177177 case VK_Invalid: return "<>";
178178 case VK_None: return "<>";
179179
180 case VK_DTPOFF: return "DTPOFF";
181 case VK_DTPREL: return "DTPREL";
180182 case VK_GOT: return "GOT";
181183 case VK_GOTOFF: return "GOTOFF";
182184 case VK_GOTREL: return "GOTREL";
190192 case VK_TLSLD: return "TLSLD";
191193 case VK_TLSLDM: return "TLSLDM";
192194 case VK_TPOFF: return "TPOFF";
193 case VK_DTPOFF: return "DTPOFF";
195 case VK_TPREL: return "TPREL";
194196 case VK_TLVP: return "TLVP";
195197 case VK_TLVPPAGE: return "TLVPPAGE";
196198 case VK_TLVPPAGEOFF: return "TLVPPAGEOFF";
227229 case VK_PPC_TOC_HI: return "toc@h";
228230 case VK_PPC_TOC_HA: return "toc@ha";
229231 case VK_PPC_DTPMOD: return "dtpmod";
230 case VK_PPC_TPREL: return "tprel";
231232 case VK_PPC_TPREL_LO: return "tprel@l";
232233 case VK_PPC_TPREL_HI: return "tprel@h";
233234 case VK_PPC_TPREL_HA: return "tprel@ha";
235236 case VK_PPC_TPREL_HIGHERA: return "tprel@highera";
236237 case VK_PPC_TPREL_HIGHEST: return "tprel@highest";
237238 case VK_PPC_TPREL_HIGHESTA: return "tprel@highesta";
238 case VK_PPC_DTPREL: return "dtprel";
239239 case VK_PPC_DTPREL_LO: return "dtprel@l";
240240 case VK_PPC_DTPREL_HI: return "dtprel@h";
241241 case VK_PPC_DTPREL_HA: return "dtprel@ha";
301301 case VK_Hexagon_IE: return "IE";
302302 case VK_Hexagon_IE_GOT: return "IEGOT";
303303 case VK_WebAssembly_FUNCTION: return "FUNCTION";
304 case VK_TPREL: return "tprel";
305 case VK_DTPREL: return "dtprel";
306304 }
307305 llvm_unreachable("Invalid variant kind");
308306 }
310308 MCSymbolRefExpr::VariantKind
311309 MCSymbolRefExpr::getVariantKindForName(StringRef Name) {
312310 return StringSwitch(Name.lower())
311 .Case("dtprel", VK_DTPREL)
312 .Case("dtpoff", VK_DTPOFF)
313313 .Case("got", VK_GOT)
314314 .Case("gotoff", VK_GOTOFF)
315315 .Case("gotrel", VK_GOTREL)
323323 .Case("tlsld", VK_TLSLD)
324324 .Case("tlsldm", VK_TLSLDM)
325325 .Case("tpoff", VK_TPOFF)
326 .Case("dtpoff", VK_DTPOFF)
326 .Case("tprel", VK_TPREL)
327327 .Case("tlvp", VK_TLVP)
328328 .Case("tlvppage", VK_TLVPPAGE)
329329 .Case("tlvppageoff", VK_TLVPPAGEOFF)
352352 .Case("toc@ha", VK_PPC_TOC_HA)
353353 .Case("tls", VK_PPC_TLS)
354354 .Case("dtpmod", VK_PPC_DTPMOD)
355 .Case("tprel", VK_PPC_TPREL)
356355 .Case("tprel@l", VK_PPC_TPREL_LO)
357356 .Case("tprel@h", VK_PPC_TPREL_HI)
358357 .Case("tprel@ha", VK_PPC_TPREL_HA)
360359 .Case("tprel@highera", VK_PPC_TPREL_HIGHERA)
361360 .Case("tprel@highest", VK_PPC_TPREL_HIGHEST)
362361 .Case("tprel@highesta", VK_PPC_TPREL_HIGHESTA)
363 .Case("dtprel", VK_PPC_DTPREL)
364362 .Case("dtprel@l", VK_PPC_DTPREL_LO)
365363 .Case("dtprel@h", VK_PPC_DTPREL_HI)
366364 .Case("dtprel@ha", VK_PPC_DTPREL_HA)
4949 break;
5050 case FK_Data_4:
5151 switch(Variant) {
52 case MCSymbolRefExpr::VariantKind::VK_PPC_DTPREL:
52 case MCSymbolRefExpr::VariantKind::VK_DTPREL:
5353 return ELF::R_HEX_DTPREL_32;
5454 case MCSymbolRefExpr::VariantKind::VK_GOT:
5555 return ELF::R_HEX_GOT_32;
6565 return ELF::R_HEX_LD_GOT_32;
6666 case MCSymbolRefExpr::VariantKind::VK_Hexagon_PCREL:
6767 return ELF::R_HEX_32_PCREL;
68 case MCSymbolRefExpr::VariantKind::VK_PPC_TPREL:
68 case MCSymbolRefExpr::VariantKind::VK_TPREL:
6969 return ELF::R_HEX_TPREL_32;
7070 case MCSymbolRefExpr::VariantKind::VK_None:
7171 return IsPCRel ? ELF::R_HEX_32_PCREL : ELF::R_HEX_32;
7676 return ELF::R_HEX_32_PCREL;
7777 case FK_Data_2:
7878 switch(Variant) {
79 case MCSymbolRefExpr::VariantKind::VK_PPC_DTPREL:
79 case MCSymbolRefExpr::VariantKind::VK_DTPREL:
8080 return ELF::R_HEX_DTPREL_16;
8181 case MCSymbolRefExpr::VariantKind::VK_GOT:
8282 return ELF::R_HEX_GOT_16;
8686 return ELF::R_HEX_IE_GOT_16;
8787 case MCSymbolRefExpr::VariantKind::VK_Hexagon_LD_GOT:
8888 return ELF::R_HEX_LD_GOT_16;
89 case MCSymbolRefExpr::VariantKind::VK_PPC_TPREL:
89 case MCSymbolRefExpr::VariantKind::VK_TPREL:
9090 return ELF::R_HEX_TPREL_16;
9191 case MCSymbolRefExpr::VariantKind::VK_None:
9292 return ELF::R_HEX_16;
278278 return Hexagon::fixup_Hexagon_GOTREL_32_6_X;
279279 case MCSymbolRefExpr::VK_GOT:
280280 return Hexagon::fixup_Hexagon_GOT_32_6_X;
281 case MCSymbolRefExpr::VK_PPC_TPREL:
281 case MCSymbolRefExpr::VK_TPREL:
282282 return Hexagon::fixup_Hexagon_TPREL_32_6_X;
283 case MCSymbolRefExpr::VK_PPC_DTPREL:
283 case MCSymbolRefExpr::VK_DTPREL:
284284 return Hexagon::fixup_Hexagon_DTPREL_32_6_X;
285285 case MCSymbolRefExpr::VK_Hexagon_GD_GOT:
286286 return Hexagon::fixup_Hexagon_GD_GOT_32_6_X;
318318 return Hexagon::fixup_Hexagon_IE_HI16;
319319 case MCSymbolRefExpr::VK_Hexagon_IE_GOT:
320320 return Hexagon::fixup_Hexagon_IE_GOT_HI16;
321 case MCSymbolRefExpr::VK_PPC_TPREL:
321 case MCSymbolRefExpr::VK_TPREL:
322322 return Hexagon::fixup_Hexagon_TPREL_HI16;
323 case MCSymbolRefExpr::VK_PPC_DTPREL:
323 case MCSymbolRefExpr::VK_DTPREL:
324324 return Hexagon::fixup_Hexagon_DTPREL_HI16;
325325 case MCSymbolRefExpr::VK_None:
326326 return Hexagon::fixup_Hexagon_HI16;
343343 return Hexagon::fixup_Hexagon_IE_LO16;
344344 case MCSymbolRefExpr::VK_Hexagon_IE_GOT:
345345 return Hexagon::fixup_Hexagon_IE_GOT_LO16;
346 case MCSymbolRefExpr::VK_PPC_TPREL:
346 case MCSymbolRefExpr::VK_TPREL:
347347 return Hexagon::fixup_Hexagon_TPREL_LO16;
348 case MCSymbolRefExpr::VK_PPC_DTPREL:
348 case MCSymbolRefExpr::VK_DTPREL:
349349 return Hexagon::fixup_Hexagon_DTPREL_LO16;
350350 case MCSymbolRefExpr::VK_None:
351351 return Hexagon::fixup_Hexagon_LO16;
451451 raise_relocation_error(bits, kind);
452452 case 32:
453453 switch (kind) {
454 case MCSymbolRefExpr::VK_PPC_DTPREL:
454 case MCSymbolRefExpr::VK_DTPREL:
455455 FixupKind = *Extended ? Hexagon::fixup_Hexagon_DTPREL_32_6_X
456456 : Hexagon::fixup_Hexagon_DTPREL_32;
457457 break;
486486 FixupKind =
487487 *Extended ? Hexagon::fixup_Hexagon_32_6_X : Hexagon::fixup_Hexagon_32;
488488 break;
489 case MCSymbolRefExpr::VK_PPC_TPREL:
489 case MCSymbolRefExpr::VK_TPREL:
490490 FixupKind = *Extended ? Hexagon::fixup_Hexagon_TPREL_32_6_X
491491 : Hexagon::fixup_Hexagon_TPREL_32;
492492 break;
518518 case 16:
519519 if (*Extended) {
520520 switch (kind) {
521 case MCSymbolRefExpr::VK_PPC_DTPREL:
521 case MCSymbolRefExpr::VK_DTPREL:
522522 FixupKind = Hexagon::fixup_Hexagon_DTPREL_16_X;
523523 break;
524524 case MCSymbolRefExpr::VK_GOT:
542542 case MCSymbolRefExpr::VK_None:
543543 FixupKind = Hexagon::fixup_Hexagon_16_X;
544544 break;
545 case MCSymbolRefExpr::VK_PPC_TPREL:
545 case MCSymbolRefExpr::VK_TPREL:
546546 FixupKind = Hexagon::fixup_Hexagon_TPREL_16_X;
547547 break;
548548 default:
550550 }
551551 } else
552552 switch (kind) {
553 case MCSymbolRefExpr::VK_PPC_DTPREL:
553 case MCSymbolRefExpr::VK_DTPREL:
554554 FixupKind = Hexagon::fixup_Hexagon_DTPREL_16;
555555 break;
556556 case MCSymbolRefExpr::VK_GOTREL:
577577 case MCSymbolRefExpr::VK_Hexagon_LO16:
578578 FixupKind = Hexagon::fixup_Hexagon_LO16;
579579 break;
580 case MCSymbolRefExpr::VK_PPC_TPREL:
580 case MCSymbolRefExpr::VK_TPREL:
581581 FixupKind = Hexagon::fixup_Hexagon_TPREL_16;
582582 break;
583583 default:
629629 case 11:
630630 if (*Extended)
631631 switch (kind) {
632 case MCSymbolRefExpr::VK_PPC_DTPREL:
632 case MCSymbolRefExpr::VK_DTPREL:
633633 FixupKind = Hexagon::fixup_Hexagon_DTPREL_11_X;
634634 break;
635635 case MCSymbolRefExpr::VK_GOT:
650650 case MCSymbolRefExpr::VK_None:
651651 FixupKind = Hexagon::fixup_Hexagon_11_X;
652652 break;
653 case MCSymbolRefExpr::VK_PPC_TPREL:
653 case MCSymbolRefExpr::VK_TPREL:
654654 FixupKind = Hexagon::fixup_Hexagon_TPREL_11_X;
655655 break;
656656 default:
658658 }
659659 else {
660660 switch (kind) {
661 case MCSymbolRefExpr::VK_PPC_TPREL:
661 case MCSymbolRefExpr::VK_TPREL:
662662 FixupKind = Hexagon::fixup_Hexagon_TPREL_11_X;
663663 break;
664664 default:
712712 case 6:
713713 if (*Extended) {
714714 switch (kind) {
715 case MCSymbolRefExpr::VK_PPC_DTPREL:
715 case MCSymbolRefExpr::VK_DTPREL:
716716 FixupKind = Hexagon::fixup_Hexagon_DTPREL_16_X;
717717 break;
718718 // This is part of an extender, GOT_11 is a
726726 case MCSymbolRefExpr::VK_Hexagon_PCREL:
727727 FixupKind = Hexagon::fixup_Hexagon_6_PCREL_X;
728728 break;
729 case MCSymbolRefExpr::VK_PPC_TPREL:
729 case MCSymbolRefExpr::VK_TPREL:
730730 FixupKind = Hexagon::fixup_Hexagon_TPREL_16_X;
731731 break;
732732 case MCSymbolRefExpr::VK_None:
185185 case MCSymbolRefExpr::VK_PPC_TOC_HA:
186186 Type = ELF::R_PPC64_TOC16_HA;
187187 break;
188 case MCSymbolRefExpr::VK_PPC_TPREL:
188 case MCSymbolRefExpr::VK_TPREL:
189189 Type = ELF::R_PPC_TPREL16;
190190 break;
191191 case MCSymbolRefExpr::VK_PPC_TPREL_LO:
209209 case MCSymbolRefExpr::VK_PPC_TPREL_HIGHESTA:
210210 Type = ELF::R_PPC64_TPREL16_HIGHESTA;
211211 break;
212 case MCSymbolRefExpr::VK_PPC_DTPREL:
212 case MCSymbolRefExpr::VK_DTPREL:
213213 Type = ELF::R_PPC64_DTPREL16;
214214 break;
215215 case MCSymbolRefExpr::VK_PPC_DTPREL_LO:
318318 case MCSymbolRefExpr::VK_PPC_TOC_LO:
319319 Type = ELF::R_PPC64_TOC16_LO_DS;
320320 break;
321 case MCSymbolRefExpr::VK_PPC_TPREL:
321 case MCSymbolRefExpr::VK_TPREL:
322322 Type = ELF::R_PPC64_TPREL16_DS;
323323 break;
324324 case MCSymbolRefExpr::VK_PPC_TPREL_LO:
325325 Type = ELF::R_PPC64_TPREL16_LO_DS;
326326 break;
327 case MCSymbolRefExpr::VK_PPC_DTPREL:
327 case MCSymbolRefExpr::VK_DTPREL:
328328 Type = ELF::R_PPC64_DTPREL16_DS;
329329 break;
330330 case MCSymbolRefExpr::VK_PPC_DTPREL_LO:
379379 case MCSymbolRefExpr::VK_PPC_DTPMOD:
380380 Type = ELF::R_PPC64_DTPMOD64;
381381 break;
382 case MCSymbolRefExpr::VK_PPC_TPREL:
382 case MCSymbolRefExpr::VK_TPREL:
383383 Type = ELF::R_PPC64_TPREL64;
384384 break;
385 case MCSymbolRefExpr::VK_PPC_DTPREL:
385 case MCSymbolRefExpr::VK_DTPREL:
386386 Type = ELF::R_PPC64_DTPREL64;
387387 break;
388388 }
5252 const MCExpr *PPC64LinuxTargetObjectFile::
5353 getDebugThreadLocalSymbol(const MCSymbol *Sym) const {
5454 const MCExpr *Expr =
55 MCSymbolRefExpr::create(Sym, MCSymbolRefExpr::VK_PPC_DTPREL, getContext());
55 MCSymbolRefExpr::create(Sym, MCSymbolRefExpr::VK_DTPREL, getContext());
5656 return MCBinaryExpr::createAdd(Expr,
5757 MCConstantExpr::create(0x8000, getContext()),
5858 getContext());
1414 ; check that the expected TLS address description is the first thing in the debug_addr section
1515 ; CHECK: debug_addr
1616 ; CHECK-NEXT: .Laddr_sec:
17 ; CHECK-NEXT: .quad tls@dtprel+32768
17 ; CHECK-NEXT: .quad tls@DTPREL+32768
1818
1919 @tls = thread_local global i32 0, align 4
2020
77 ; DW_OP_const8u
88 ; CHECK: .byte 14
99 ; The debug relocation of the address of the tls variable
10 ; CHECK: .quad tls@dtprel+32768
10 ; CHECK: .quad tls@DTPREL+32768
1111 ; DW_OP_GNU_push_tls_address
1212 ; CHECK: .byte 224
1313
337337 # CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_TPREL16_LO target 0x0
338338 addi 3, 3, target@tprel@l
339339
340 # CHECK-BE: addi 3, 3, target@tprel # encoding: [0x38,0x63,A,A]
341 # CHECK-LE: addi 3, 3, target@tprel # encoding: [A,A,0x63,0x38]
342 # CHECK-BE-NEXT: # fixup A - offset: 2, value: target@tprel, kind: fixup_ppc_half16
343 # CHECK-LE-NEXT: # fixup A - offset: 0, value: target@tprel, kind: fixup_ppc_half16
340 # CHECK-BE: addi 3, 3, target@TPREL # encoding: [0x38,0x63,A,A]
341 # CHECK-LE: addi 3, 3, target@TPREL # encoding: [A,A,0x63,0x38]
342 # CHECK-BE-NEXT: # fixup A - offset: 2, value: target@TPREL, kind: fixup_ppc_half16
343 # CHECK-LE-NEXT: # fixup A - offset: 0, value: target@TPREL, kind: fixup_ppc_half16
344344 # CHECK-BE-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_TPREL16 target 0x0
345345 # CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_TPREL16 target 0x0
346346 addi 3, 3, target@tprel
393393 # CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_TPREL16_LO_DS target 0x0
394394 ld 1, target@tprel@l(3)
395395
396 # CHECK-BE: ld 1, target@tprel(3) # encoding: [0xe8,0x23,A,0bAAAAAA00]
397 # CHECK-LE: ld 1, target@tprel(3) # encoding: [0bAAAAAA00,A,0x23,0xe8]
398 # CHECK-BE-NEXT: # fixup A - offset: 2, value: target@tprel, kind: fixup_ppc_half16ds
399 # CHECK-LE-NEXT: # fixup A - offset: 0, value: target@tprel, kind: fixup_ppc_half16ds
396 # CHECK-BE: ld 1, target@TPREL(3) # encoding: [0xe8,0x23,A,0bAAAAAA00]
397 # CHECK-LE: ld 1, target@TPREL(3) # encoding: [0bAAAAAA00,A,0x23,0xe8]
398 # CHECK-BE-NEXT: # fixup A - offset: 2, value: target@TPREL, kind: fixup_ppc_half16ds
399 # CHECK-LE-NEXT: # fixup A - offset: 0, value: target@TPREL, kind: fixup_ppc_half16ds
400400 # CHECK-BE-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_TPREL16_DS target 0x0
401401 # CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_TPREL16_DS target 0x0
402402 ld 1, target@tprel(3)
417417 # CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_DTPREL16_LO target 0x0
418418 addi 3, 3, target@dtprel@l
419419
420 # CHECK-BE: addi 3, 3, target@dtprel # encoding: [0x38,0x63,A,A]
421 # CHECK-LE: addi 3, 3, target@dtprel # encoding: [A,A,0x63,0x38]
422 # CHECK-BE-NEXT: # fixup A - offset: 2, value: target@dtprel, kind: fixup_ppc_half16
423 # CHECK-LE-NEXT: # fixup A - offset: 0, value: target@dtprel, kind: fixup_ppc_half16
420 # CHECK-BE: addi 3, 3, target@DTPREL # encoding: [0x38,0x63,A,A]
421 # CHECK-LE: addi 3, 3, target@DTPREL # encoding: [A,A,0x63,0x38]
422 # CHECK-BE-NEXT: # fixup A - offset: 2, value: target@DTPREL, kind: fixup_ppc_half16
423 # CHECK-LE-NEXT: # fixup A - offset: 0, value: target@DTPREL, kind: fixup_ppc_half16
424424 # CHECK-BE-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_DTPREL16 target 0x0
425425 # CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_DTPREL16 target 0x0
426426 addi 3, 3, target@dtprel
473473 # CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_DTPREL16_LO_DS target 0x0
474474 ld 1, target@dtprel@l(3)
475475
476 # CHECK-BE: ld 1, target@dtprel(3) # encoding: [0xe8,0x23,A,0bAAAAAA00]
477 # CHECK-LE: ld 1, target@dtprel(3) # encoding: [0bAAAAAA00,A,0x23,0xe8]
478 # CHECK-BE-NEXT: # fixup A - offset: 2, value: target@dtprel, kind: fixup_ppc_half16ds
479 # CHECK-LE-NEXT: # fixup A - offset: 0, value: target@dtprel, kind: fixup_ppc_half16ds
476 # CHECK-BE: ld 1, target@DTPREL(3) # encoding: [0xe8,0x23,A,0bAAAAAA00]
477 # CHECK-LE: ld 1, target@DTPREL(3) # encoding: [0bAAAAAA00,A,0x23,0xe8]
478 # CHECK-BE-NEXT: # fixup A - offset: 2, value: target@DTPREL, kind: fixup_ppc_half16ds
479 # CHECK-LE-NEXT: # fixup A - offset: 0, value: target@DTPREL, kind: fixup_ppc_half16ds
480480 # CHECK-BE-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_DTPREL16_DS target 0x0
481481 # CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_DTPREL16_DS target 0x0
482482 ld 1, target@dtprel(3)