[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.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D60349/new/
https://reviews.llvm.org/D60349
More information about the cfe-commits
mailing list