[llvm-commits] CVS: llvm/lib/CodeGen/AsmPrinter.cpp
Chris Lattner
lattner at cs.uiuc.edu
Fri Jul 14 18:34:24 PDT 2006
Changes in directory llvm/lib/CodeGen:
AsmPrinter.cpp updated: 1.83 -> 1.84
---
Log message:
On 64-bit targets like ppc64, we should use .quad to output pointer directives,
not .long.
---
Diffs of the changes: (+9 -1)
AsmPrinter.cpp | 10 +++++++++-
1 files changed, 9 insertions(+), 1 deletion(-)
Index: llvm/lib/CodeGen/AsmPrinter.cpp
diff -u llvm/lib/CodeGen/AsmPrinter.cpp:1.83 llvm/lib/CodeGen/AsmPrinter.cpp:1.84
--- llvm/lib/CodeGen/AsmPrinter.cpp:1.83 Wed Jun 28 19:26:09 2006
+++ llvm/lib/CodeGen/AsmPrinter.cpp Fri Jul 14 20:34:12 2006
@@ -217,12 +217,20 @@
SwitchToDataSection(JumpTableSection, 0);
EmitAlignment(Log2_32(TD->getPointerAlignment()));
+
+ // Pick the directive to use based on the pointer size. FIXME: when we support
+ // PIC jumptables, this should always use the 32-bit directive for label
+ // differences.
+ const char *PtrDataDirective = Data32bitsDirective;
+ if (TD->getPointerSize() == 8)
+ PtrDataDirective = Data64bitsDirective;
+
for (unsigned i = 0, e = JT.size(); i != e; ++i) {
O << PrivateGlobalPrefix << "JTI" << getFunctionNumber() << '_' << i
<< ":\n";
const std::vector<MachineBasicBlock*> &JTBBs = JT[i].MBBs;
for (unsigned ii = 0, ee = JTBBs.size(); ii != ee; ++ii) {
- O << Data32bitsDirective << ' ';
+ O << PtrDataDirective << ' ';
printBasicBlockLabel(JTBBs[ii]);
O << '\n';
}
More information about the llvm-commits
mailing list