]> granicus.if.org Git - clang/commit
Correct Vectorcall Register passing and HVA Behavior
authorErich Keane <erich.keane@intel.com>
Thu, 5 Jan 2017 00:20:51 +0000 (00:20 +0000)
committerErich Keane <erich.keane@intel.com>
Thu, 5 Jan 2017 00:20:51 +0000 (00:20 +0000)
commitb0c114c8f684b3b8b8b5d37825a19a889589ebb3
treee4ad4b50c4d026a067e1a701d01dd88e0d0e63cd
parent952bd4324cbd501f3231594e5024ca19ef3496ad
Correct Vectorcall Register passing and HVA Behavior

Front end component (back end changes are D27392).  The vectorcall
calling convention was broken subtly in two cases.  First,
it didn't properly handle homogeneous vector aggregates (HVAs).
Second, the vectorcall specification requires that only the
first 6 parameters be eligible for register assignment.
This patch fixes both issues.

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@291041 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/TargetInfo.cpp
test/CodeGen/vectorcall.c
test/CodeGenCXX/homogeneous-aggregates.cpp