From: Chris Lattner Date: Sun, 13 Sep 2009 18:33:59 +0000 (+0000) Subject: make X86ATTAsmPrinter::PrintPICBaseSymbol forward to X86MCInstLower. X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=09abd1ccfc1541f5deb23e3e88a2fa49ea058dfa;p=oota-llvm.git make X86ATTAsmPrinter::PrintPICBaseSymbol forward to X86MCInstLower. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81685 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp b/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp index 8eac2df29b3..13304c0abf9 100644 --- a/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp +++ b/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp @@ -15,6 +15,7 @@ #define DEBUG_TYPE "asm-printer" #include "X86ATTAsmPrinter.h" +#include "X86MCInstLower.h" #include "X86.h" #include "X86COFF.h" #include "X86MachineFunctionInfo.h" @@ -46,14 +47,9 @@ STATISTIC(EmittedInsts, "Number of machine instrs printed"); //===----------------------------------------------------------------------===// void X86ATTAsmPrinter::PrintPICBaseSymbol() const { - // FIXME: the actual label generated doesn't matter here! Just mangle in - // something unique (the function number) with Private prefix. - if (Subtarget->isTargetDarwin()) - O << "\"L" << getFunctionNumber() << "$pb\""; - else { - assert(Subtarget->isTargetELF() && "Don't know how to print PIC label!"); - O << ".Lllvm$" << getFunctionNumber() << ".$piclabel"; - } + // FIXME: Gross const cast hack. + X86ATTAsmPrinter *AP = const_cast(this); + X86MCInstLower(OutContext, 0, *AP).GetPICBaseSymbol()->print(O, MAI); } static X86MachineFunctionInfo calculateFunctionInfo(const Function *F, diff --git a/lib/Target/X86/AsmPrinter/X86MCInstLower.h b/lib/Target/X86/AsmPrinter/X86MCInstLower.h index bf529fd44e8..6bf557462eb 100644 --- a/lib/Target/X86/AsmPrinter/X86MCInstLower.h +++ b/lib/Target/X86/AsmPrinter/X86MCInstLower.h @@ -10,6 +10,8 @@ #ifndef X86_MCINSTLOWER_H #define X86_MCINSTLOWER_H +#include "llvm/Support/Compiler.h" + namespace llvm { class MCContext; class MCInst; @@ -22,7 +24,7 @@ namespace llvm { class X86Subtarget; /// X86MCInstLower - This class is used to lower an MachineInstr into an MCInst. -class X86MCInstLower { +class VISIBILITY_HIDDEN X86MCInstLower { MCContext &Ctx; Mangler *Mang; X86ATTAsmPrinter &AsmPrinter;