]> granicus.if.org Git - clang/commit
ARM64: Do not expand variadic HFA/HVA arguments with the Darwin ABI.
authorBob Wilson <bob.wilson@apple.com>
Mon, 21 Apr 2014 01:23:39 +0000 (01:23 +0000)
committerBob Wilson <bob.wilson@apple.com>
Mon, 21 Apr 2014 01:23:39 +0000 (01:23 +0000)
commitc9b73d121f0f144f835cafa638a55b6321372c78
tree83a818b0c24e7e6b70fc523ab402c0fdba45db77
parent201871de18c6e1a21561a05bc8df7075777e5166
ARM64: Do not expand variadic HFA/HVA arguments with the Darwin ABI.

Unlike the standard AAPCS64 ABI, variadic arguments are always passed on the
stack with the Darwin ABI, and this was not being considered when deciding
whether to expand HFA/HVA arguments in a call. An HFA argument with a "float"
base type was being expanded into separate "float" arguments, each of which
was then extended to a double, resulting in a serious mismatch from what is
expected by the va_arg implementation. <rdar://problem/15777067>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206729 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/TargetInfo.cpp
test/CodeGen/arm64-arguments.c