diff options
Diffstat (limited to 'llvm/lib/MC')
-rw-r--r-- | llvm/lib/MC/MCAsmInfo.cpp | 3 | ||||
-rw-r--r-- | llvm/lib/MC/MCAsmStreamer.cpp | 13 | ||||
-rw-r--r-- | llvm/lib/MC/MCELFStreamer.cpp | 5 | ||||
-rw-r--r-- | llvm/lib/MC/MCMachOStreamer.cpp | 17 | ||||
-rw-r--r-- | llvm/lib/MC/MCNullStreamer.cpp | 1 | ||||
-rw-r--r-- | llvm/lib/MC/MCParser/DarwinAsmParser.cpp | 2 | ||||
-rw-r--r-- | llvm/lib/MC/MCStreamer.cpp | 5 | ||||
-rw-r--r-- | llvm/lib/MC/MCWasmStreamer.cpp | 8 | ||||
-rw-r--r-- | llvm/lib/MC/MCWinCOFFStreamer.cpp | 16 |
9 files changed, 12 insertions, 58 deletions
diff --git a/llvm/lib/MC/MCAsmInfo.cpp b/llvm/lib/MC/MCAsmInfo.cpp index 49e8db2..86759c3 100644 --- a/llvm/lib/MC/MCAsmInfo.cpp +++ b/llvm/lib/MC/MCAsmInfo.cpp @@ -48,9 +48,6 @@ MCAsmInfo::MCAsmInfo() { LinkerPrivateGlobalPrefix = ""; InlineAsmStart = "APP"; InlineAsmEnd = "NO_APP"; - Code16Directive = ".code16"; - Code32Directive = ".code32"; - Code64Directive = ".code64"; ZeroDirective = "\t.zero\t"; AsciiDirective = "\t.ascii\t"; AscizDirective = "\t.asciz\t"; diff --git a/llvm/lib/MC/MCAsmStreamer.cpp b/llvm/lib/MC/MCAsmStreamer.cpp index 42e6245..f670335 100644 --- a/llvm/lib/MC/MCAsmStreamer.cpp +++ b/llvm/lib/MC/MCAsmStreamer.cpp @@ -182,7 +182,7 @@ public: void emitLabel(MCSymbol *Symbol, SMLoc Loc = SMLoc()) override; - void emitAssemblerFlag(MCAssemblerFlag Flag) override; + void emitSubsectionsViaSymbols() override; void emitLinkerOptions(ArrayRef<std::string> Options) override; void emitDataRegion(MCDataRegionType Kind) override; void emitVersionMin(MCVersionMinType Kind, unsigned Major, unsigned Minor, @@ -597,15 +597,8 @@ void MCAsmStreamer::emitGNUAttribute(unsigned Tag, unsigned Value) { OS << "\t.gnu_attribute " << Tag << ", " << Value << "\n"; } -void MCAsmStreamer::emitAssemblerFlag(MCAssemblerFlag Flag) { - switch (Flag) { - case MCAF_SyntaxUnified: OS << "\t.syntax unified"; break; - case MCAF_SubsectionsViaSymbols: OS << ".subsections_via_symbols"; break; - case MCAF_Code16: OS << '\t'<< MAI->getCode16Directive();break; - case MCAF_Code32: OS << '\t'<< MAI->getCode32Directive();break; - case MCAF_Code64: OS << '\t'<< MAI->getCode64Directive();break; - } - EmitEOL(); +void MCAsmStreamer::emitSubsectionsViaSymbols() { + OS << ".subsections_via_symbols\n"; } void MCAsmStreamer::emitLinkerOptions(ArrayRef<std::string> Options) { diff --git a/llvm/lib/MC/MCELFStreamer.cpp b/llvm/lib/MC/MCELFStreamer.cpp index 5cf67f0..7006ac9 100644 --- a/llvm/lib/MC/MCELFStreamer.cpp +++ b/llvm/lib/MC/MCELFStreamer.cpp @@ -84,11 +84,6 @@ void MCELFStreamer::emitLabelAtPos(MCSymbol *S, SMLoc Loc, MCDataFragment &F, Symbol->setType(ELF::STT_TLS); } -void MCELFStreamer::emitAssemblerFlag(MCAssemblerFlag Flag) { - // Let the target do whatever target specific stuff it needs to do. - getAssembler().getBackend().handleAssemblerFlag(Flag); -} - // If bundle alignment is used and there are any instructions in the section, it // needs to be aligned to at least the bundle size. static void setSectionAlignmentForBundling(const MCAssembler &Assembler, diff --git a/llvm/lib/MC/MCMachOStreamer.cpp b/llvm/lib/MC/MCMachOStreamer.cpp index 9b7152f..4cf602b 100644 --- a/llvm/lib/MC/MCMachOStreamer.cpp +++ b/llvm/lib/MC/MCMachOStreamer.cpp @@ -89,7 +89,7 @@ public: void emitLabel(MCSymbol *Symbol, SMLoc Loc = SMLoc()) override; void emitAssignment(MCSymbol *Symbol, const MCExpr *Value) override; void emitEHSymAttributes(const MCSymbol *Symbol, MCSymbol *EHSymbol) override; - void emitAssemblerFlag(MCAssemblerFlag Flag) override; + void emitSubsectionsViaSymbols() override; void emitLinkerOptions(ArrayRef<std::string> Options) override; void emitDataRegion(MCDataRegionType Kind) override; void emitVersionMin(MCVersionMinType Kind, unsigned Major, unsigned Minor, @@ -209,19 +209,8 @@ void MCMachOStreamer::emitDataRegionEnd() { emitLabel(Data.End); } -void MCMachOStreamer::emitAssemblerFlag(MCAssemblerFlag Flag) { - // Let the target do whatever target specific stuff it needs to do. - getAssembler().getBackend().handleAssemblerFlag(Flag); - // Do any generic stuff we need to do. - switch (Flag) { - case MCAF_SyntaxUnified: return; // no-op here. - case MCAF_Code16: return; // Change parsing mode; no-op here. - case MCAF_Code32: return; // Change parsing mode; no-op here. - case MCAF_Code64: return; // Change parsing mode; no-op here. - case MCAF_SubsectionsViaSymbols: - getWriter().setSubsectionsViaSymbols(true); - return; - } +void MCMachOStreamer::emitSubsectionsViaSymbols() { + getWriter().setSubsectionsViaSymbols(true); } void MCMachOStreamer::emitLinkerOptions(ArrayRef<std::string> Options) { diff --git a/llvm/lib/MC/MCNullStreamer.cpp b/llvm/lib/MC/MCNullStreamer.cpp index e84830e..f76b2f7 100644 --- a/llvm/lib/MC/MCNullStreamer.cpp +++ b/llvm/lib/MC/MCNullStreamer.cpp @@ -38,6 +38,7 @@ namespace { void emitCommonSymbol(MCSymbol *Symbol, uint64_t Size, Align ByteAlignment) override {} + void emitSubsectionsViaSymbols() override {}; void beginCOFFSymbolDef(const MCSymbol *Symbol) override {} void emitCOFFSymbolStorageClass(int StorageClass) override {} void emitCOFFSymbolType(int Type) override {} diff --git a/llvm/lib/MC/MCParser/DarwinAsmParser.cpp b/llvm/lib/MC/MCParser/DarwinAsmParser.cpp index 5dc9cb6..de134e2 100644 --- a/llvm/lib/MC/MCParser/DarwinAsmParser.cpp +++ b/llvm/lib/MC/MCParser/DarwinAsmParser.cpp @@ -817,7 +817,7 @@ bool DarwinAsmParser::parseDirectiveSubsectionsViaSymbols(StringRef, SMLoc) { Lex(); - getStreamer().emitAssemblerFlag(MCAF_SubsectionsViaSymbols); + getStreamer().emitSubsectionsViaSymbols(); return false; } diff --git a/llvm/lib/MC/MCStreamer.cpp b/llvm/lib/MC/MCStreamer.cpp index a196842..618a35b 100644 --- a/llvm/lib/MC/MCStreamer.cpp +++ b/llvm/lib/MC/MCStreamer.cpp @@ -1245,7 +1245,10 @@ void MCStreamer::emitAbsoluteSymbolDiffAsULEB128(const MCSymbol *Hi, emitULEB128Value(Diff); } -void MCStreamer::emitAssemblerFlag(MCAssemblerFlag Flag) {} +void MCStreamer::emitSubsectionsViaSymbols() { + llvm_unreachable( + "emitSubsectionsViaSymbols only supported on Mach-O targets"); +} void MCStreamer::emitSymbolDesc(MCSymbol *Symbol, unsigned DescValue) {} void MCStreamer::beginCOFFSymbolDef(const MCSymbol *Symbol) { llvm_unreachable("this directive only supported on COFF targets"); diff --git a/llvm/lib/MC/MCWasmStreamer.cpp b/llvm/lib/MC/MCWasmStreamer.cpp index cddd250..9920ff9 100644 --- a/llvm/lib/MC/MCWasmStreamer.cpp +++ b/llvm/lib/MC/MCWasmStreamer.cpp @@ -59,14 +59,6 @@ void MCWasmStreamer::emitLabelAtPos(MCSymbol *S, SMLoc Loc, MCDataFragment &F, Symbol->setTLS(); } -void MCWasmStreamer::emitAssemblerFlag(MCAssemblerFlag Flag) { - // Let the target do whatever target specific stuff it needs to do. - getAssembler().getBackend().handleAssemblerFlag(Flag); - - // Do any generic stuff we need to do. - llvm_unreachable("invalid assembler flag!"); -} - void MCWasmStreamer::changeSection(MCSection *Section, uint32_t Subsection) { MCAssembler &Asm = getAssembler(); auto *SectionWasm = cast<MCSectionWasm>(Section); diff --git a/llvm/lib/MC/MCWinCOFFStreamer.cpp b/llvm/lib/MC/MCWinCOFFStreamer.cpp index e03f7b5..ee7a7c87 100644 --- a/llvm/lib/MC/MCWinCOFFStreamer.cpp +++ b/llvm/lib/MC/MCWinCOFFStreamer.cpp @@ -184,22 +184,6 @@ void MCWinCOFFStreamer::emitLabel(MCSymbol *S, SMLoc Loc) { MCObjectStreamer::emitLabel(Symbol, Loc); } -void MCWinCOFFStreamer::emitAssemblerFlag(MCAssemblerFlag Flag) { - // Let the target do whatever target specific stuff it needs to do. - getAssembler().getBackend().handleAssemblerFlag(Flag); - - switch (Flag) { - // None of these require COFF specific handling. - case MCAF_SyntaxUnified: - case MCAF_Code16: - case MCAF_Code32: - case MCAF_Code64: - break; - case MCAF_SubsectionsViaSymbols: - llvm_unreachable("COFF doesn't support .subsections_via_symbols"); - } -} - bool MCWinCOFFStreamer::emitSymbolAttribute(MCSymbol *S, MCSymbolAttr Attribute) { auto *Symbol = cast<MCSymbolCOFF>(S); |