- virtual void SwitchSection(const MCSection *Section);
-
- virtual void EmitLabel(MCSymbol *Symbol);
-
- virtual void EmitAssemblerFlag(AssemblerFlag Flag);
-
- virtual void EmitAssignment(MCSymbol *Symbol, const MCValue &Value,
- bool MakeAbsolute = false);
-
- virtual void EmitSymbolAttribute(MCSymbol *Symbol, SymbolAttr Attribute);
+ void ChangeSection(MCSection *Sect, const MCExpr *Subsect) override;
+ void EmitLabel(MCSymbol *Symbol) override;
+ void EmitEHSymAttributes(const MCSymbol *Symbol, MCSymbol *EHSymbol) override;
+ void EmitAssemblerFlag(MCAssemblerFlag Flag) override;
+ void EmitLinkerOptions(ArrayRef<std::string> Options) override;
+ void EmitDataRegion(MCDataRegionType Kind) override;
+ void EmitVersionMin(MCVersionMinType Kind, unsigned Major,
+ unsigned Minor, unsigned Update) override;
+ void EmitThumbFunc(MCSymbol *Func) override;
+ bool EmitSymbolAttribute(MCSymbol *Symbol, MCSymbolAttr Attribute) override;
+ void EmitSymbolDesc(MCSymbol *Symbol, unsigned DescValue) override;
+ void EmitCommonSymbol(MCSymbol *Symbol, uint64_t Size,
+ unsigned ByteAlignment) override;
+ void BeginCOFFSymbolDef(const MCSymbol *Symbol) override {
+ llvm_unreachable("macho doesn't support this directive");
+ }
+ void EmitCOFFSymbolStorageClass(int StorageClass) override {
+ llvm_unreachable("macho doesn't support this directive");
+ }
+ void EmitCOFFSymbolType(int Type) override {
+ llvm_unreachable("macho doesn't support this directive");
+ }
+ void EndCOFFSymbolDef() override {
+ llvm_unreachable("macho doesn't support this directive");
+ }
+ void EmitLocalCommonSymbol(MCSymbol *Symbol, uint64_t Size,
+ unsigned ByteAlignment) override;
+ void EmitZerofill(MCSection *Section, MCSymbol *Symbol = nullptr,
+ uint64_t Size = 0, unsigned ByteAlignment = 0) override;
+ void EmitTBSSSymbol(MCSection *Section, MCSymbol *Symbol, uint64_t Size,
+ unsigned ByteAlignment = 0) override;
+
+ void EmitFileDirective(StringRef Filename) override {
+ // FIXME: Just ignore the .file; it isn't important enough to fail the
+ // entire assembly.
+
+ // report_fatal_error("unsupported directive: '.file'");
+ }