From: Evan Cheng Date: Wed, 16 Jul 2008 01:33:08 +0000 (+0000) Subject: X86-64 PIC jump table values are different from x86-32 cases, they are dest - table... X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=81fb5feedea18e6c90e5206859fcfdbad5c4714c;p=oota-llvm.git X86-64 PIC jump table values are different from x86-32 cases, they are dest - table base. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53660 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/X86/X86JITInfo.cpp b/lib/Target/X86/X86JITInfo.cpp index fd495c7588f..0cda7d3a43a 100644 --- a/lib/Target/X86/X86JITInfo.cpp +++ b/lib/Target/X86/X86JITInfo.cpp @@ -463,7 +463,11 @@ void *X86JITInfo::emitFunctionStub(const Function* F, void *Fn, /// getPICJumpTableEntry - Returns the value of the jumptable entry for the /// specific basic block. intptr_t X86JITInfo::getPICJumpTableEntry(intptr_t BB, intptr_t Entry) { +#if defined(X86_64_JIT) + return BB - Entry; +#else return BB - PICBase; +#endif } /// relocate - Before the JIT can run a block of code that has been emitted,