[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