Added llvm-mc support for parsing the .dump and .load directives.
[oota-llvm.git] / include / llvm / MC / MCStreamer.h
index 54de8a31076ffbad96bdbab6f5d8c99501d82597..8daa2464821a0600271ee2a361e5c404a9178f59 100644 (file)
@@ -89,6 +89,11 @@ namespace llvm {
     // 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:
@@ -115,6 +120,64 @@ namespace llvm {
     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
     /// @{