Changes in directory llvm/lib/CodeGen:
AsmPrinter.cpp updated: 1.97 -> 1.98 --- Log message: Add support for other relocation bases to jump tables, as well as custom asm directives --- Diffs of the changes: (+8 -3) AsmPrinter.cpp | 11 ++++++++--- 1 files changed, 8 insertions(+), 3 deletions(-) Index: llvm/lib/CodeGen/AsmPrinter.cpp diff -u llvm/lib/CodeGen/AsmPrinter.cpp:1.97 llvm/lib/CodeGen/AsmPrinter.cpp:1.98 --- llvm/lib/CodeGen/AsmPrinter.cpp:1.97 Mon Sep 18 13:00:18 2006 +++ llvm/lib/CodeGen/AsmPrinter.cpp Sun Sep 24 14:44:59 2006 @@ -187,7 +187,10 @@ // JTEntryDirective is a string to print sizeof(ptr) for non-PIC jump tables, // and 32 bits for PIC since PIC jump table entries are differences, not // pointers to blocks. - const char *JTEntryDirective = TAI->getData32bitsDirective(); + // Use the architecture specific relocation directive, if it is set + const char *JTEntryDirective = TAI->getJumpTableDirective(); + if (!JTEntryDirective) + JTEntryDirective = TAI->getData32bitsDirective(); // Pick the directive to use to print the jump table entries, and switch to // the appropriate section. @@ -227,8 +230,10 @@ << '_' << i << "_set_" << JTBBs[ii]->getNumber(); } else if (TM.getRelocationModel() == Reloc::PIC_) { printBasicBlockLabel(JTBBs[ii], false, false); - O << '-' << TAI->getPrivateGlobalPrefix() << "JTI" - << getFunctionNumber() << '_' << i; + //If the arch uses custom Jump Table directives, don't calc relative to JT + if (!TAI->getJumpTableDirective()) + O << '-' << TAI->getPrivateGlobalPrefix() << "JTI" + << getFunctionNumber() << '_' << i; } else { printBasicBlockLabel(JTBBs[ii], false, false); } _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits