diff options
author | Michael Kuperstein <michael.m.kuperstein@intel.com> | 2015-05-19 11:06:56 +0000 |
---|---|---|
committer | Michael Kuperstein <michael.m.kuperstein@intel.com> | 2015-05-19 11:06:56 +0000 |
commit | e88a021bf43a122577e99785bf752adbcf557974 (patch) | |
tree | 15fb3e1d684038dbb9e4242a6b9370f70f98caf7 /clang/unittests/Format/FormatTest.cpp | |
parent | ed41f774fca65e8d9319e66b7128da48d85724fc (diff) | |
download | bcm5719-llvm-e88a021bf43a122577e99785bf752adbcf557974.tar.gz bcm5719-llvm-e88a021bf43a122577e99785bf752adbcf557974.zip |
[X86] ABI change for x86-32: pass 3 vector arguments in-register instead of 4, except on Darwin.
This changes the ABI used on 32-bit x86 for passing vector arguments.
Historically, clang passes the first 4 vector arguments in-register, and additional vector arguments on the stack, regardless of platform. That is different from the behavior of gcc, icc, and msvc, all of which pass only the first 3 arguments in-register.
The 3-register convention is documented, unofficially, in Agner's calling convention guide, and, officially, in the recently released version 1.0 of the i386 psABI.
Darwin is kept as is because the OS X ABI Function Call Guide explicitly documents the current (4-register) behavior.
This fixes PR21510
Differential revision: http://reviews.llvm.org/D9644
llvm-svn: 237682
Diffstat (limited to 'clang/unittests/Format/FormatTest.cpp')
0 files changed, 0 insertions, 0 deletions