[X86] Properly implement the calling convention for f80 for mingw/x86_64
commit29475f1bf8ec6d0bd19c245fb8679448d513af98
authorMartin Storsjo <martin@martin.st>
Tue, 20 Mar 2018 06:19:38 +0000 (20 06:19 +0000)
committerMartin Storsjo <martin@martin.st>
Tue, 20 Mar 2018 06:19:38 +0000 (20 06:19 +0000)
tree206ef49bf96729150b7b768160f3f3e7298698cd
parent0dadf10b4a7e59a808c355a4a469922536dbccd9
[X86] Properly implement the calling convention for f80 for mingw/x86_64

In these cases, both parameters and return values are passed
as a pointer to a stack allocation.

MSVC doesn't use the f80 data type at all, while it is used
for long doubles on mingw.

Normally, this part of the calling convention is handled
within clang, but for intrinsics that are lowered to libcalls,
it may need to be handled within llvm as well.

Differential Revision: https://reviews.llvm.org/D44592

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327957 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86CallingConv.td
test/CodeGen/X86/finite-libcalls.ll
test/CodeGen/X86/scalar-fp-to-i64.ll
test/CodeGen/X86/win64-long-double.ll [new file with mode: 0644]