Reapply [FastISel][X86] Add large code model support for materializing floating-point...
authorJuergen Ributzka <juergen@apple.com>
Tue, 19 Aug 2014 19:44:13 +0000 (19:44 +0000)
committerJuergen Ributzka <juergen@apple.com>
Tue, 19 Aug 2014 19:44:13 +0000 (19:44 +0000)
commit96b1e70c66aa49db4ab2bcfeaefcef9c98415ad1
treee260abda65c2296d4bb38dbed27f60331375f0df
parent9c23685dd25370a9a255052e44fa609b8ce455c0
Reapply [FastISel][X86] Add large code model support for materializing floating-point constants (r215595).

Note: This was originally reverted to track down a buildbot error. Reapply
without any modifications.

Original commit message:
In the large code model for X86 floating-point constants are placed in the
constant pool and materialized by loading from it. Since the constant pool
could be far away, a PC relative load might not work. Therefore we first
materialize the address of the constant pool with a movabsq and then load
from there the floating-point value.

Fixes <rdar://problem/17674628>.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216012 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86FastISel.cpp
test/CodeGen/X86/fast-isel-constpool.ll