[llvm-commits] CVS: llvm/lib/Target/IA64/IA64AsmPrinter.cpp

Duraid Madina duraid at octopus.com.au
Sat Apr 2 04:30:58 PST 2005



Changes in directory llvm/lib/Target/IA64:

IA64AsmPrinter.cpp updated: 1.5 -> 1.6
---
Log message:

ia64 asmprinter fixes:
  - turn off assembler's autoalignment
  - set FunctionAddrPrefix/Suffix so that .data8 entries pointing to 
    functions have their value wrapped in @fptr(), so that a function
    descriptor will be materialized for that function.



---
Diffs of the changes:  (+11 -7)

 IA64AsmPrinter.cpp |   18 +++++++++++-------
 1 files changed, 11 insertions(+), 7 deletions(-)


Index: llvm/lib/Target/IA64/IA64AsmPrinter.cpp
diff -u llvm/lib/Target/IA64/IA64AsmPrinter.cpp:1.5 llvm/lib/Target/IA64/IA64AsmPrinter.cpp:1.6
--- llvm/lib/Target/IA64/IA64AsmPrinter.cpp:1.5	Thu Mar 31 01:40:24 2005
+++ llvm/lib/Target/IA64/IA64AsmPrinter.cpp	Sat Apr  2 06:30:47 2005
@@ -142,9 +142,8 @@
           // FALL THROUGH
         case GlobalValue::InternalLinkage:
           if (C->isNullValue())
-            SwitchSection(O, CurSection, ".data"); // FIXME: this was
-	  // '.bss', but in ia64-land .bss means "nobits" (i.e. uninitialized)
-	  // hmm.
+            SwitchSection(O, CurSection, ".bss");
+	  // FIXME? in ia64-land .bss means "nobits" (i.e. uninitialized)
           else
             SwitchSection(O, CurSection, ".data");
           break;
@@ -191,13 +190,18 @@
       : IA64SharedAsmPrinter(O, TM) {
 
       CommentString = "//";
-      Data8bitsDirective = "\tdata1\t";
-      Data16bitsDirective = "\tdata2\t";
-      Data32bitsDirective = "\tdata4\t";
-      Data64bitsDirective = "\tdata8\t";
+      Data8bitsDirective = "\tdata1\t";     // FIXME: check that we are
+      Data16bitsDirective = "\tdata2.ua\t"; // disabling auto-alignment
+      Data32bitsDirective = "\tdata4.ua\t"; // properly
+      Data64bitsDirective = "\tdata8.ua\t";
       ZeroDirective = "\t.skip\t";
       AsciiDirective = "\tstring\t";
 
+      GlobalVarAddrPrefix="";
+      GlobalVarAddrSuffix="";
+      FunctionAddrPrefix="@fptr(";
+      FunctionAddrSuffix=")";
+
     }
 
     virtual const char *getPassName() const {






More information about the llvm-commits mailing list