[llvm-commits] CVS: llvm/lib/Target/IA64/IA64AsmPrinter.cpp
Jim Laskey
jlaskey at apple.com
Wed Sep 6 11:35:05 PDT 2006
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);
}
More information about the llvm-commits
mailing list