OSDN Git Service

Allow X86FastIsel to cope with 64 bit absolute relocations
authorLouis Gerbarg <lgg@apple.com>
Tue, 17 Jun 2014 23:22:41 +0000 (23:22 +0000)
committerLouis Gerbarg <lgg@apple.com>
Tue, 17 Jun 2014 23:22:41 +0000 (23:22 +0000)
commit41b33299cfb43b4bd637140e175f8ddd0050e690
tree230d2be7dc26989e218f8896ba5ee02ae32c0f49
parente8cb2ee1cd8ad7568a81f294ba09e0af2aff9e77
Allow X86FastIsel to cope with 64 bit absolute relocations

This patch is a follow up to r211040 & r211052. Rather than bailing out of fast
isel this patch will generate an alternate instruction (movabsq) instead of the
leaq. While this will always have enough room to handle the 64 bit displacment
it is generally over kill for internal symbols (most displacements will be
within 32 bits) but since we have no way of communicating the code model to the
the assmebler in order to avoid flagging an absolute leal/leaq as illegal when
using a symbolic displacement.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211130 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86FastISel.cpp
test/CodeGen/X86/x86-64-static-relo-movl.ll
test/DebugInfo/X86/debug-loc-asan.ll