On Mac, print jump table entries after the function to work around a linker issue.
authorEvan Cheng <evan.cheng@apple.com>
Mon, 28 Aug 2006 22:14:16 +0000 (22:14 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Mon, 28 Aug 2006 22:14:16 +0000 (22:14 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29946 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86ATTAsmPrinter.cpp

index 10a2c89fbacc338031869f9175bb21cf07596529..76e137e75b24f942c3488b3ebec786d025555480 100755 (executable)
@@ -38,9 +38,6 @@ bool X86ATTAsmPrinter::runOnMachineFunction(MachineFunction &MF) {
   // Print out constants referenced by the function
   EmitConstantPool(MF.getConstantPool());
 
-  // Print out jump tables referenced by the function
-  EmitJumpTableInfo(MF.getJumpTableInfo());
-  
   // Print out labels for the function.
   const Function *F = MF.getFunction();
   switch (F->getLinkage()) {
@@ -98,6 +95,12 @@ bool X86ATTAsmPrinter::runOnMachineFunction(MachineFunction &MF) {
       printMachineInstruction(II);
     }
   }
+
+  // Print out jump tables referenced by the function
+  // Mac OS X requires at least one non-local (e.g. L1) labels before local
+  // lables that are used in jump table expressions (e.g. LBB1_1-LJT1_0).
+  EmitJumpTableInfo(MF.getJumpTableInfo());
+  
   if (HasDotTypeDotSizeDirective)
     O << "\t.size " << CurrentFnName << ", .-" << CurrentFnName << "\n";