[llvm] r222903 - AArch64: treat [N x Ty] as a block during procedure calls.
Oliver Stannard
oliver.stannard at arm.com
Wed Dec 3 02:38:29 PST 2014
Hi Tim,
Unfortunately this is still not quite right for big-endian, for example:
struct D4 { double x[4]; };
struct F1 { float y; };
float foo(struct D4 a, struct D4 b, struct F1 c) { return c.y; }
`b’ should be passed in [sp,sp+4) (AAPCS64 rule C.13), but it is instead incorrectly passed in [sp+4,sp+8).
Oliver
From: llvm-commits-bounces at cs.uiuc.edu [mailto:llvm-commits-bounces at cs.uiuc.edu] On Behalf Of Kevin Qin
Sent: 03 December 2014 01:18
To: Tim Northover
Cc: llvm-commits
Subject: Re: [llvm] r222903 - AArch64: treat [N x Ty] as a block during procedure calls.
Hi Tim,
I see our aapcs64 test can pass now. Thanks for your fixing.
Cheers,
Kevin
2014-12-03 1:16 GMT+08:00 Tim Northover <t.p.northover at gmail.com>:
Hi Kevin,
On 1 December 2014 at 21:45, Kevin Qin <kevinqindev at gmail.com> wrote:
> We found that this commit broke the parameter passing rules C.10 - C.11 in
> AAPCS64.
Sorry about that (perils of copy/paste I think). It should be fixed in r223126.
Tim.
--
Best Regards,
Kevin Qin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141203/58d637ad/attachment.html>
More information about the llvm-commits
mailing list