add support for .asciz, and enable it by default. If your target assembler
authorChris Lattner <sabre@nondot.org>
Thu, 10 Nov 2005 18:05:57 +0000 (18:05 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 10 Nov 2005 18:05:57 +0000 (18:05 +0000)
doesn't support .asciz, just set AscizDirective to null in your asmprinter.

This compiles C strings to:

l1__2E_str_1:                           ; '.str_1'
        .asciz  "foo"

instead of:

l1__2E_str_1:                           ; '.str_1'
        .ascii  "foo\000"

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24271 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/CodeGen/AsmPrinter.h

index f28c00faee18fa5422f3be5a1b1f05beec430d46..e6b7fccd07a060084f6d809613e1fedae51c8081 100644 (file)
@@ -77,7 +77,12 @@ namespace llvm {
 
     /// AsciiDirective - This directive allows emission of an ascii string with
     /// the standard C escape characters embedded into it.
-    const char *AsciiDirective;
+    const char *AsciiDirective;  // Defaults to "\t.ascii\t"
+    
+    /// AscizDirective - If not null, this allows for special handling of
+    /// zero terminated strings on this target.  This is commonly supported as
+    /// ".asciz".  If a target doesn't support this, it can be set to null.
+    const char *AscizDirective;  // Defaults to "\t.asciz\t"
 
     /// DataDirectives - These directives are used to output some unit of
     /// integer data to the current section.  If a data directive is set to
@@ -108,6 +113,7 @@ namespace llvm {
         FunctionAddrSuffix(""),
         ZeroDirective("\t.zero\t"),
         AsciiDirective("\t.ascii\t"),
+        AscizDirective("\t.asciz\t"),
         Data8bitsDirective("\t.byte\t"),
         Data16bitsDirective("\t.short\t"),
         Data32bitsDirective("\t.long\t"),