Basic support for small sections
authorBruno Cardoso Lopes <bruno.cardoso@gmail.com>
Tue, 22 Jul 2008 15:26:53 +0000 (15:26 +0000)
committerBruno Cardoso Lopes <bruno.cardoso@gmail.com>
Tue, 22 Jul 2008 15:26:53 +0000 (15:26 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53907 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Target/TargetAsmInfo.h
lib/Target/TargetAsmInfo.cpp

index 1bde72e2d0179d2541c834a4e453bd8f83b899a3..98247e8d8017da78e03038e6651fd4ce9bffe933 100644 (file)
@@ -39,6 +39,9 @@ namespace llvm {
       ROData,           ///< Readonly data section
       RODataMergeStr,   ///< Readonly data section (mergeable strings)
       RODataMergeConst, ///< Readonly data section (mergeable constants)
+      SmallData,        ///< Small data section
+      SmallBSS,         ///< Small bss section     
+      SmallROData,      ///< Small readonly section     
       ThreadData,       ///< Initialized TLS data objects
       ThreadBSS         ///< Uninitialized TLS data objects
     };
@@ -119,6 +122,21 @@ namespace llvm {
     const char *ReadOnlySection;          // Defaults to NULL
     const Section *ReadOnlySection_;
 
+    /// SmallDataSection - This is the directive that is emitted to switch to a
+    /// small data section.
+    ///
+    const Section *SmallDataSection;      // Defaults to NULL
+
+    /// SmallBSSSection - This is the directive that is emitted to switch to a
+    /// small bss section.
+    ///
+    const Section *SmallBSSSection;       // Defaults to NULL
+
+    /// SmallRODataSection - This is the directive that is emitted to switch to 
+    /// a small read-only data section.
+    ///
+    const Section *SmallRODataSection;    // Defaults to NULL
+
     /// TLSDataSection - Section directive for Thread Local data.
     ///
     const char *TLSDataSection;// Defaults to ".section .tdata,"awT",@progbits".
@@ -549,6 +567,15 @@ namespace llvm {
     const Section *getReadOnlySection_() const {
       return ReadOnlySection_;
     }
+    const Section *getSmallDataSection() const {
+      return SmallDataSection;
+    }
+    const Section *getSmallBSSSection() const {
+      return SmallBSSSection;
+    }
+    const Section *getSmallRODataSection() const {
+      return SmallRODataSection;
+    }
     const char *getTLSDataSection() const {
       return TLSDataSection;
     }
index 2be9440f3b47597484a6955d16325a8a858b921c..9125546ff4033a69118b5e2146b7ab403d67ce32 100644 (file)
@@ -34,6 +34,9 @@ TargetAsmInfo::TargetAsmInfo() :
   BSSSection_(0),
   ReadOnlySection(0),
   ReadOnlySection_(0),
+  SmallDataSection(0),
+  SmallBSSSection(0),
+  SmallRODataSection(0),
   TLSDataSection("\t.section .tdata,\"awT\",@progbits"),
   TLSDataSection_(0),
   TLSBSSSection("\t.section .tbss,\"awT\",@nobits"),