summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/MicrosoftCXXABI.cpp
diff options
context:
space:
mode:
authorSanjin Sijaric <ssijaric@codeaurora.org>2018-07-26 22:18:28 +0000
committerSanjin Sijaric <ssijaric@codeaurora.org>2018-07-26 22:18:28 +0000
commit56391d6f848013d3b2847d2e4366165296901981 (patch)
tree43a757d9f88699dbb010fee9724d41b7c3996f45 /clang/lib/CodeGen/MicrosoftCXXABI.cpp
parent23df1319ca76f867a83634d74ba78377569e29b1 (diff)
downloadbcm5719-llvm-56391d6f848013d3b2847d2e4366165296901981.tar.gz
bcm5719-llvm-56391d6f848013d3b2847d2e4366165296901981.zip
[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 llvm-svn: 338076
Diffstat (limited to 'clang/lib/CodeGen/MicrosoftCXXABI.cpp')
-rw-r--r--clang/lib/CodeGen/MicrosoftCXXABI.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/MicrosoftCXXABI.cpp b/clang/lib/CodeGen/MicrosoftCXXABI.cpp
index a1122dc80af..81ed0505954 100644
--- a/clang/lib/CodeGen/MicrosoftCXXABI.cpp
+++ b/clang/lib/CodeGen/MicrosoftCXXABI.cpp
@@ -827,6 +827,7 @@ MicrosoftCXXABI::getRecordArgABI(const CXXRecordDecl *RD) const {
return RAA_Default;
case llvm::Triple::x86_64:
+ case llvm::Triple::aarch64:
return !canCopyArgument(RD) ? RAA_Indirect : RAA_Default;
}
OpenPOWER on IntegriCloud