[AArch64] MachO large code-model: Materialize FP constants in code.
authorJuergen Ributzka <juergen@apple.com>
Wed, 10 Dec 2014 19:43:32 +0000 (19:43 +0000)
committerJuergen Ributzka <juergen@apple.com>
Wed, 10 Dec 2014 19:43:32 +0000 (19:43 +0000)
commit446f01b1d5e9840f2748fdcc0c9f70db6d72d640
treeb973aa4c6e663e583a306028f17a6ba65f4c0752
parenta98fd8b6409568b8f8eeccd8ccf4beb71a6c98d9
[AArch64] MachO large code-model: Materialize FP constants in code.

In the large code model we have to first get the address of the GOT entry, load
the address of the constant, and then load the constant itself.

To avoid these loads and the GOT entry alltogether this commit changes the way
how FP constants are materialized in the large code model. The constats are now
materialized in a GPR and then bitconverted/moved into the FPR.

Reviewed by Tim Northover

Fixes rdar://problem/16572564.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@223941 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/AArch64/AArch64FastISel.cpp
lib/Target/AArch64/AArch64ISelLowering.cpp
lib/Target/AArch64/AArch64InstrInfo.td
test/CodeGen/AArch64/fpimm.ll