@@ -318,7 +318,6 @@ void MCELFStreamer::emitValueImpl(const MCExpr *Value, unsigned Size,
318
318
SMLoc Loc) {
319
319
if (isBundleLocked ())
320
320
report_fatal_error (" Emitting values inside a locked bundle is forbidden" );
321
- fixSymbolsInTLSFixups (Value);
322
321
MCObjectStreamer::emitValueImpl (Value, Size, Loc);
323
322
}
324
323
@@ -351,91 +350,6 @@ void MCELFStreamer::emitIdent(StringRef IdentString) {
351
350
popSection ();
352
351
}
353
352
354
- void MCELFStreamer::fixSymbolsInTLSFixups (const MCExpr *expr) {
355
- switch (expr->getKind ()) {
356
- case MCExpr::Target:
357
- cast<MCTargetExpr>(expr)->fixELFSymbolsInTLSFixups (getAssembler ());
358
- break ;
359
- case MCExpr::Constant:
360
- break ;
361
-
362
- case MCExpr::Binary: {
363
- const MCBinaryExpr *be = cast<MCBinaryExpr>(expr);
364
- fixSymbolsInTLSFixups (be->getLHS ());
365
- fixSymbolsInTLSFixups (be->getRHS ());
366
- break ;
367
- }
368
-
369
- case MCExpr::SymbolRef: {
370
- const MCSymbolRefExpr &symRef = *cast<MCSymbolRefExpr>(expr);
371
- switch (symRef.getKind ()) {
372
- default :
373
- return ;
374
- case MCSymbolRefExpr::VK_GOTTPOFF:
375
- case MCSymbolRefExpr::VK_INDNTPOFF:
376
- case MCSymbolRefExpr::VK_NTPOFF:
377
- case MCSymbolRefExpr::VK_GOTNTPOFF:
378
- case MCSymbolRefExpr::VK_TLSCALL:
379
- case MCSymbolRefExpr::VK_TLSDESC:
380
- case MCSymbolRefExpr::VK_TLSGD:
381
- case MCSymbolRefExpr::VK_TLSLD:
382
- case MCSymbolRefExpr::VK_TLSLDM:
383
- case MCSymbolRefExpr::VK_TPOFF:
384
- case MCSymbolRefExpr::VK_TPREL:
385
- case MCSymbolRefExpr::VK_DTPOFF:
386
- case MCSymbolRefExpr::VK_DTPREL:
387
- case MCSymbolRefExpr::VK_PPC_DTPMOD:
388
- case MCSymbolRefExpr::VK_PPC_TPREL_LO:
389
- case MCSymbolRefExpr::VK_PPC_TPREL_HI:
390
- case MCSymbolRefExpr::VK_PPC_TPREL_HA:
391
- case MCSymbolRefExpr::VK_PPC_TPREL_HIGH:
392
- case MCSymbolRefExpr::VK_PPC_TPREL_HIGHA:
393
- case MCSymbolRefExpr::VK_PPC_TPREL_HIGHER:
394
- case MCSymbolRefExpr::VK_PPC_TPREL_HIGHERA:
395
- case MCSymbolRefExpr::VK_PPC_TPREL_HIGHEST:
396
- case MCSymbolRefExpr::VK_PPC_TPREL_HIGHESTA:
397
- case MCSymbolRefExpr::VK_PPC_DTPREL_LO:
398
- case MCSymbolRefExpr::VK_PPC_DTPREL_HI:
399
- case MCSymbolRefExpr::VK_PPC_DTPREL_HA:
400
- case MCSymbolRefExpr::VK_PPC_DTPREL_HIGH:
401
- case MCSymbolRefExpr::VK_PPC_DTPREL_HIGHA:
402
- case MCSymbolRefExpr::VK_PPC_DTPREL_HIGHER:
403
- case MCSymbolRefExpr::VK_PPC_DTPREL_HIGHERA:
404
- case MCSymbolRefExpr::VK_PPC_DTPREL_HIGHEST:
405
- case MCSymbolRefExpr::VK_PPC_DTPREL_HIGHESTA:
406
- case MCSymbolRefExpr::VK_PPC_GOT_TPREL:
407
- case MCSymbolRefExpr::VK_PPC_GOT_TPREL_LO:
408
- case MCSymbolRefExpr::VK_PPC_GOT_TPREL_HI:
409
- case MCSymbolRefExpr::VK_PPC_GOT_TPREL_HA:
410
- case MCSymbolRefExpr::VK_PPC_GOT_TPREL_PCREL:
411
- case MCSymbolRefExpr::VK_PPC_GOT_DTPREL:
412
- case MCSymbolRefExpr::VK_PPC_GOT_DTPREL_LO:
413
- case MCSymbolRefExpr::VK_PPC_GOT_DTPREL_HI:
414
- case MCSymbolRefExpr::VK_PPC_GOT_DTPREL_HA:
415
- case MCSymbolRefExpr::VK_PPC_TLS:
416
- case MCSymbolRefExpr::VK_PPC_TLS_PCREL:
417
- case MCSymbolRefExpr::VK_PPC_GOT_TLSGD:
418
- case MCSymbolRefExpr::VK_PPC_GOT_TLSGD_LO:
419
- case MCSymbolRefExpr::VK_PPC_GOT_TLSGD_HI:
420
- case MCSymbolRefExpr::VK_PPC_GOT_TLSGD_HA:
421
- case MCSymbolRefExpr::VK_PPC_GOT_TLSGD_PCREL:
422
- case MCSymbolRefExpr::VK_PPC_GOT_TLSLD:
423
- case MCSymbolRefExpr::VK_PPC_GOT_TLSLD_LO:
424
- case MCSymbolRefExpr::VK_PPC_GOT_TLSLD_HI:
425
- case MCSymbolRefExpr::VK_PPC_GOT_TLSLD_HA:
426
- break ;
427
- }
428
- getAssembler ().registerSymbol (symRef.getSymbol ());
429
- cast<MCSymbolELF>(symRef.getSymbol ()).setType (ELF::STT_TLS);
430
- break ;
431
- }
432
-
433
- case MCExpr::Unary:
434
- fixSymbolsInTLSFixups (cast<MCUnaryExpr>(expr)->getSubExpr ());
435
- break ;
436
- }
437
- }
438
-
439
353
void MCELFStreamer::finalizeCGProfileEntry (const MCSymbolRefExpr *&SRE,
440
354
uint64_t Offset) {
441
355
const MCSymbol *S = &SRE->getSymbol ();
@@ -478,15 +392,6 @@ void MCELFStreamer::finalizeCGProfile() {
478
392
popSection ();
479
393
}
480
394
481
- void MCELFStreamer::emitInstToFragment (const MCInst &Inst,
482
- const MCSubtargetInfo &STI) {
483
- this ->MCObjectStreamer ::emitInstToFragment (Inst, STI);
484
- MCRelaxableFragment &F = *cast<MCRelaxableFragment>(getCurrentFragment ());
485
-
486
- for (auto &Fixup : F.getFixups ())
487
- fixSymbolsInTLSFixups (Fixup.getValue ());
488
- }
489
-
490
395
// A fragment can only have one Subtarget, and when bundling is enabled we
491
396
// sometimes need to use the same fragment. We give an error if there
492
397
// are conflicting Subtargets.
@@ -548,10 +453,8 @@ void MCELFStreamer::emitInstToData(const MCInst &Inst,
548
453
DF->getFixups (), STI);
549
454
550
455
auto Fixups = MutableArrayRef (DF->getFixups ()).slice (FixupStartIndex);
551
- for (auto &Fixup : Fixups) {
456
+ for (auto &Fixup : Fixups)
552
457
Fixup.setOffset (Fixup.getOffset () + CodeOffset);
553
- fixSymbolsInTLSFixups (Fixup.getValue ());
554
- }
555
458
556
459
DF->setHasInstructions (STI);
557
460
if (!Fixups.empty () && Fixups.back ().getTargetKind () ==
0 commit comments