From df97304b68f46fc1afed8a54b71eaea20973a8f4 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Tue, 11 Aug 2009 20:30:58 +0000 Subject: split "JumpTableDirective" (an existing hack) into a PIC and nonPIC version. This allows TAI implementations to specify the directive to use based on the mode being codegen'd for. The real fix for this is to remove JumpTableDirective, but I don't feel like diving into the jumptable snarl just now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78709 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp | 10 +++------- lib/Target/Alpha/AlphaTargetAsmInfo.cpp | 2 +- lib/Target/Mips/MipsTargetAsmInfo.cpp | 4 +--- lib/Target/TargetAsmInfo.cpp | 1 + 4 files changed, 6 insertions(+), 11 deletions(-) (limited to 'lib') diff --git a/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp b/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp index 02ced44..178e085 100644 --- a/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp +++ b/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp @@ -923,9 +923,7 @@ void ARMAsmPrinter::printJTBlockOperand(const MachineInstr *MI, int OpNum) { O << TAI->getPrivateGlobalPrefix() << "JTI" << getFunctionNumber() << '_' << JTI << '_' << MO2.getImm() << ":\n"; - const char *JTEntryDirective = TAI->getJumpTableDirective(); - if (!JTEntryDirective) - JTEntryDirective = TAI->getData32bitsDirective(); + const char *JTEntryDirective = TAI->getData32bitsDirective(); const MachineFunction *MF = MI->getParent()->getParent(); const MachineJumpTableInfo *MJTI = MF->getJumpTableInfo(); @@ -947,10 +945,8 @@ void ARMAsmPrinter::printJTBlockOperand(const MachineInstr *MI, int OpNum) { << "_set_" << MBB->getNumber(); else if (TM.getRelocationModel() == Reloc::PIC_) { printBasicBlockLabel(MBB, false, false, false); - // If the arch uses custom Jump Table directives, don't calc relative to JT - if (!TAI->getJumpTableDirective()) - O << '-' << TAI->getPrivateGlobalPrefix() << "JTI" - << getFunctionNumber() << '_' << JTI << '_' << MO2.getImm(); + O << '-' << TAI->getPrivateGlobalPrefix() << "JTI" + << getFunctionNumber() << '_' << JTI << '_' << MO2.getImm(); } else { printBasicBlockLabel(MBB, false, false, false); } diff --git a/lib/Target/Alpha/AlphaTargetAsmInfo.cpp b/lib/Target/Alpha/AlphaTargetAsmInfo.cpp index 0abdce9..20be50e 100644 --- a/lib/Target/Alpha/AlphaTargetAsmInfo.cpp +++ b/lib/Target/Alpha/AlphaTargetAsmInfo.cpp @@ -17,6 +17,6 @@ using namespace llvm; AlphaTargetAsmInfo::AlphaTargetAsmInfo() { AlignmentIsInBytes = false; PrivateGlobalPrefix = "$"; - JumpTableDirective = ".gprel32"; + PICJumpTableDirective = ".gprel32"; WeakRefDirective = "\t.weak\t"; } diff --git a/lib/Target/Mips/MipsTargetAsmInfo.cpp b/lib/Target/Mips/MipsTargetAsmInfo.cpp index aa40ff6..8cb58c8 100644 --- a/lib/Target/Mips/MipsTargetAsmInfo.cpp +++ b/lib/Target/Mips/MipsTargetAsmInfo.cpp @@ -24,7 +24,5 @@ MipsTargetAsmInfo::MipsTargetAsmInfo(const MipsTargetMachine &TM) { PrivateGlobalPrefix = "$"; CommentString = "#"; ZeroDirective = "\t.space\t"; - - if (TM.getRelocationModel() == Reloc::PIC_) - JumpTableDirective = "\t.gpword\t"; + PICJumpTableDirective = "\t.gpword\t"; } diff --git a/lib/Target/TargetAsmInfo.cpp b/lib/Target/TargetAsmInfo.cpp index 84a9771..51aeae4 100644 --- a/lib/Target/TargetAsmInfo.cpp +++ b/lib/Target/TargetAsmInfo.cpp @@ -54,6 +54,7 @@ TargetAsmInfo::TargetAsmInfo() { AlignmentIsInBytes = true; TextAlignFillValue = 0; JumpTableDirective = 0; + PICJumpTableDirective = 0; GlobalDirective = "\t.globl\t"; SetDirective = 0; LCOMMDirective = 0; -- cgit v1.1