// symbol section in the constructor and initialize it here?
virtual void EmitLabel(MCSymbol *Symbol) = 0;
+ /// SubsectionsViaSymbols - Note in the output that the conventions used in
+ /// in the assembly file allows the bytes of a section to be divided up at
+ /// the boundaries of the symbols by a link editor for processing as atoms.
+ virtual void SubsectionsViaSymbols(void) = 0;
+
/// EmitAssignment - Emit an assignment of @param Value to @param Symbol.
///
/// This corresponds to an assembler statement such as:
virtual void EmitSymbolAttribute(MCSymbol *Symbol,
SymbolAttr Attribute) = 0;
+ /// EmitSymbolDesc - Set the @param DescValue for the @param Symbol.
+ ///
+ /// @param Symbol - The symbol to have its n_desc field set.
+ /// @param DescValue - The value to set into the n_desc field.
+ virtual void EmitSymbolDesc(MCSymbol *Symbol, unsigned DescValue) = 0;
+
+ /// EmitLocalSymbol - Emit a local symbol of @param Value to @param Symbol.
+ ///
+ /// @param Symbol - The local symbol being created.
+ /// @param Value - The value for the symbol.
+ virtual void EmitLocalSymbol(MCSymbol *Symbol, const MCValue &Value) = 0;
+
+ /// EmitCommonSymbol - Emit a common or local common symbol of @param Size
+ /// with the @param Pow2Alignment if non-zero.
+ ///
+ /// @param Symbol - The common symbol to emit.
+ /// @param Size - The size of the common symbol.
+ /// @param Pow2Alignment - The alignment of the common symbol if non-zero.
+ /// @param IsLocal - If true, then the symbol is to be a local common
+ virtual void EmitCommonSymbol(MCSymbol *Symbol, unsigned Size,
+ unsigned Pow2Alignment, bool IsLocal) = 0;
+
+ /// EmitZerofill - Emit a the zerofill section and possiblity a symbol, if
+ /// @param Symbol is non-NULL, for @param Size and with the @param
+ /// Pow2Alignment if non-zero.
+ ///
+ /// @param Section - The zerofill section to create and or to put the symbol
+ /// @param Symbol - The zerofill symbol to emit, if non-NULL.
+ /// @param Size - The size of the zerofill symbol.
+ /// @param Pow2Alignment - The alignment of the zerofill symbol if non-zero.
+ virtual void EmitZerofill(MCSection *Section, MCSymbol *Symbol = 0,
+ unsigned Size = 0,unsigned Pow2Alignment = 0) = 0;
+
+ /// AbortAssembly - Stop and don't produce output, printing @param
+ /// AbortReason if non-NULL to indicate the reason the assembly is
+ /// terminated.
+ ///
+ /// @param AbortReason - The reason assembly is terminated, if non-NULL.
+ virtual void AbortAssembly(const char *AbortReason) = 0;
+
+ /// SwitchInputAssemblyFile - Assemble the contents of the specified file in
+ /// @param FileName at this point in the assembly.
+ ///
+ /// @param FileName - The file to assemble at this point
+ virtual void SwitchInputAssemblyFile(const char *FileName) = 0;
+
+ /// DumpSymbolsandMacros - Dump to the specified file in @param FileName all
+ /// symbols and macros at this point in the assembly.
+ ///
+ /// @param FileName - The file to dump the symbols and macros into.
+ virtual void DumpSymbolsandMacros(const char *FileName) = 0;
+
+ /// LoadSymbolsandMacros - Load from the specified file in @param FileName
+ /// symbols and macros into the assembler at this point in the assembly.
+ ///
+ /// @param FileName - The file to load the symbols and macros from.
+ virtual void LoadSymbolsandMacros(const char *FileName) = 0;
+
/// @}
/// @name Generating Data
/// @{