]> granicus.if.org Git - clang/commit
AArch64: simplify PCS mapping.
authorTim Northover <tnorthover@apple.com>
Thu, 27 Nov 2014 21:02:49 +0000 (21:02 +0000)
committerTim Northover <tnorthover@apple.com>
Thu, 27 Nov 2014 21:02:49 +0000 (21:02 +0000)
commit5609bba46f1f7da78b097298970cd2c0378aad6b
tree930d8ee1fb7ee0758f93a2cfe605fcd0c5eb1190
parentef2bbb8bc2a387d6b11eb757388a5e692e51c967
AArch64: simplify PCS mapping.

Now that LLVM can count the registers needed to implement AAPCS rules, we don't
need to duplicate that logic here. This means we can drop the explicit padding
and also use more natural types in many cases (e.g. "struct { float arr[3]; }"
used to end up as "[2 x double]" to avoid holes on the stack.

The one wrinkle is that AAPCS va_arg was also using the register counting
machinery. But the local replacement isn't too bad.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222904 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/TargetInfo.cpp
test/CodeGen/arm-aapcs-vfp.c
test/CodeGen/arm-homogenous.c
test/CodeGen/arm64-aapcs-arguments.c
test/CodeGen/arm64-arguments.c
test/CodeGenCXX/homogeneous-aggregates.cpp