[prev in list] [next in list] [prev in thread] [next in thread] 

List:       cfe-commits
Subject:    Re: [cfe-commits] [llvm-commits] Fix bug 11753 - Incorrect code generated for 64bit types on ARM
From:       "Weiming Zhao" <weimingz () codeaurora ! org>
Date:       2012-03-30 20:01:01
Message-ID: 000801cd0eaf$d4a41080$7dec3180$ () codeaurora ! org
[Download RAW message or body]

Hi Sandeep,

I can't find the spec for aps-gnu. But my tests show that, in term of
passing i64, it requires an aligned register pair, which is the same
requirement in aapcs. =

This why I mentions the aapcs spec. =


Thanks,
Weiming


-----Original Message-----
From: Sandeep Patel [mailto:deeppatel1987@gmail.com]
Sent: Thursday, March 29, 2012 6:17 PM
To: Weiming Zhao
Cc: "'cfe-commits@cs.uiuc.edu.'"@pps04.cites.illinois.edu;
llvm-commits@cs.uiuc.edu
Subject: Re: [llvm-commits] Fix bug 11753 - Incorrect code generated for
64bit types on ARM

You're testing apcs-gnu, but referring to the aapcs spec.

i64 parameter alignment should already be handled by the CCIfAlign<> parts
of ARMCallingConv.td in the backend for AAPCS.

deep

On Thu, Mar 29, 2012 at 9:22 PM, Weiming Zhao <weimingz@codeaurora.org>
wrote:
> Hello,
>
>
>
> This is a bug fix for Clang. It fixes bug 11753 - Incorrect code =

> generated for 64bit types on ARM.
>
>
>
> ARM calling convention requires a double-word sized type is passed in =

> two consecutive registers (r0,r1 or r2,r3). (See =

> http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042d/IHI0042D_aap
> cs.pdf
> 5.1.1.1, page 16).
>
>
>
> However, currently, for apcs-gnu ABI, such constraint has not been =

> implemented.
>
>
>
> This patch fixes this issue by padding a register if needed. This =

> solution is similar to a recent fix for MIPS.
>
>
>
> I=92m attaching my patch
> (0001-Fix-the-missed-register-padding-for-passing-long-lon.patch), a =

> new unit test case (0002-unnit-test.patch), as well as the running =

> results of unit test (unit_test_after.txt) and the test suite =

> (testsuite.report.simple.txt). =A0My patch doesn=92t cause any errors.
>
>
>
> I also uploaded the same files to the bugzilla.
>
>
>
> Please kindly review the codes.
>
>
>
> Thanks,
>
> Weiming
>
>
>
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits@cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>


_______________________________________________
cfe-commits mailing list
cfe-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic