[PATCH] D60349: [COFF, ARM64] Fix ABI implementation of struct returns

Tom Tan via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Apr 23 21:31:05 PDT 2019

TomTan added a comment.

In D60349#1476371 <https://reviews.llvm.org/D60349#1476371>, @efriedma wrote:

> It looks like there's some missing documentation in the ARM64 ABI document involving homogeneous aggregates... in particular, it looks like non-POD types are never homogeneous, or something along those lines.  I guess we can address that in a followup, though.
> @TomTan could you look into updating the ARM64 ABI documentation?
> Testcase:
>   struct Pod {
>     double b[2];
>   };
>   struct NotAggregate {
>     NotAggregate();
>     double b[2];
>   };
>   struct NotPod {
>     NotAggregate x;
>   };
>   Pod copy(Pod *x) { return *x; }  // ldp d0,d1,[x0]
>   NotAggregate copy(NotAggregate *x) { return *x; } // stp x8,x9,[x0]
>   NotPod copy(NotPod *x) { return *x; } // ldp x0,x1,[x8]

@efriedma from your test sample above, which part is missing in the ARM64 ABI document? For `NotPod`, it is aggregate which is specific in the document.



More information about the cfe-commits mailing list