]> granicus.if.org Git - clang/commit
[ARM64] [Windows] Follow MS X86_64 C++ ABI when passing structs
authorSanjin Sijaric <ssijaric@codeaurora.org>
Thu, 26 Jul 2018 22:18:28 +0000 (22:18 +0000)
committerSanjin Sijaric <ssijaric@codeaurora.org>
Thu, 26 Jul 2018 22:18:28 +0000 (22:18 +0000)
commit7d295a322620d385499f7f704a3117e28a2d8fcd
treefff32e258563a5d0f2eef277d815a0996079ca71
parent3f01e7fca5b998815cb437214c9cab560b5e487d
[ARM64] [Windows] Follow MS X86_64 C++ ABI when passing structs

Summary: Microsoft's C++ object model for ARM64 is the same as that for X86_64.
For example, small structs with non-trivial copy constructors or virtual
function tables are passed indirectly.  Currently, they are passed in registers
when compiled with clang.

Reviewers: rnk, mstorsjo, TomTan, haripul, javed.absar

Reviewed By: rnk, mstorsjo

Subscribers: kristof.beyls, chrib, llvm-commits, cfe-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@338076 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Basic/TargetInfo.h
lib/Basic/Targets/AArch64.cpp
lib/Basic/Targets/AArch64.h
lib/Basic/Targets/X86.h
lib/CodeGen/MicrosoftCXXABI.cpp
lib/Sema/SemaDeclCXX.cpp
test/CodeGenCXX/microsoft-abi-sret-and-byval.cpp