Changes in directory llvm/lib/Target/IA64:
IA64AsmPrinter.cpp updated: 1.33 -> 1.34 --- Log message: Separate target specific asm properties from the asm printers. --- Diffs of the changes: (+15 -6) IA64AsmPrinter.cpp | 21 +++++++++++++++------ 1 files changed, 15 insertions(+), 6 deletions(-) Index: llvm/lib/Target/IA64/IA64AsmPrinter.cpp diff -u llvm/lib/Target/IA64/IA64AsmPrinter.cpp:1.33 llvm/lib/Target/IA64/IA64AsmPrinter.cpp:1.34 --- llvm/lib/Target/IA64/IA64AsmPrinter.cpp:1.33 Mon May 8 23:59:56 2006 +++ llvm/lib/Target/IA64/IA64AsmPrinter.cpp Wed Sep 6 13:34:40 2006 @@ -24,6 +24,7 @@ #include "llvm/CodeGen/AsmPrinter.h" #include "llvm/CodeGen/MachineFunctionPass.h" #include "llvm/Target/TargetMachine.h" +#include "llvm/Target/TargetAsmInfo.h" #include "llvm/Support/Mangler.h" #include "llvm/ADT/Statistic.h" #include <iostream> @@ -32,10 +33,8 @@ namespace { Statistic<> EmittedInsts("asm-printer", "Number of machine instrs printed"); - struct IA64AsmPrinter : public AsmPrinter { - std::set<std::string> ExternalFunctionNames, ExternalObjectNames; - - IA64AsmPrinter(std::ostream &O, TargetMachine &TM) : AsmPrinter(O, TM) { + struct VISIBILITY_HIDDEN IA64TargetAsmInfo : public TargetAsmInfo { + IA64TargetAsmInfo() { CommentString = "//"; Data8bitsDirective = "\tdata1\t"; // FIXME: check that we are Data16bitsDirective = "\tdata2.ua\t"; // disabling auto-alignment @@ -52,6 +51,14 @@ // FIXME: would be nice to have rodata (no 'w') when appropriate? ConstantPoolSection = "\n\t.section .data, \"aw\", \"progbits\"\n"; } + }; + + struct IA64AsmPrinter : public AsmPrinter { + std::set<std::string> ExternalFunctionNames, ExternalObjectNames; + + IA64AsmPrinter(std::ostream &O, TargetMachine &TM, TargetAsmInfo *T) + : AsmPrinter(O, TM, T) { + } virtual const char *getPassName() const { return "IA64 Assembly Printer"; @@ -185,7 +192,8 @@ printBasicBlockLabel(MO.getMachineBasicBlock()); return; case MachineOperand::MO_ConstantPoolIndex: { - O << "@gprel(" << PrivateGlobalPrefix << "CPI" << getFunctionNumber() << "_" + O << "@gprel(" << TAI->getPrivateGlobalPrefix() + << "CPI" << getFunctionNumber() << "_" << MO.getConstantPoolIndex() << ")"; return; } @@ -358,7 +366,8 @@ /// FunctionPass *llvm::createIA64CodePrinterPass(std::ostream &o, IA64TargetMachine &tm) { - return new IA64AsmPrinter(o, tm); + IA64TargetAsmInfo *TAI = new IA64TargetAsmInfo(); + return new IA64AsmPrinter(o, tm, TAI); } _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits