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: Sat, 06 Jun 2015 14:24:55 +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>
On 05/06/15 16:55, Richard Henderson wrote:
> On 06/04/2015 03:40 AM, Richard Earnshaw wrote:
>> The static chain register is pretty much private to a translation unit...
> That was true when the static chain was restricted to trampolines.
> Since Go has started using it for cross-translation-unit closures, that
> makes it part of the ABI.
> I did raise this issue at the start of the year, when I submitted the
> patches. At the time, folks seemed ok with the additional restriction.
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.