summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86CodeEmitter.cpp
diff options
context:
space:
mode:
authorNate Begeman <natebegeman@mac.com>2006-05-03 04:52:47 +0000
committerNate Begeman <natebegeman@mac.com>2006-05-03 04:52:47 +0000
commit43b1ed7e3df02aae9f92555b68bf61f98fe7102b (patch)
tree1b7624c5ca545f243157430e5b72ce1919f1bf67 /llvm/lib/Target/X86/X86CodeEmitter.cpp
parentdf4883971ef76258693387386b7f76e401a27163 (diff)
downloadbcm5719-llvm-43b1ed7e3df02aae9f92555b68bf61f98fe7102b.tar.gz
bcm5719-llvm-43b1ed7e3df02aae9f92555b68bf61f98fe7102b.zip
Teach the x86 jit how to handle jump tables not directly used by a jump
instruction. llvm-svn: 28080
Diffstat (limited to 'llvm/lib/Target/X86/X86CodeEmitter.cpp')
-rw-r--r--llvm/lib/Target/X86/X86CodeEmitter.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86CodeEmitter.cpp b/llvm/lib/Target/X86/X86CodeEmitter.cpp
index ca6c78df5ec..9e2c998e3f1 100644
--- a/llvm/lib/Target/X86/X86CodeEmitter.cpp
+++ b/llvm/lib/Target/X86/X86CodeEmitter.cpp
@@ -517,6 +517,9 @@ void Emitter::emitInstruction(const MachineInstr &MI) {
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!");
}
OpenPOWER on IntegriCloud