From 50b339b7fa60222bc4bac590b272508c9c52557d Mon Sep 17 00:00:00 2001 From: Duraid Madina Date: Sat, 2 Apr 2005 12:30:47 +0000 Subject: [PATCH] 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. llvm-svn: 21025 --- llvm/lib/Target/IA64/IA64AsmPrinter.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/llvm/lib/Target/IA64/IA64AsmPrinter.cpp b/llvm/lib/Target/IA64/IA64AsmPrinter.cpp index 280186b8b237..64bdfc6b6e90 100644 --- a/llvm/lib/Target/IA64/IA64AsmPrinter.cpp +++ b/llvm/lib/Target/IA64/IA64AsmPrinter.cpp @@ -142,9 +142,8 @@ bool IA64SharedAsmPrinter::doFinalization(Module &M) { // 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 @@ namespace { : 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 {