[Win64] Handle passing i128 by value
authorReid Kleckner <rnk@google.com>
Tue, 30 Oct 2018 23:58:41 +0000 (23:58 +0000)
committerReid Kleckner <rnk@google.com>
Tue, 30 Oct 2018 23:58:41 +0000 (23:58 +0000)
commit0897caad3010cfbb291c894f7972fb031e04abdf
tree47c0169e10335a6115adabd9468d31fcdd22011f
parent91242b788a9a1182f1e67d63e89e68be1502c839
[Win64] Handle passing i128 by value

For arguments, pass it indirectly, since the ABI doc says pretty clearly
that arguments larger than 8 bytes are passed indirectly. This makes
va_list handling easier, anyway.

When returning, GCC returns in XMM0, and we match them.

Fixes PR39492.

llvm-svn: 345676
clang/lib/CodeGen/TargetInfo.cpp
clang/test/CodeGen/win64-i128.c [new file with mode: 0644]