This is the mail archive of the
mailing list for the GCC project.
Re: Static Chain Register on iOS AArch64
- From: Richard Earnshaw <Richard dot Earnshaw at foss dot arm dot com>
- To: Richard Henderson <rth at redhat dot com>, Stephen Cross <scross at scross dot co dot uk>, gcc at gcc dot gnu dot org
- Date: Mon, 08 Jun 2015 18:00:00 +0100
- Subject: Re: Static Chain Register on iOS AArch64
- Authentication-results: sourceware.org; auth=none
- References: <CADC9Eqps-Y5=7jBMsuGO7wd-U7QH2M4NUUZmGgZ89p5X5D_jjQ at mail dot gmail dot com> <55702B1F dot 9040707 at foss dot arm dot com> <5571C66A dot 3060100 at redhat dot com> <5572F4A7 dot 7040908 at foss dot arm dot com> <5575C9A6 dot 3030706 at redhat dot com>
On 08/06/15 17:58, Richard Henderson wrote:
> On 06/06/2015 06:24 AM, Richard Earnshaw wrote:
>> That's going to make it impossible to implement Go closures on AArch32,
>> then, since the only call-clobbered register not used for parameter
>> passing is r12 (ip) and that can be clobbered by function calls.
> No, because r12 is only clobbered by plt stubs, and go closures never
> use them. They're *already working* on aarch32.
r12 can *also* be clobbered by interworking calls or calls that span
more than the branch range of a call instruction. Rare, but possible.