summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen/arm64-aapcs-arguments.c
Commit message (Collapse)AuthorAgeFilesLines
* AArch64: simplify PCS mapping.Tim Northover2014-11-271-3/+3
| | | | | | | | | | | | 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. llvm-svn: 222904
* Allow __fp16 as a function arg or return type for AArch64Oliver Stannard2014-08-271-1/+10
| | | | | | | | | | | ACLE 2.0 allows __fp16 to be used as a function argument or return type. This enables this for AArch64. This also fixes an existing bug that causes clang to not allow homogeneous floating-point aggregates with a base type of __fp16. This is valid for AAPCS64, but not for AAPCS-VFP. llvm-svn: 216558
* ARM64: make sure the caller is expected to extend in AAPCS.Tim Northover2014-04-181-0/+7
| | | | | | | This is one of those DarwinPCS differences. It'd been caught in arguments, but not return values. llvm-svn: 206594
* ARM64: make sure HFAs on the stack get properly aligned.Tim Northover2014-04-181-1/+13
| | | | | | Another AAPCS bug, part of PR19432. llvm-svn: 206580
* ARM64: remove holes from *all* HFAs on the stack.Tim Northover2014-04-171-0/+9
| | | | | | | | | | My first attempt to make sure HFAs were contiguous was in the block dealing with padding registers, which meant it only triggered on the first stack-based HFA. This should extend it to the rest as well. Another part of PR19432. llvm-svn: 206456
* ARM64: track alignment padding registers on AAPCS targetsTim Northover2014-04-151-0/+14
This implements clause C.8 of the AAPCS in the front-end, so that Clang accurately knows when the registers run out and it has to insert padding before the stack objects begin. PR19432. llvm-svn: 206296
OpenPOWER on IntegriCloud