@@ -219,73 +219,6 @@ void MipsMCExpr::visitUsedExpr(MCStreamer &Streamer) const {
219219 Streamer.visitUsedExpr (*getSubExpr ());
220220}
221221
222- static void fixELFSymbolsInTLSFixupsImpl (const MCExpr *Expr, MCAssembler &Asm) {
223- switch (Expr->getKind ()) {
224- case MCExpr::Target:
225- fixELFSymbolsInTLSFixupsImpl (cast<MipsMCExpr>(Expr)->getSubExpr (), Asm);
226- break ;
227- case MCExpr::Constant:
228- break ;
229- case MCExpr::Binary: {
230- const MCBinaryExpr *BE = cast<MCBinaryExpr>(Expr);
231- fixELFSymbolsInTLSFixupsImpl (BE->getLHS (), Asm);
232- fixELFSymbolsInTLSFixupsImpl (BE->getRHS (), Asm);
233- break ;
234- }
235- case MCExpr::SymbolRef: {
236- // We're known to be under a TLS fixup, so any symbol should be
237- // modified. There should be only one.
238- const MCSymbolRefExpr &SymRef = *cast<MCSymbolRefExpr>(Expr);
239- cast<MCSymbolELF>(SymRef.getSymbol ()).setType (ELF::STT_TLS);
240- break ;
241- }
242- case MCExpr::Unary:
243- fixELFSymbolsInTLSFixupsImpl (cast<MCUnaryExpr>(Expr)->getSubExpr (), Asm);
244- break ;
245- }
246- }
247-
248- void MipsMCExpr::fixELFSymbolsInTLSFixups (MCAssembler &Asm) const {
249- switch (getKind ()) {
250- case MEK_None:
251- case MEK_Special:
252- llvm_unreachable (" MEK_None and MEK_Special are invalid" );
253- break ;
254- case MEK_CALL_HI16:
255- case MEK_CALL_LO16:
256- case MEK_GOT:
257- case MEK_GOT_CALL:
258- case MEK_GOT_DISP:
259- case MEK_GOT_HI16:
260- case MEK_GOT_LO16:
261- case MEK_GOT_OFST:
262- case MEK_GOT_PAGE:
263- case MEK_GPREL:
264- case MEK_HI:
265- case MEK_HIGHER:
266- case MEK_HIGHEST:
267- case MEK_LO:
268- case MEK_NEG:
269- case MEK_PCREL_HI16:
270- case MEK_PCREL_LO16:
271- // If we do have nested target-specific expressions, they will be in
272- // a consecutive chain.
273- if (const MipsMCExpr *E = dyn_cast<const MipsMCExpr>(getSubExpr ()))
274- E->fixELFSymbolsInTLSFixups (Asm);
275- break ;
276- case MEK_DTPREL:
277- case MEK_DTPREL_HI:
278- case MEK_DTPREL_LO:
279- case MEK_TLSLDM:
280- case MEK_TLSGD:
281- case MEK_GOTTPREL:
282- case MEK_TPREL_HI:
283- case MEK_TPREL_LO:
284- fixELFSymbolsInTLSFixupsImpl (getSubExpr (), Asm);
285- break ;
286- }
287- }
288-
289222bool MipsMCExpr::isGpOff (MipsExprKind &Kind) const {
290223 if (getKind () == MEK_HI || getKind () == MEK_LO) {
291224 if (const MipsMCExpr *S1 = dyn_cast<const MipsMCExpr>(getSubExpr ())) {
0 commit comments