Teach the x86 jit how to handle jump tables not directly used by a jump
instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28080 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/X86/X86CodeEmitter.cpp b/lib/Target/X86/X86CodeEmitter.cpp
index ca6c78d..9e2c998 100644
--- a/lib/Target/X86/X86CodeEmitter.cpp
+++ b/lib/Target/X86/X86CodeEmitter.cpp
@@ -517,6 +517,9 @@
else if (MI.getOperand(4).isGlobalAddress())
emitGlobalAddressForPtr(MI.getOperand(4).getGlobal(),
MI.getOperand(4).getOffset());
+ else if (MI.getOperand(4).isJumpTableIndex())
+ emitConstant(MCE.getJumpTableEntryAddress(MI.getOperand(4)
+ .getJumpTableIndex()), 4);
else
assert(0 && "Unknown operand!");
}