[llvm-commits] CVS: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp X86AsmPrinter.cpp X86AsmPrinter.h X86ISelDAGToDAG.cpp X86ISelLowering.cpp X86RegisterInfo.cpp X86Subtarget.cpp X86Subtarget.h X86TargetAsmI
Changes in directory llvm/lib/Target/X86: X86ATTAsmPrinter.cpp updated: 1.80 - 1.81 X86AsmPrinter.cpp updated: 1.223 - 1.224 X86AsmPrinter.h updated: 1.40 - 1.41 X86ISelDAGToDAG.cpp updated: 1.140 - 1.141 X86ISelLowering.cpp updated: 1.308 - 1.309 X86RegisterInfo.cpp updated: 1.187 - 1.188 X86Subtarget.cpp updated: 1.46 - 1.47 X86Subtarget.h updated: 1.24 - 1.25 X86TargetAsmInfo.cpp updated: 1.14 - 1.15 X86TargetMachine.cpp updated: 1.133 - 1.134 --- Log message: Really big cleanup. - New target type mingw was introduced - Same things for both mingw cygwin are marked as cygming (as in gcc) - .lcomm is supported here, so allow LLVM to use it - Correctly use underscored versions of setjmp _longjmp for both mingw cygwin --- Diffs of the changes: (+33 -24) X86ATTAsmPrinter.cpp | 12 ++-- X86AsmPrinter.cpp| 10 +- X86AsmPrinter.h |2 +- X86ISelDAGToDAG.cpp |2 +- X86ISelLowering.cpp |6 +++--- X86RegisterInfo.cpp |4 ++-- X86Subtarget.cpp | 12 X86Subtarget.h |5 - X86TargetAsmInfo.cpp |2 ++ X86TargetMachine.cpp |2 +- 10 files changed, 33 insertions(+), 24 deletions(-) Index: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp diff -u llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.80 llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.81 --- llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.80 Tue Dec 19 16:59:26 2006 +++ llvm/lib/Target/X86/X86ATTAsmPrinter.cppWed Jan 3 05:43:14 2007 @@ -42,7 +42,7 @@ case Function::LinkOnceLinkage: if (Subtarget-isTargetDarwin()) { return .section __TEXT,__textcoal_nt,coalesced,pure_instructions; -} else if (Subtarget-isTargetCygwin()) { +} else if (Subtarget-isTargetCygMing()) { return \t.section\t.text$linkonce. + CurrentFnName + ,\ax\\n; } else { return \t.section\t.llvm.linkonce.t. + CurrentFnName + @@ -57,7 +57,7 @@ bool X86ATTAsmPrinter::runOnMachineFunction(MachineFunction MF) { if (Subtarget-isTargetDarwin() || Subtarget-isTargetELF() || - Subtarget-isTargetCygwin()) { + Subtarget-isTargetCygMing()) { // Let PassManager know we need debug information and relay // the MachineDebugInfo address on to DwarfWriter. DW.SetDebugInfo(getAnalysisMachineDebugInfo()); @@ -99,7 +99,7 @@ if (Subtarget-isTargetDarwin()) { O \t.globl\t CurrentFnName \n; O \t.weak_definition\t CurrentFnName \n; -} else if (Subtarget-isTargetCygwin()) { +} else if (Subtarget-isTargetCygMing()) { EmitAlignment(4, F); // FIXME: This should be parameterized somewhere. O \t.linkonce discard\n; O \t.globl CurrentFnName \n; @@ -111,14 +111,14 @@ } O CurrentFnName :\n; // Add some workaround for linkonce linkage on Cygwin\MinGW - if (Subtarget-isTargetCygwin() + if (Subtarget-isTargetCygMing() (F-getLinkage() == Function::LinkOnceLinkage || F-getLinkage() == Function::WeakLinkage)) O _llvm$workaround$fake$stub_ CurrentFnName :\n; if (Subtarget-isTargetDarwin() || Subtarget-isTargetELF() || - Subtarget-isTargetCygwin()) { + Subtarget-isTargetCygMing()) { // Emit pre-function debug information. DW.BeginFunction(MF); } @@ -150,7 +150,7 @@ if (Subtarget-isTargetDarwin() || Subtarget-isTargetELF() || - Subtarget-isTargetCygwin()) { + Subtarget-isTargetCygMing()) { // Emit post-function debug information. DW.EndFunction(); } Index: llvm/lib/Target/X86/X86AsmPrinter.cpp diff -u llvm/lib/Target/X86/X86AsmPrinter.cpp:1.223 llvm/lib/Target/X86/X86AsmPrinter.cpp:1.224 --- llvm/lib/Target/X86/X86AsmPrinter.cpp:1.223 Tue Dec 19 16:59:26 2006 +++ llvm/lib/Target/X86/X86AsmPrinter.cpp Wed Jan 3 05:43:14 2007 @@ -111,7 +111,7 @@ // Emit initial debug information. DW.BeginModule(M); - } else if (Subtarget-isTargetELF() || Subtarget-isTargetCygwin()) { + } else if (Subtarget-isTargetELF() || Subtarget-isTargetCygMing()) { // Emit initial debug information. DW.BeginModule(M); } @@ -161,7 +161,7 @@ } else O TAI-getCOMMDirective() name , Size; } else { - if (!Subtarget-isTargetCygwin()) { + if (!Subtarget-isTargetCygMing()) { if (I-hasInternalLinkage()) O \t.local\t name \n; } @@ -179,7 +179,7 @@ O \t.globl name \n \t.weak_definition name \n; SwitchToDataSection(.section __DATA,__const_coal,coalesced, I); -} else if (Subtarget-isTargetCygwin()) { +} else if (Subtarget-isTargetCygMing()) { std::string SectionName(.section\t.data$linkonce. + name + ,\aw\); @@ -218,7 +218,7 @@ I-getSection() == .dtors)) { std::string SectionName = .section + I-getSection(); - if
[llvm-commits] CVS: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp X86AsmPrinter.cpp X86AsmPrinter.h X86CodeEmitter.cpp X86FloatingPoint.cpp X86ISelDAGToDAG.cpp X86IntelAsmPrinter.cpp
Changes in directory llvm/lib/Target/X86: X86ATTAsmPrinter.cpp updated: 1.79 - 1.80 X86AsmPrinter.cpp updated: 1.222 - 1.223 X86AsmPrinter.h updated: 1.39 - 1.40 X86CodeEmitter.cpp updated: 1.127 - 1.128 X86FloatingPoint.cpp updated: 1.66 - 1.67 X86ISelDAGToDAG.cpp updated: 1.139 - 1.140 X86IntelAsmPrinter.cpp updated: 1.66 - 1.67 --- Log message: eliminate static ctors for Statistic objects. --- Diffs of the changes: (+18 -21) X86ATTAsmPrinter.cpp |4 X86AsmPrinter.cpp |4 X86AsmPrinter.h|3 --- X86CodeEmitter.cpp |6 ++ X86FloatingPoint.cpp |8 X86ISelDAGToDAG.cpp| 10 -- X86IntelAsmPrinter.cpp |4 7 files changed, 18 insertions(+), 21 deletions(-) Index: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp diff -u llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.79 llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.80 --- llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.79 Sun Dec 17 21:37:18 2006 +++ llvm/lib/Target/X86/X86ATTAsmPrinter.cppTue Dec 19 16:59:26 2006 @@ -13,6 +13,7 @@ // //===--===// +#define DEBUG_TYPE asm-printer #include X86ATTAsmPrinter.h #include X86.h #include X86MachineFunctionInfo.h @@ -23,8 +24,11 @@ #include llvm/Support/Mangler.h #include llvm/Target/TargetAsmInfo.h #include llvm/Target/TargetOptions.h +#include llvm/ADT/Statistic.h using namespace llvm; +STATISTIC(EmittedInsts, Number of machine instrs printed); + /// getSectionForFunction - Return the section that we should emit the /// specified function body into. std::string X86ATTAsmPrinter::getSectionForFunction(const Function F) const { Index: llvm/lib/Target/X86/X86AsmPrinter.cpp diff -u llvm/lib/Target/X86/X86AsmPrinter.cpp:1.222 llvm/lib/Target/X86/X86AsmPrinter.cpp:1.223 --- llvm/lib/Target/X86/X86AsmPrinter.cpp:1.222 Sun Dec 17 21:37:18 2006 +++ llvm/lib/Target/X86/X86AsmPrinter.cpp Tue Dec 19 16:59:26 2006 @@ -27,12 +27,8 @@ #include llvm/Assembly/Writer.h #include llvm/Support/Mangler.h #include llvm/Target/TargetAsmInfo.h - using namespace llvm; -Statistic llvm::EmittedInsts(asm-printer, - Number of machine instrs printed); - static X86FunctionInfo calculateFunctionInfo(const Function *F, const TargetData *TD) { X86FunctionInfo Info; Index: llvm/lib/Target/X86/X86AsmPrinter.h diff -u llvm/lib/Target/X86/X86AsmPrinter.h:1.39 llvm/lib/Target/X86/X86AsmPrinter.h:1.40 --- llvm/lib/Target/X86/X86AsmPrinter.h:1.39Sun Dec 17 21:37:18 2006 +++ llvm/lib/Target/X86/X86AsmPrinter.h Tue Dec 19 16:59:26 2006 @@ -22,15 +22,12 @@ #include llvm/CodeGen/AsmPrinter.h #include llvm/CodeGen/DwarfWriter.h #include llvm/CodeGen/MachineDebugInfo.h -#include llvm/ADT/Statistic.h #include llvm/Support/Compiler.h #include set namespace llvm { -extern Statistic EmittedInsts; - // FIXME: Move this to CodeGen/AsmPrinter.h namespace PICStyle { enum X86AsmPICStyle { Index: llvm/lib/Target/X86/X86CodeEmitter.cpp diff -u llvm/lib/Target/X86/X86CodeEmitter.cpp:1.127 llvm/lib/Target/X86/X86CodeEmitter.cpp:1.128 --- llvm/lib/Target/X86/X86CodeEmitter.cpp:1.127Wed Dec 6 11:46:32 2006 +++ llvm/lib/Target/X86/X86CodeEmitter.cpp Tue Dec 19 16:59:26 2006 @@ -12,6 +12,7 @@ // //===--===// +#define DEBUG_TYPE x86-emitter #include X86InstrInfo.h #include X86Subtarget.h #include X86TargetMachine.h @@ -28,10 +29,7 @@ #include llvm/Target/TargetOptions.h using namespace llvm; -namespace { - Statistic - NumEmitted(x86-emitter, Number of machine instructions emitted); -} +STATISTIC(NumEmitted, Number of machine instructions emitted); namespace { class VISIBILITY_HIDDEN Emitter : public MachineFunctionPass { Index: llvm/lib/Target/X86/X86FloatingPoint.cpp diff -u llvm/lib/Target/X86/X86FloatingPoint.cpp:1.66 llvm/lib/Target/X86/X86FloatingPoint.cpp:1.67 --- llvm/lib/Target/X86/X86FloatingPoint.cpp:1.66 Thu Dec 7 23:41:26 2006 +++ llvm/lib/Target/X86/X86FloatingPoint.cppTue Dec 19 16:59:26 2006 @@ -28,7 +28,7 @@ // //===--===// -#define DEBUG_TYPE fp +#define DEBUG_TYPE x86-codegen #include X86.h #include X86InstrInfo.h #include llvm/CodeGen/MachineFunctionPass.h @@ -47,10 +47,10 @@ #include set using namespace llvm; -namespace { - Statistic NumFXCH(x86-codegen, Number of fxch instructions inserted); - Statistic NumFP (x86-codegen, Number of floating point instructions); +STATISTIC(NumFXCH, Number of fxch instructions inserted); +STATISTIC(NumFP , Number of floating point instructions); +namespace { struct VISIBILITY_HIDDEN FPS : public MachineFunctionPass { virtual bool runOnMachineFunction(MachineFunction MF); Index: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp diff -u
[llvm-commits] CVS: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp X86AsmPrinter.cpp X86AsmPrinter.h
Changes in directory llvm/lib/Target/X86: X86ATTAsmPrinter.cpp updated: 1.78 - 1.79 X86AsmPrinter.cpp updated: 1.221 - 1.222 X86AsmPrinter.h updated: 1.38 - 1.39 --- Log message: move ExtWeakSymbols to AsmPrinter --- Diffs of the changes: (+2 -14) X86ATTAsmPrinter.cpp |2 +- X86AsmPrinter.cpp| 11 +-- X86AsmPrinter.h |3 --- 3 files changed, 2 insertions(+), 14 deletions(-) Index: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp diff -u llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.78 llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.79 --- llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.78 Tue Dec 5 13:50:18 2006 +++ llvm/lib/Target/X86/X86ATTAsmPrinter.cppSun Dec 17 21:37:18 2006 @@ -257,7 +257,7 @@ } if (GV-hasExternalWeakLinkage()) - ExtWeakSymbols.insert(Name); + ExtWeakSymbols.insert(GV); int Offset = MO.getOffset(); if (Offset 0) Index: llvm/lib/Target/X86/X86AsmPrinter.cpp diff -u llvm/lib/Target/X86/X86AsmPrinter.cpp:1.221 llvm/lib/Target/X86/X86AsmPrinter.cpp:1.222 --- llvm/lib/Target/X86/X86AsmPrinter.cpp:1.221 Sat Dec 9 17:14:08 2006 +++ llvm/lib/Target/X86/X86AsmPrinter.cpp Sun Dec 17 21:37:18 2006 @@ -250,7 +250,7 @@ // reference! if (const GlobalValue *GV = dyn_castGlobalValue(C)) if (GV-hasExternalWeakLinkage()) - ExtWeakSymbols.insert(Mang-getValueName(GV)); + ExtWeakSymbols.insert(GV); EmitGlobalConstant(C); O '\n'; @@ -278,15 +278,6 @@ O \t.ascii \ -export: *i \\n; } - if (TAI-getWeakRefDirective()) { -if (ExtWeakSymbols.begin() != ExtWeakSymbols.end()) - SwitchToDataSection(); -for (std::setstd::string::iterator i = ExtWeakSymbols.begin(), - e = ExtWeakSymbols.end(); i != e; ++i) { - O TAI-getWeakRefDirective() *i \n; -} - } - if (Subtarget-isTargetDarwin()) { SwitchToDataSection(); Index: llvm/lib/Target/X86/X86AsmPrinter.h diff -u llvm/lib/Target/X86/X86AsmPrinter.h:1.38 llvm/lib/Target/X86/X86AsmPrinter.h:1.39 --- llvm/lib/Target/X86/X86AsmPrinter.h:1.38Wed Dec 6 12:14:47 2006 +++ llvm/lib/Target/X86/X86AsmPrinter.h Sun Dec 17 21:37:18 2006 @@ -86,9 +86,6 @@ // Necessary for dllexport support std::setstd::string DLLExportedFns, DLLExportedGVs; - // Necessary for external weak linkage support - std::setstd::string ExtWeakSymbols; - inline static bool isScale(const MachineOperand MO) { return MO.isImmediate() (MO.getImmedValue() == 1 || MO.getImmedValue() == 2 || ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp X86AsmPrinter.cpp X86AsmPrinter.h X86ISelLowering.cpp X86InstrInfo.td X86TargetAsmInfo.cpp
Changes in directory llvm/lib/Target/X86: X86ATTAsmPrinter.cpp updated: 1.69 - 1.70 X86AsmPrinter.cpp updated: 1.207 - 1.208 X86AsmPrinter.h updated: 1.33 - 1.34 X86ISelLowering.cpp updated: 1.282 - 1.283 X86InstrInfo.td updated: 1.292 - 1.293 X86TargetAsmInfo.cpp updated: 1.5 - 1.6 --- Log message: Add debug support for X86/ELF targets (Linux). This allows llvm-gcc4 generated object modules to be debugged with gdb. Hopefully this helps pre-release debugging. --- Diffs of the changes: (+39 -9) X86ATTAsmPrinter.cpp |6 +++--- X86AsmPrinter.cpp|8 +++- X86AsmPrinter.h |2 +- X86ISelLowering.cpp |2 +- X86InstrInfo.td |6 +++--- X86TargetAsmInfo.cpp | 24 6 files changed, 39 insertions(+), 9 deletions(-) Index: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp diff -u llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.69 llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.70 --- llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.69 Wed Oct 18 04:12:29 2006 +++ llvm/lib/Target/X86/X86ATTAsmPrinter.cppMon Oct 30 16:32:30 2006 @@ -52,7 +52,7 @@ /// method to print assembly for each instruction. /// bool X86ATTAsmPrinter::runOnMachineFunction(MachineFunction MF) { - if (Subtarget-isTargetDarwin()) { + if (Subtarget-isTargetDarwin() || Subtarget-isTargetELF()) { // Let PassManager know we need debug information and relay // the MachineDebugInfo address on to DwarfWriter. DW.SetDebugInfo(getAnalysisMachineDebugInfo()); @@ -111,7 +111,7 @@ F-getLinkage() == Function::WeakLinkage)) O _llvm$workaround$fake$stub_ CurrentFnName :\n; - if (Subtarget-isTargetDarwin()) { + if (Subtarget-isTargetDarwin() || Subtarget-isTargetELF()) { // Emit pre-function debug information. DW.BeginFunction(MF); } @@ -141,7 +141,7 @@ if (TAI-hasDotTypeDotSizeDirective()) O \t.size CurrentFnName , .- CurrentFnName \n; - if (Subtarget-isTargetDarwin()) { + if (Subtarget-isTargetDarwin() || Subtarget-isTargetELF()) { // Emit post-function debug information. DW.EndFunction(); } Index: llvm/lib/Target/X86/X86AsmPrinter.cpp diff -u llvm/lib/Target/X86/X86AsmPrinter.cpp:1.207 llvm/lib/Target/X86/X86AsmPrinter.cpp:1.208 --- llvm/lib/Target/X86/X86AsmPrinter.cpp:1.207 Sat Oct 28 00:56:06 2006 +++ llvm/lib/Target/X86/X86AsmPrinter.cpp Mon Oct 30 16:32:30 2006 @@ -116,6 +116,9 @@ // Emit initial debug information. DW.BeginModule(M); + } else if (Subtarget-isTargetELF()) { +// Emit initial debug information. +DW.BeginModule(M); } return AsmPrinter::doInitialization(M); @@ -278,7 +281,7 @@ O \t.long\t0\n; } -// Emit initial debug information. +// Emit final debug information. DW.EndModule(); // Funny Darwin hack: This flag tells the linker that no global symbols @@ -287,6 +290,9 @@ // linker can safely perform dead code stripping. Since LLVM never // generates code that does this, it is always safe to set. O \t.subsections_via_symbols\n; + } else if (Subtarget-isTargetELF()) { +// Emit final debug information. +DW.EndModule(); } AsmPrinter::doFinalization(M); Index: llvm/lib/Target/X86/X86AsmPrinter.h diff -u llvm/lib/Target/X86/X86AsmPrinter.h:1.33 llvm/lib/Target/X86/X86AsmPrinter.h:1.34 --- llvm/lib/Target/X86/X86AsmPrinter.h:1.33Mon Sep 25 22:57:53 2006 +++ llvm/lib/Target/X86/X86AsmPrinter.h Mon Oct 30 16:32:30 2006 @@ -67,7 +67,7 @@ void getAnalysisUsage(AnalysisUsage AU) const { AU.setPreservesAll(); -if (Subtarget-isTargetDarwin()) { +if (Subtarget-isTargetDarwin() || Subtarget-isTargetELF()) { AU.addRequiredMachineDebugInfo(); } MachineFunctionPass::getAnalysisUsage(AU); Index: llvm/lib/Target/X86/X86ISelLowering.cpp diff -u llvm/lib/Target/X86/X86ISelLowering.cpp:1.282 llvm/lib/Target/X86/X86ISelLowering.cpp:1.283 --- llvm/lib/Target/X86/X86ISelLowering.cpp:1.282 Mon Oct 30 02:02:39 2006 +++ llvm/lib/Target/X86/X86ISelLowering.cpp Mon Oct 30 16:32:30 2006 @@ -219,7 +219,7 @@ setOperationAction(ISD::LOCATION, MVT::Other, Expand); setOperationAction(ISD::DEBUG_LOC, MVT::Other, Expand); // FIXME - use subtarget debug flags - if (!Subtarget-isTargetDarwin()) + if (!Subtarget-isTargetDarwin() !Subtarget-isTargetELF()) setOperationAction(ISD::DEBUG_LABEL, MVT::Other, Expand); // VASTART needs to be custom lowered to use the VarArgsFrameIndex Index: llvm/lib/Target/X86/X86InstrInfo.td diff -u llvm/lib/Target/X86/X86InstrInfo.td:1.292 llvm/lib/Target/X86/X86InstrInfo.td:1.293 --- llvm/lib/Target/X86/X86InstrInfo.td:1.292 Fri Oct 13 16:14:26 2006 +++ llvm/lib/Target/X86/X86InstrInfo.td Mon Oct 30 16:32:30 2006 @@ -2451,9 +2451,9 @@ [(dwarf_loc (i32 imm:$line), (i32 imm:$col), (i32 imm:$file))]; -def DWARF_LABEL : I0, Pseudo, (ops i32imm:$id), -
[llvm-commits] CVS: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp X86AsmPrinter.cpp X86AsmPrinter.h X86ISelLowering.cpp X86IntelAsmPrinter.cpp X86MachineFunctionInfo.h
Changes in directory llvm/lib/Target/X86: X86ATTAsmPrinter.cpp updated: 1.64 - 1.65 X86AsmPrinter.cpp updated: 1.199 - 1.200 X86AsmPrinter.h updated: 1.32 - 1.33 X86ISelLowering.cpp updated: 1.263 - 1.264 X86IntelAsmPrinter.cpp updated: 1.57 - 1.58 X86MachineFunctionInfo.h updated: 1.3 - 1.4 --- Log message: Various random and minor code cleanups. --- Diffs of the changes: (+39 -56) X86ATTAsmPrinter.cpp |7 ++-- X86AsmPrinter.cpp| 67 ++- X86AsmPrinter.h |7 ++-- X86ISelLowering.cpp |5 +-- X86IntelAsmPrinter.cpp |7 ++-- X86MachineFunctionInfo.h |2 - 6 files changed, 39 insertions(+), 56 deletions(-) Index: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp diff -u llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.64 llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.65 --- llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.64 Wed Sep 20 17:03:51 2006 +++ llvm/lib/Target/X86/X86ATTAsmPrinter.cppMon Sep 25 22:57:53 2006 @@ -48,9 +48,8 @@ // Populate function information map. Actually, We don't want to populate // non-stdcall or non-fastcall functions' information right now. - if (CC == CallingConv::X86_StdCall || CC == CallingConv::X86_FastCall) { -FunctionInfoMap[F] = *(MF.getInfoX86FunctionInfo()); - } + if (CC == CallingConv::X86_StdCall || CC == CallingConv::X86_FastCall) +FunctionInfoMap[F] = *MF.getInfoX86FunctionInfo(); X86SharedAsmPrinter::decorateName(CurrentFnName, F); @@ -200,7 +199,7 @@ bool isExt = (GV-isExternal() || GV-hasWeakLinkage() || GV-hasLinkOnceLinkage()); -X86SharedAsmPrinter::decorateName(Name, (Function*)GV); +X86SharedAsmPrinter::decorateName(Name, GV); if (X86PICStyle == PICStyle::Stub TM.getRelocationModel() != Reloc::Static) { Index: llvm/lib/Target/X86/X86AsmPrinter.cpp diff -u llvm/lib/Target/X86/X86AsmPrinter.cpp:1.199 llvm/lib/Target/X86/X86AsmPrinter.cpp:1.200 --- llvm/lib/Target/X86/X86AsmPrinter.cpp:1.199 Wed Sep 20 17:03:51 2006 +++ llvm/lib/Target/X86/X86AsmPrinter.cpp Mon Sep 25 22:57:53 2006 @@ -33,88 +33,75 @@ Statistic llvm::EmittedInsts(asm-printer, Number of machine instrs printed); -static X86FunctionInfo calculateFunctionInfo(const Function* F, - const TargetData* TD) -{ +static X86FunctionInfo calculateFunctionInfo(const Function *F, + const TargetData *TD) { X86FunctionInfo Info; - uint64_t size = 0; + uint64_t Size = 0; switch (F-getCallingConv()) { - case CallingConv::X86_StdCall: + case CallingConv::X86_StdCall: Info.setDecorationStyle(StdCall); break; - case CallingConv::X86_FastCall: + case CallingConv::X86_FastCall: Info.setDecorationStyle(FastCall); break; - default: + default: return Info; } - for (Function::const_arg_iterator AI = F-arg_begin(), -AE = F-arg_end(); - AI != AE; - ++AI) { -size += TD-getTypeSize(AI-getType()); - } + for (Function::const_arg_iterator AI = F-arg_begin(), AE = F-arg_end(); + AI != AE; ++AI) +Size += TD-getTypeSize(AI-getType()); // We're not supporting to huge arguments :) - Info.setBytesToPopOnReturn((unsigned int)size); - + Info.setBytesToPopOnReturn((unsigned int)Size); return Info; } -// Query FunctionInfoMap and use this information for various name decoration -void X86SharedAsmPrinter::decorateName(std::string Name, const GlobalValue* GV) -{ - const X86FunctionInfo* Info; - const Function* F; - - if ((F = dyn_castFunction(GV)) == NULL) { -return; - } - - unsigned CC = F-getCallingConv(); +/// decorateName - Query FunctionInfoMap and use this information for various +/// name decoration. +void X86SharedAsmPrinter::decorateName(std::string Name, + const GlobalValue *GV) { + const Function *F = dyn_castFunction(GV); + if (!F) return; // We don't want to decorate non-stdcall or non-fastcall functions right now - if (CC != CallingConv::X86_StdCall CC != CallingConv::X86_FastCall) { + unsigned CC = F-getCallingConv(); + if (CC != CallingConv::X86_StdCall CC != CallingConv::X86_FastCall) return; - } FMFInfoMap::const_iterator info_item = FunctionInfoMap.find(F); + const X86FunctionInfo *Info; if (info_item == FunctionInfoMap.end()) { // Calculate apropriate function info and populate map FunctionInfoMap[F] = calculateFunctionInfo(F, TM.getTargetData()); Info = FunctionInfoMap[F]; } else { -Info = (info_item-second); +Info = info_item-second; } switch (Info-getDecorationStyle()) { - case None: + case None: break; - case StdCall: -if (!F-isVarArg()) { - // Variadic functions do not receive @0 suffix + case StdCall: +if (!F-isVarArg()) //
[llvm-commits] CVS: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp X86AsmPrinter.cpp X86AsmPrinter.h X86ISelLowering.cpp X86ISelLowering.h X86IntelAsmPrinter.cpp X86MachineFunctionInfo.h
Changes in directory llvm/lib/Target/X86: X86ATTAsmPrinter.cpp updated: 1.63 - 1.64 X86AsmPrinter.cpp updated: 1.198 - 1.199 X86AsmPrinter.h updated: 1.31 - 1.32 X86ISelLowering.cpp updated: 1.261 - 1.262 X86ISelLowering.h updated: 1.72 - 1.73 X86IntelAsmPrinter.cpp updated: 1.56 - 1.57 X86MachineFunctionInfo.h updated: 1.2 - 1.3 --- Log message: Adding codegeneration for StdCall FastCall calling conventions --- Diffs of the changes: (+771 -68) X86ATTAsmPrinter.cpp | 22 + X86AsmPrinter.cpp| 88 ++ X86AsmPrinter.h | 18 + X86ISelLowering.cpp | 621 +++ X86ISelLowering.h| 10 X86IntelAsmPrinter.cpp | 41 ++- X86MachineFunctionInfo.h | 39 ++ 7 files changed, 771 insertions(+), 68 deletions(-) Index: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp diff -u llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.63 llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.64 --- llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.63 Sun Sep 17 15:25:45 2006 +++ llvm/lib/Target/X86/X86ATTAsmPrinter.cppWed Sep 20 17:03:51 2006 @@ -15,8 +15,10 @@ #include X86ATTAsmPrinter.h #include X86.h +#include X86MachineFunctionInfo.h #include X86TargetMachine.h #include X86TargetAsmInfo.h +#include llvm/CallingConv.h #include llvm/Module.h #include llvm/Support/Mangler.h #include llvm/Target/TargetAsmInfo.h @@ -42,6 +44,16 @@ // Print out labels for the function. const Function *F = MF.getFunction(); + unsigned CC = F-getCallingConv(); + + // Populate function information map. Actually, We don't want to populate + // non-stdcall or non-fastcall functions' information right now. + if (CC == CallingConv::X86_StdCall || CC == CallingConv::X86_FastCall) { +FunctionInfoMap[F] = *(MF.getInfoX86FunctionInfo()); + } + + X86SharedAsmPrinter::decorateName(CurrentFnName, F); + switch (F-getLinkage()) { default: assert(0 Unknown linkage type!); case Function::InternalLinkage: // Symbols default to internal. @@ -182,11 +194,14 @@ bool isMemOp = Modifier !strcmp(Modifier, mem); if (!isMemOp !isCallOp) O '$'; -GlobalValue *GV = MO.getGlobal(); +GlobalValue *GV = MO.getGlobal(); std::string Name = Mang-getValueName(GV); bool isExt = (GV-isExternal() || GV-hasWeakLinkage() || GV-hasLinkOnceLinkage()); + +X86SharedAsmPrinter::decorateName(Name, (Function*)GV); + if (X86PICStyle == PICStyle::Stub TM.getRelocationModel() != Reloc::Static) { // Link-once, External, or Weakly-linked global variables need @@ -202,8 +217,6 @@ } } else { if (GV-hasDLLImportLinkage()) { - // FIXME: This should be fixed with full support of stdcall fastcall - // CC's O __imp_; } O Name; @@ -213,12 +226,9 @@ O -\L getFunctionNumber() $pb\; } else { if (GV-hasDLLImportLinkage()) { -// FIXME: This should be fixed with full support of stdcall fastcall -// CC's O __imp_; } O Name; - } int Offset = MO.getOffset(); Index: llvm/lib/Target/X86/X86AsmPrinter.cpp diff -u llvm/lib/Target/X86/X86AsmPrinter.cpp:1.198 llvm/lib/Target/X86/X86AsmPrinter.cpp:1.199 --- llvm/lib/Target/X86/X86AsmPrinter.cpp:1.198 Sun Sep 17 15:25:45 2006 +++ llvm/lib/Target/X86/X86AsmPrinter.cpp Wed Sep 20 17:03:51 2006 @@ -17,18 +17,106 @@ #include X86AsmPrinter.h #include X86ATTAsmPrinter.h #include X86IntelAsmPrinter.h +#include X86MachineFunctionInfo.h #include X86Subtarget.h +#include llvm/ADT/StringExtras.h +#include llvm/CallingConv.h #include llvm/Constants.h #include llvm/Module.h #include llvm/Type.h #include llvm/Assembly/Writer.h #include llvm/Support/Mangler.h #include llvm/Target/TargetAsmInfo.h + using namespace llvm; Statistic llvm::EmittedInsts(asm-printer, Number of machine instrs printed); +static X86FunctionInfo calculateFunctionInfo(const Function* F, + const TargetData* TD) +{ + X86FunctionInfo Info; + uint64_t size = 0; + + switch (F-getCallingConv()) { + case CallingConv::X86_StdCall: +Info.setDecorationStyle(StdCall); +break; + case CallingConv::X86_FastCall: +Info.setDecorationStyle(FastCall); +break; + default: +return Info; + } + + for (Function::const_arg_iterator AI = F-arg_begin(), +AE = F-arg_end(); + AI != AE; + ++AI) { +size += TD-getTypeSize(AI-getType()); + } + + // We're not supporting to huge arguments :) + Info.setBytesToPopOnReturn((unsigned int)size); + + return Info; +} + + +// Query FunctionInfoMap and use this information for various name decoration +void X86SharedAsmPrinter::decorateName(std::string Name, const GlobalValue* GV) +{ + const X86FunctionInfo* Info; +
[llvm-commits] CVS: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp X86AsmPrinter.cpp X86AsmPrinter.h X86ISelLowering.cpp X86IntelAsmPrinter.cpp X86Subtarget.h
Changes in directory llvm/lib/Target/X86: X86ATTAsmPrinter.cpp updated: 1.61 - 1.62 X86AsmPrinter.cpp updated: 1.196 - 1.197 X86AsmPrinter.h updated: 1.30 - 1.31 X86ISelLowering.cpp updated: 1.258 - 1.259 X86IntelAsmPrinter.cpp updated: 1.55 - 1.56 X86Subtarget.h updated: 1.16 - 1.17 --- Log message: Adding dllimport, dllexport and external weak linkage types. DLL* linkages got full (I hope) codegeneration support in C both x86 assembler backends. External weak linkage added for future use, we don't provide any codegeneration, etc. support for it. --- Diffs of the changes: (+123 -9) X86ATTAsmPrinter.cpp | 28 +++ X86AsmPrinter.cpp | 24 +++ X86AsmPrinter.h|3 ++ X86ISelLowering.cpp| 16 + X86IntelAsmPrinter.cpp | 59 + X86Subtarget.h |2 + 6 files changed, 123 insertions(+), 9 deletions(-) Index: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp diff -u llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.61 llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.62 --- llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.61 Fri Sep 8 01:48:29 2006 +++ llvm/lib/Target/X86/X86ATTAsmPrinter.cppThu Sep 14 13:23:27 2006 @@ -48,10 +48,13 @@ SwitchToTextSection(TAI-getTextSection(), F); EmitAlignment(4, F); // FIXME: This should be parameterized somewhere. break; + case Function::DLLExportLinkage: +DLLExportedFns.insert(Mang-makeNameProper(F-getName(), )); +//FALLS THROUGH case Function::ExternalLinkage: SwitchToTextSection(TAI-getTextSection(), F); EmitAlignment(4, F); // FIXME: This should be parameterized somewhere. -O \t.globl\t CurrentFnName \n; +O \t.globl\t CurrentFnName \n; break; case Function::WeakLinkage: case Function::LinkOnceLinkage: @@ -179,8 +182,9 @@ bool isMemOp = Modifier !strcmp(Modifier, mem); if (!isMemOp !isCallOp) O '$'; -GlobalValue *GV = MO.getGlobal(); +GlobalValue *GV = MO.getGlobal(); std::string Name = Mang-getValueName(GV); + bool isExt = (GV-isExternal() || GV-hasWeakLinkage() || GV-hasLinkOnceLinkage()); if (X86PICStyle == PICStyle::Stub @@ -196,13 +200,27 @@ GVStubs.insert(Name); O L Name $non_lazy_ptr; } - } else + } else { +if (GV-hasDLLImportLinkage()) { + // FIXME: This should be fixed with full support of stdcall fastcall + // CC's + O __imp_; +} O Name; + } + if (!isCallOp TM.getRelocationModel() == Reloc::PIC_) O -\L getFunctionNumber() $pb\; -} else +} else { + if (GV-hasDLLImportLinkage()) { +// FIXME: This should be fixed with full support of stdcall fastcall +// CC's +O __imp_; + } O Name; - + +} + int Offset = MO.getOffset(); if (Offset 0) O + Offset; Index: llvm/lib/Target/X86/X86AsmPrinter.cpp diff -u llvm/lib/Target/X86/X86AsmPrinter.cpp:1.196 llvm/lib/Target/X86/X86AsmPrinter.cpp:1.197 --- llvm/lib/Target/X86/X86AsmPrinter.cpp:1.196 Fri Sep 8 01:48:29 2006 +++ llvm/lib/Target/X86/X86AsmPrinter.cpp Thu Sep 14 13:23:27 2006 @@ -112,6 +112,9 @@ case GlobalValue::AppendingLinkage: // FIXME: appending linkage variables should go into a section of // their name or something. For now, just emit them as external. + case GlobalValue::DLLExportLinkage: +DLLExportedGVs.insert(Mang-makeNameProper(I-getName(),)); +// FALL THROUGH case GlobalValue::ExternalLinkage: // If external or appending, declare as a global symbol O \t.globl name \n; @@ -134,6 +137,27 @@ } } + // Output linker support code for dllexported globals + if (DLLExportedGVs.begin() != DLLExportedGVs.end()) { +SwitchToDataSection(.section .drectve, 0); + } + + for (std::setstd::string::iterator i = DLLExportedGVs.begin(), + e = DLLExportedGVs.end(); + i != e; ++i) { +O \t.ascii \ -export: *i ,data\\n; + } + + if (DLLExportedFns.begin() != DLLExportedFns.end()) { +SwitchToDataSection(.section .drectve, 0); + } + + for (std::setstd::string::iterator i = DLLExportedFns.begin(), + e = DLLExportedFns.end(); + i != e; ++i) { +O \t.ascii \ -export: *i \\n; + } + if (Subtarget-isTargetDarwin()) { SwitchToDataSection(, 0); Index: llvm/lib/Target/X86/X86AsmPrinter.h diff -u llvm/lib/Target/X86/X86AsmPrinter.h:1.30 llvm/lib/Target/X86/X86AsmPrinter.h:1.31 --- llvm/lib/Target/X86/X86AsmPrinter.h:1.30Fri Sep 8 01:48:29 2006 +++ llvm/lib/Target/X86/X86AsmPrinter.h Thu Sep 14 13:23:27 2006 @@ -63,6 +63,9 @@ // Necessary for Darwin to print out the apprioriate types of linker stubs std::setstd::string FnStubs, GVStubs,
[llvm-commits] CVS: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp X86AsmPrinter.cpp X86AsmPrinter.h
Changes in directory llvm/lib/Target/X86: X86ATTAsmPrinter.cpp updated: 1.55 - 1.56 X86AsmPrinter.cpp updated: 1.190 - 1.191 X86AsmPrinter.h updated: 1.24 - 1.25 --- Log message: Use the predicate. --- Diffs of the changes: (+15 -15) X86ATTAsmPrinter.cpp | 18 +- X86AsmPrinter.cpp| 10 +- X86AsmPrinter.h |2 +- 3 files changed, 15 insertions(+), 15 deletions(-) Index: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp diff -u llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.55 llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.56 --- llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.55 Wed Jul 26 20:13:04 2006 +++ llvm/lib/Target/X86/X86ATTAsmPrinter.cppWed Jul 26 21:05:13 2006 @@ -26,7 +26,7 @@ /// method to print assembly for each instruction. /// bool X86ATTAsmPrinter::runOnMachineFunction(MachineFunction MF) { - if (Subtarget-TargetType == X86Subtarget::isDarwin) { + if (Subtarget-isTargetDarwin()) { // Let PassManager know we need debug information and relay // the MachineDebugInfo address on to DwarfWriter. DW.SetDebugInfo(getAnalysisMachineDebugInfo()); @@ -56,7 +56,7 @@ break; case Function::WeakLinkage: case Function::LinkOnceLinkage: -if (Subtarget-TargetType == X86Subtarget::isDarwin) { +if (Subtarget-isTargetDarwin()) { SwitchToTextSection( .section __TEXT,__textcoal_nt,coalesced,pure_instructions, F); O \t.globl\t CurrentFnName \n; @@ -78,7 +78,7 @@ } O CurrentFnName :\n; - if (Subtarget-TargetType == X86Subtarget::isDarwin) { + if (Subtarget-isTargetDarwin()) { // Emit pre-function debug information. DW.BeginFunction(MF); } @@ -101,7 +101,7 @@ if (HasDotTypeDotSizeDirective) O \t.size CurrentFnName , .- CurrentFnName \n; - if (Subtarget-TargetType == X86Subtarget::isDarwin) { + if (Subtarget-isTargetDarwin()) { // Emit post-function debug information. DW.EndFunction(); } @@ -143,7 +143,7 @@ if (!isMemOp) O '$'; O PrivateGlobalPrefix JTI getFunctionNumber() _ MO.getJumpTableIndex(); -if (Subtarget-TargetType == X86Subtarget::isDarwin +if (Subtarget-isTargetDarwin() TM.getRelocationModel() == Reloc::PIC_) O -\L getFunctionNumber() $pb\; return; @@ -153,7 +153,7 @@ if (!isMemOp) O '$'; O PrivateGlobalPrefix CPI getFunctionNumber() _ MO.getConstantPoolIndex(); -if (Subtarget-TargetType == X86Subtarget::isDarwin +if (Subtarget-isTargetDarwin() TM.getRelocationModel() == Reloc::PIC_) O -\L getFunctionNumber() $pb\; int Offset = MO.getOffset(); @@ -168,7 +168,7 @@ bool isMemOp = Modifier !strcmp(Modifier, mem); if (!isMemOp !isCallOp) O '$'; // Darwin block shameless ripped from PPCAsmPrinter.cpp -if (Subtarget-TargetType == X86Subtarget::isDarwin +if (Subtarget-isTargetDarwin() TM.getRelocationModel() != Reloc::Static) { GlobalValue *GV = MO.getGlobal(); std::string Name = Mang-getValueName(GV); @@ -201,7 +201,7 @@ case MachineOperand::MO_ExternalSymbol: { bool isCallOp = Modifier !strcmp(Modifier, call); if (isCallOp -Subtarget-TargetType == X86Subtarget::isDarwin +Subtarget-isTargetDarwin() TM.getRelocationModel() != Reloc::Static) { std::string Name(GlobalPrefix); Name += MO.getSymbolName(); @@ -344,7 +344,7 @@ void X86ATTAsmPrinter::printMachineInstruction(const MachineInstr *MI) { ++EmittedInsts; // This works around some Darwin assembler bugs. - if (Subtarget-TargetType == X86Subtarget::isDarwin) { + if (Subtarget-isTargetDarwin()) { switch (MI-getOpcode()) { case X86::REP_MOVSB: O rep/movsb (%esi),(%edi)\n; Index: llvm/lib/Target/X86/X86AsmPrinter.cpp diff -u llvm/lib/Target/X86/X86AsmPrinter.cpp:1.190 llvm/lib/Target/X86/X86AsmPrinter.cpp:1.191 --- llvm/lib/Target/X86/X86AsmPrinter.cpp:1.190 Wed Jul 26 20:13:04 2006 +++ llvm/lib/Target/X86/X86AsmPrinter.cpp Wed Jul 26 21:05:13 2006 @@ -87,7 +87,7 @@ default: break; } - if (Subtarget-TargetType == X86Subtarget::isDarwin) { + if (Subtarget-isTargetDarwin()) { // Emit initial debug information. DW.BeginModule(M); } @@ -118,7 +118,7 @@ if (C-isNullValue() /* FIXME: Verify correct */ (I-hasInternalLinkage() || I-hasWeakLinkage() || I-hasLinkOnceLinkage() || - (Subtarget-TargetType == X86Subtarget::isDarwin + (Subtarget-isTargetDarwin() I-hasExternalLinkage() !I-hasSection( { if (Size == 0) Size = 1; // .comm Foo, 0 is undefined, avoid it. if (I-hasExternalLinkage()) { @@ -130,7 +130,7 @@ if (LCOMMDirective != NULL) { if (I-hasInternalLinkage()) { O LCOMMDirective name , Size; -if (Subtarget-TargetType == X86Subtarget::isDarwin) +if (Subtarget-isTargetDarwin())
[llvm-commits] CVS: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp X86AsmPrinter.cpp X86AsmPrinter.h X86Subtarget.cpp
Changes in directory llvm/lib/Target/X86: X86ATTAsmPrinter.cpp updated: 1.47 - 1.48 X86AsmPrinter.cpp updated: 1.181 - 1.182 X86AsmPrinter.h updated: 1.18 - 1.19 X86Subtarget.cpp updated: 1.26 - 1.27 --- Log message: X86 / Cygwin asm / alignment fixes. Patch contributed by Anton Korobeynikov! --- Diffs of the changes: (+42 -30) X86ATTAsmPrinter.cpp | 32 X86AsmPrinter.cpp| 30 +- X86AsmPrinter.h |8 X86Subtarget.cpp |2 +- 4 files changed, 42 insertions(+), 30 deletions(-) Index: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp diff -u llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.47 llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.48 --- llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.47 Tue May 16 02:21:53 2006 +++ llvm/lib/Target/X86/X86ATTAsmPrinter.cppThu May 25 16:59:08 2006 @@ -26,11 +26,9 @@ /// method to print assembly for each instruction. /// bool X86ATTAsmPrinter::runOnMachineFunction(MachineFunction MF) { - // if (forDarwin) { -// Let PassManager know we need debug information and relay -// the MachineDebugInfo address on to DwarfWriter. -DW.SetDebugInfo(getAnalysisMachineDebugInfo()); -// } + // Let PassManager know we need debug information and relay + // the MachineDebugInfo address on to DwarfWriter. + DW.SetDebugInfo(getAnalysisMachineDebugInfo()); SetupMachineFunction(MF); O \n\n; @@ -56,11 +54,17 @@ break; case Function::WeakLinkage: case Function::LinkOnceLinkage: -if (forDarwin) { +if (Subtarget-TargetType == X86Subtarget::isDarwin) { SwitchToTextSection( .section __TEXT,__textcoal_nt,coalesced,pure_instructions, F); O \t.globl\t CurrentFnName \n; O \t.weak_definition\t CurrentFnName \n; +} else if (Subtarget-TargetType == X86Subtarget::isCygwin) { + EmitAlignment(4, F); // FIXME: This should be parameterized somewhere. + O \t.section\t.llvm.linkonce.t. CurrentFnName + ,\ax\\n; + SwitchToTextSection(, F); + O \t.weak CurrentFnName \n; } else { EmitAlignment(4, F); // FIXME: This should be parameterized somewhere. O \t.section\t.llvm.linkonce.t. CurrentFnName @@ -72,7 +76,7 @@ } O CurrentFnName :\n; - if (forDarwin) { + if (Subtarget-TargetType == X86Subtarget::isDarwin) { // Emit pre-function debug information. DW.BeginFunction(MF); } @@ -95,7 +99,7 @@ if (HasDotTypeDotSizeDirective) O \t.size CurrentFnName , .- CurrentFnName \n; - if (forDarwin) { + if (Subtarget-TargetType == X86Subtarget::isDarwin) { // Emit post-function debug information. DW.EndFunction(); } @@ -145,7 +149,8 @@ if (!isMemOp) O '$'; O PrivateGlobalPrefix CPI getFunctionNumber() _ MO.getConstantPoolIndex(); -if (forDarwin TM.getRelocationModel() == Reloc::PIC) +if (Subtarget-TargetType == X86Subtarget::isDarwin +TM.getRelocationModel() == Reloc::PIC) O -\L getFunctionNumber() $pb\; int Offset = MO.getOffset(); if (Offset 0) @@ -159,7 +164,8 @@ bool isMemOp = Modifier !strcmp(Modifier, mem); if (!isMemOp !isCallOp) O '$'; // Darwin block shameless ripped from PPCAsmPrinter.cpp -if (forDarwin TM.getRelocationModel() != Reloc::Static) { +if (Subtarget-TargetType == X86Subtarget::isDarwin +TM.getRelocationModel() != Reloc::Static) { GlobalValue *GV = MO.getGlobal(); std::string Name = Mang-getValueName(GV); // Link-once, External, or Weakly-linked global variables need @@ -190,7 +196,9 @@ } case MachineOperand::MO_ExternalSymbol: { bool isCallOp = Modifier !strcmp(Modifier, call); -if (isCallOp forDarwin TM.getRelocationModel() != Reloc::Static) { +if (isCallOp +Subtarget-TargetType == X86Subtarget::isDarwin +TM.getRelocationModel() != Reloc::Static) { std::string Name(GlobalPrefix); Name += MO.getSymbolName(); FnStubs.insert(Name); @@ -332,7 +340,7 @@ void X86ATTAsmPrinter::printMachineInstruction(const MachineInstr *MI) { ++EmittedInsts; // This works around some Darwin assembler bugs. - if (forDarwin) { + if (Subtarget-TargetType == X86Subtarget::isDarwin) { switch (MI-getOpcode()) { case X86::REP_MOVSB: O rep/movsb (%esi),(%edi)\n; Index: llvm/lib/Target/X86/X86AsmPrinter.cpp diff -u llvm/lib/Target/X86/X86AsmPrinter.cpp:1.181 llvm/lib/Target/X86/X86AsmPrinter.cpp:1.182 --- llvm/lib/Target/X86/X86AsmPrinter.cpp:1.181 Tue May 9 00:12:53 2006 +++ llvm/lib/Target/X86/X86AsmPrinter.cpp Thu May 25 16:59:08 2006 @@ -46,9 +46,6 @@ /// doInitialization bool X86SharedAsmPrinter::doInitialization(Module M) { - const X86Subtarget *Subtarget = TM.getSubtargetX86Subtarget(); - - forDarwin = false; PrivateGlobalPrefix = .L; DefaultTextSection = .text; DefaultDataSection = .data; @@
[llvm-commits] CVS: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp X86AsmPrinter.cpp X86AsmPrinter.h X86IntelAsmPrinter.cpp
Changes in directory llvm/lib/Target/X86: X86ATTAsmPrinter.cpp updated: 1.45 - 1.46 X86AsmPrinter.cpp updated: 1.180 - 1.181 X86AsmPrinter.h updated: 1.17 - 1.18 X86IntelAsmPrinter.cpp updated: 1.45 - 1.46 --- Log message: Fix the MASM asmprinter's lies. It does not want to emit code to .text/.data it wants it emitted to _text/_data. --- Diffs of the changes: (+17 -7) X86ATTAsmPrinter.cpp |4 ++-- X86AsmPrinter.cpp |6 -- X86AsmPrinter.h|4 X86IntelAsmPrinter.cpp | 10 +++--- 4 files changed, 17 insertions(+), 7 deletions(-) Index: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp diff -u llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.45 llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.46 --- llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.45 Mon May 8 23:59:56 2006 +++ llvm/lib/Target/X86/X86ATTAsmPrinter.cppTue May 9 00:12:53 2006 @@ -46,11 +46,11 @@ switch (F-getLinkage()) { default: assert(0 Unknown linkage type!); case Function::InternalLinkage: // Symbols default to internal. -SwitchToTextSection(.text, F); +SwitchToTextSection(DefaultTextSection, F); EmitAlignment(4, F); // FIXME: This should be parameterized somewhere. break; case Function::ExternalLinkage: -SwitchToTextSection(.text, F); +SwitchToTextSection(DefaultTextSection, F); EmitAlignment(4, F); // FIXME: This should be parameterized somewhere. O \t.globl\t CurrentFnName \n; break; Index: llvm/lib/Target/X86/X86AsmPrinter.cpp diff -u llvm/lib/Target/X86/X86AsmPrinter.cpp:1.180 llvm/lib/Target/X86/X86AsmPrinter.cpp:1.181 --- llvm/lib/Target/X86/X86AsmPrinter.cpp:1.180 Mon May 8 23:59:56 2006 +++ llvm/lib/Target/X86/X86AsmPrinter.cpp Tue May 9 00:12:53 2006 @@ -50,6 +50,8 @@ forDarwin = false; PrivateGlobalPrefix = .L; + DefaultTextSection = .text; + DefaultDataSection = .data; switch (Subtarget-TargetType) { case X86Subtarget::isDarwin: @@ -119,7 +121,7 @@ O \t.zerofill __DATA__, __common, name , Size , Align; } else { -SwitchToDataSection(.data, I); +SwitchToDataSection(DefaultDataSection, I); if (LCOMMDirective != NULL) { if (I-hasInternalLinkage()) { O LCOMMDirective name , Size; @@ -157,7 +159,7 @@ O \t.globl name \n; // FALL THROUGH case GlobalValue::InternalLinkage: -SwitchToDataSection(.data, I); +SwitchToDataSection(DefaultDataSection, I); break; default: assert(0 Unknown linkage type!); Index: llvm/lib/Target/X86/X86AsmPrinter.h diff -u llvm/lib/Target/X86/X86AsmPrinter.h:1.17 llvm/lib/Target/X86/X86AsmPrinter.h:1.18 --- llvm/lib/Target/X86/X86AsmPrinter.h:1.17Tue May 2 12:34:51 2006 +++ llvm/lib/Target/X86/X86AsmPrinter.h Tue May 9 00:12:53 2006 @@ -69,6 +69,10 @@ } bool forDarwin; // FIXME: eliminate. + + const char *DefaultTextSection; // _text for MASM, .text for others. + const char *DefaultDataSection; // _data for MASM, .data for others. + // Necessary for Darwin to print out the apprioriate types of linker stubs std::setstd::string FnStubs, GVStubs, LinkOnceStubs; Index: llvm/lib/Target/X86/X86IntelAsmPrinter.cpp diff -u llvm/lib/Target/X86/X86IntelAsmPrinter.cpp:1.45 llvm/lib/Target/X86/X86IntelAsmPrinter.cpp:1.46 --- llvm/lib/Target/X86/X86IntelAsmPrinter.cpp:1.45 Mon May 8 23:59:56 2006 +++ llvm/lib/Target/X86/X86IntelAsmPrinter.cpp Tue May 9 00:12:53 2006 @@ -37,7 +37,7 @@ EmitConstantPool(MF.getConstantPool()); // Print out labels for the function. - SwitchToTextSection(.code, MF.getFunction()); + SwitchToTextSection(_text, MF.getFunction()); EmitAlignment(4); if (MF.getFunction()-getLinkage() == GlobalValue::ExternalLinkage) O \tpublic CurrentFnName \n; @@ -302,6 +302,9 @@ Data64bitsDirective = \tdq\t; HasDotTypeDotSizeDirective = false; Mang-markCharUnacceptable('.'); + + DefaultTextSection = _text; + DefaultDataSection = _data; O \t.686\n\t.model flat\n\n; @@ -359,7 +362,7 @@ O \tpublic name \n; // FALL THROUGH case GlobalValue::InternalLinkage: - SwitchToDataSection(.data, I); + SwitchToDataSection(DefaultDataSection, I); break; default: assert(0 Unknown linkage type!); @@ -378,7 +381,8 @@ // Bypass X86SharedAsmPrinter::doFinalization(). AsmPrinter::doFinalization(M); - SwitchToDataSection(, 0); + SwitchToDataSection(_data, 0); + O _data\tends\n; O \tend\n; return false; // success } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp X86AsmPrinter.cpp X86AsmPrinter.h X86IntelAsmPrinter.cpp
Changes in directory llvm/lib/Target/X86: X86ATTAsmPrinter.cpp updated: 1.37 - 1.38 X86AsmPrinter.cpp updated: 1.173 - 1.174 X86AsmPrinter.h updated: 1.15 - 1.16 X86IntelAsmPrinter.cpp updated: 1.35 - 1.36 --- Log message: Extend printBasicBlockLabel a bit so that it can be used to print all basic block labels, consolidating the code to do so in one place for each target. --- Diffs of the changes: (+20 -14) X86ATTAsmPrinter.cpp |8 X86AsmPrinter.cpp | 14 +- X86AsmPrinter.h|4 +++- X86IntelAsmPrinter.cpp |8 4 files changed, 20 insertions(+), 14 deletions(-) Index: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp diff -u llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.37 llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.38 --- llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.37 Fri Apr 28 18:19:39 2006 +++ llvm/lib/Target/X86/X86ATTAsmPrinter.cppTue May 2 00:37:32 2006 @@ -80,10 +80,10 @@ for (MachineFunction::const_iterator I = MF.begin(), E = MF.end(); I != E; ++I) { // Print a label for the basic block. -if (I-pred_begin() != I-pred_end()) - O PrivateGlobalPrefix BB CurrentFnName _ I-getNumber() - :\t CommentString I-getBasicBlock()-getName() - \n; +if (I-pred_begin() != I-pred_end()) { + printBasicBlockLabel(I, true); + O '\n'; +} for (MachineBasicBlock::const_iterator II = I-begin(), E = I-end(); II != E; ++II) { // Print the assembly for the instruction. Index: llvm/lib/Target/X86/X86AsmPrinter.cpp diff -u llvm/lib/Target/X86/X86AsmPrinter.cpp:1.173 llvm/lib/Target/X86/X86AsmPrinter.cpp:1.174 --- llvm/lib/Target/X86/X86AsmPrinter.cpp:1.173 Sat Apr 22 13:53:45 2006 +++ llvm/lib/Target/X86/X86AsmPrinter.cpp Tue May 2 00:37:32 2006 @@ -206,12 +206,16 @@ return false; // success } -void X86SharedAsmPrinter::printBasicBlockLabel(const MachineBasicBlock *MBB) - const { +void X86SharedAsmPrinter::printBasicBlockLabel(const MachineBasicBlock *MBB, + bool printColon, + bool printComment) const { O PrivateGlobalPrefix BB - Mang-getValueName(MBB-getParent()-getFunction()) - _ MBB-getNumber() '\t' CommentString - MBB-getBasicBlock()-getName(); + Mang-getValueName(MBB-getParent()-getFunction()) _ + MBB-getNumber(); + if (printColon) +O ':'; + if (printComment) +O '\t' CommentString MBB-getBasicBlock()-getName(); } /// createX86CodePrinterPass - Returns a pass that prints the X86 assembly code Index: llvm/lib/Target/X86/X86AsmPrinter.h diff -u llvm/lib/Target/X86/X86AsmPrinter.h:1.15 llvm/lib/Target/X86/X86AsmPrinter.h:1.16 --- llvm/lib/Target/X86/X86AsmPrinter.h:1.15Sat Apr 22 13:53:45 2006 +++ llvm/lib/Target/X86/X86AsmPrinter.h Tue May 2 00:37:32 2006 @@ -89,7 +89,9 @@ MI-getOperand(Op+3).isConstantPoolIndex()); } - virtual void printBasicBlockLabel(const MachineBasicBlock *MBB) const; + virtual void printBasicBlockLabel(const MachineBasicBlock *MBB, +bool printColon = false, +bool printComment = true) const; }; } // end namespace llvm Index: llvm/lib/Target/X86/X86IntelAsmPrinter.cpp diff -u llvm/lib/Target/X86/X86IntelAsmPrinter.cpp:1.35 llvm/lib/Target/X86/X86IntelAsmPrinter.cpp:1.36 --- llvm/lib/Target/X86/X86IntelAsmPrinter.cpp:1.35 Mon May 1 22:58:45 2006 +++ llvm/lib/Target/X86/X86IntelAsmPrinter.cpp Tue May 2 00:37:32 2006 @@ -72,10 +72,10 @@ for (MachineFunction::const_iterator I = MF.begin(), E = MF.end(); I != E; ++I) { // Print a label for the basic block if there are any predecessors. -if (I-pred_begin() != I-pred_end()) - O PrivateGlobalPrefix BB CurrentFnName _ I-getNumber() - :\t - CommentString I-getBasicBlock()-getName() \n; +if (I-pred_begin() != I-pred_end()) { + printBasicBlockLabel(I, true); + O '\n'; +} for (MachineBasicBlock::const_iterator II = I-begin(), E = I-end(); II != E; ++II) { // Print the assembly for the instruction. ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp X86AsmPrinter.cpp X86AsmPrinter.h X86CodeEmitter.cpp X86ISelLowering.cpp X86InstrInfo.td X86IntelAsmPrinter.cpp
Changes in directory llvm/lib/Target/X86: X86ATTAsmPrinter.cpp updated: 1.33 - 1.34 X86AsmPrinter.cpp updated: 1.172 - 1.173 X86AsmPrinter.h updated: 1.14 - 1.15 X86CodeEmitter.cpp updated: 1.93 - 1.94 X86ISelLowering.cpp updated: 1.182 - 1.183 X86InstrInfo.td updated: 1.260 - 1.261 X86IntelAsmPrinter.cpp updated: 1.26 - 1.27 --- Log message: JumpTable support! What this represents is working asm and jit support for x86 and ppc for 100% dense switch statements when relocations are non-PIC. This support will be extended and enhanced in the coming days to support PIC, and less dense forms of jump tables. --- Diffs of the changes: (+71 -26) X86ATTAsmPrinter.cpp | 20 +--- X86AsmPrinter.cpp |9 + X86AsmPrinter.h|2 ++ X86CodeEmitter.cpp | 24 +++- X86ISelLowering.cpp| 19 +-- X86InstrInfo.td| 14 +- X86IntelAsmPrinter.cpp |9 ++--- 7 files changed, 71 insertions(+), 26 deletions(-) Index: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp diff -u llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.33 llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.34 --- llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.33 Fri Apr 7 15:44:42 2006 +++ llvm/lib/Target/X86/X86ATTAsmPrinter.cppSat Apr 22 13:53:45 2006 @@ -38,6 +38,9 @@ // Print out constants referenced by the function EmitConstantPool(MF.getConstantPool()); + // Print out jump tables referenced by the function + EmitJumpTableInfo(MF.getJumpTableInfo()); + // Print out labels for the function. const Function *F = MF.getFunction(); switch (F-getLinkage()) { @@ -120,18 +123,21 @@ O '$'; O (int)MO.getImmedValue(); return; - case MachineOperand::MO_MachineBasicBlock: { -MachineBasicBlock *MBBOp = MO.getMachineBasicBlock(); -O PrivateGlobalPrefix BB - Mang-getValueName(MBBOp-getParent()-getFunction()) - _ MBBOp-getNumber () \t# - MBBOp-getBasicBlock ()-getName (); + case MachineOperand::MO_MachineBasicBlock: +printBasicBlockLabel(MO.getMachineBasicBlock()); return; - } case MachineOperand::MO_PCRelativeDisp: std::cerr Shouldn't use addPCDisp() when building X86 MachineInstrs; abort (); return; + case MachineOperand::MO_JumpTableIndex: { +bool isMemOp = Modifier !strcmp(Modifier, mem); +if (!isMemOp) O '$'; +O PrivateGlobalPrefix JTI getFunctionNumber() _ + MO.getJumpTableIndex(); +// FIXME: PIC relocation model +return; + } case MachineOperand::MO_ConstantPoolIndex: { bool isMemOp = Modifier !strcmp(Modifier, mem); if (!isMemOp) O '$'; Index: llvm/lib/Target/X86/X86AsmPrinter.cpp diff -u llvm/lib/Target/X86/X86AsmPrinter.cpp:1.172 llvm/lib/Target/X86/X86AsmPrinter.cpp:1.173 --- llvm/lib/Target/X86/X86AsmPrinter.cpp:1.172 Thu Mar 23 12:09:44 2006 +++ llvm/lib/Target/X86/X86AsmPrinter.cpp Sat Apr 22 13:53:45 2006 @@ -54,6 +54,7 @@ ZeroDirective = \t.space\t; // .space N emits N zeros. PrivateGlobalPrefix = L; // Marker for constant pool idxs ConstantPoolSection = \t.const\n; +JumpTableSection = \t.const\n; // FIXME: depends on PIC mode LCOMMDirective = \t.lcomm\t; COMMDirectiveTakesAlignment = false; HasDotTypeDotSizeDirective = false; @@ -205,6 +206,14 @@ return false; // success } +void X86SharedAsmPrinter::printBasicBlockLabel(const MachineBasicBlock *MBB) + const { + O PrivateGlobalPrefix BB + Mang-getValueName(MBB-getParent()-getFunction()) + _ MBB-getNumber() '\t' CommentString + MBB-getBasicBlock()-getName(); +} + /// createX86CodePrinterPass - Returns a pass that prints the X86 assembly code /// for a MachineFunction to the given output stream, using the given target /// machine description. Index: llvm/lib/Target/X86/X86AsmPrinter.h diff -u llvm/lib/Target/X86/X86AsmPrinter.h:1.14 llvm/lib/Target/X86/X86AsmPrinter.h:1.15 --- llvm/lib/Target/X86/X86AsmPrinter.h:1.14Mon Mar 13 17:20:37 2006 +++ llvm/lib/Target/X86/X86AsmPrinter.h Sat Apr 22 13:53:45 2006 @@ -88,6 +88,8 @@ MI-getOperand(Op+3).isGlobalAddress() || MI-getOperand(Op+3).isConstantPoolIndex()); } + + virtual void printBasicBlockLabel(const MachineBasicBlock *MBB) const; }; } // end namespace llvm Index: llvm/lib/Target/X86/X86CodeEmitter.cpp diff -u llvm/lib/Target/X86/X86CodeEmitter.cpp:1.93 llvm/lib/Target/X86/X86CodeEmitter.cpp:1.94 --- llvm/lib/Target/X86/X86CodeEmitter.cpp:1.93 Tue Mar 21 20:52:03 2006 +++ llvm/lib/Target/X86/X86CodeEmitter.cpp Sat Apr 22 13:53:45 2006 @@ -35,8 +35,8 @@ class Emitter : public MachineFunctionPass { const X86InstrInfo *II; MachineCodeEmitter MCE; -std::mapconst MachineBasicBlock*, unsigned BasicBlockAddrs; -std::vectorstd::pairconst MachineBasicBlock *, unsigned BBRefs; +std::mapMachineBasicBlock*, uint64_t BasicBlockAddrs; +
[llvm-commits] CVS: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp X86AsmPrinter.cpp X86AsmPrinter.h X86IntelAsmPrinter.cpp
Changes in directory llvm/lib/Target/X86: X86ATTAsmPrinter.cpp updated: 1.12 - 1.13 X86AsmPrinter.cpp updated: 1.150 - 1.151 X86AsmPrinter.h updated: 1.4 - 1.5 X86IntelAsmPrinter.cpp updated: 1.8 - 1.9 --- Log message: Switch to using the shared constant pool printer, along with using shorter CPI ids --- Diffs of the changes: (+5 -31) X86ATTAsmPrinter.cpp |4 ++-- X86AsmPrinter.cpp | 27 +-- X86AsmPrinter.h|1 - X86IntelAsmPrinter.cpp |4 ++-- 4 files changed, 5 insertions(+), 31 deletions(-) Index: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp diff -u llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.12 llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.13 --- llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.12 Mon Nov 21 01:51:23 2005 +++ llvm/lib/Target/X86/X86ATTAsmPrinter.cppMon Nov 21 02:32:23 2005 @@ -29,7 +29,7 @@ O \n\n; // Print out constants referenced by the function - printConstantPool(MF.getConstantPool()); + EmitConstantPool(MF.getConstantPool()); // Print out labels for the function. SwitchSection(\t.text\n, MF.getFunction()); @@ -176,7 +176,7 @@ O ]; return; } else if (BaseReg.isConstantPoolIndex()) { -O PrivateGlobalPrefix CPI CurrentFnName _ +O PrivateGlobalPrefix CPI getFunctionNumber() _ BaseReg.getConstantPoolIndex(); if (DispSpec.getImmedValue()) O + DispSpec.getImmedValue(); Index: llvm/lib/Target/X86/X86AsmPrinter.cpp diff -u llvm/lib/Target/X86/X86AsmPrinter.cpp:1.150 llvm/lib/Target/X86/X86AsmPrinter.cpp:1.151 --- llvm/lib/Target/X86/X86AsmPrinter.cpp:1.150 Mon Nov 21 01:51:23 2005 +++ llvm/lib/Target/X86/X86AsmPrinter.cpp Mon Nov 21 02:32:23 2005 @@ -68,37 +68,12 @@ Data64bitsDirective = 0; // we can't emit a 64-bit unit ZeroDirective = \t.space\t; // .space N emits N zeros. PrivateGlobalPrefix = L; // Marker for constant pool idxs +ConstantPoolSection = \t.const\n; } return AsmPrinter::doInitialization(M); } -/// printConstantPool - Print to the current output stream assembly -/// representations of the constants in the constant pool MCP. This is -/// used to print out constants which have been spilled to memory by -/// the code generator. -/// -void X86SharedAsmPrinter::printConstantPool(MachineConstantPool *MCP) { - const std::vectorConstant* CP = MCP-getConstants(); - const TargetData TD = TM.getTargetData(); - - if (CP.empty()) return; - - SwitchSection(forDarwin ? \t.const\n : \t.section .rodata\n, 0); - - for (unsigned i = 0, e = CP.size(); i != e; ++i) { -// FIXME: force doubles to be naturally aligned. We should handle this -// more correctly in the future. -if (CP[i]-getType() == Type::DoubleTy) - EmitAlignment(3); -else - EmitAlignment(TD.getTypeAlignmentShift(CP[i]-getType())); -O PrivateGlobalPrefix CPI CurrentFnName _ i - :\t\t\t\t\t CommentString *CP[i] \n; -EmitGlobalConstant(CP[i]); - } -} - bool X86SharedAsmPrinter::doFinalization(Module M) { const TargetData TD = TM.getTargetData(); Index: llvm/lib/Target/X86/X86AsmPrinter.h diff -u llvm/lib/Target/X86/X86AsmPrinter.h:1.4 llvm/lib/Target/X86/X86AsmPrinter.h:1.5 --- llvm/lib/Target/X86/X86AsmPrinter.h:1.4 Mon Nov 21 01:11:11 2005 +++ llvm/lib/Target/X86/X86AsmPrinter.h Mon Nov 21 02:32:23 2005 @@ -32,7 +32,6 @@ : AsmPrinter(O, TM), forCygwin(false), forDarwin(false) { } bool doInitialization(Module M); - void printConstantPool(MachineConstantPool *MCP); bool doFinalization(Module M); bool forCygwin; Index: llvm/lib/Target/X86/X86IntelAsmPrinter.cpp diff -u llvm/lib/Target/X86/X86IntelAsmPrinter.cpp:1.8 llvm/lib/Target/X86/X86IntelAsmPrinter.cpp:1.9 --- llvm/lib/Target/X86/X86IntelAsmPrinter.cpp:1.8 Mon Nov 21 01:51:23 2005 +++ llvm/lib/Target/X86/X86IntelAsmPrinter.cpp Mon Nov 21 02:32:23 2005 @@ -29,7 +29,7 @@ O \n\n; // Print out constants referenced by the function - printConstantPool(MF.getConstantPool()); + EmitConstantPool(MF.getConstantPool()); // Print out labels for the function. SwitchSection(\t.text\n, MF.getFunction()); @@ -143,7 +143,7 @@ O ]; return; } else if (BaseReg.isConstantPoolIndex()) { -O [ PrivateGlobalPrefix CPI CurrentFnName _ +O [ PrivateGlobalPrefix CPI getFunctionNumber() _ BaseReg.getConstantPoolIndex(); if (IndexReg.getReg()) { ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits