This is the mail archive of the
libffi-discuss@sourceware.org
mailing list for the libffi project.
Re: [PATCH] Go closures for s390[x]
- From: Richard Henderson <rth at redhat dot com>
- To: libffi-discuss at sourceware dot org, Ulrich Weigand <Ulrich dot Weigand at de dot ibm dot com>, Andreas Krebbel <krebbel at linux dot vnet dot ibm dot com>
- Date: Thu, 18 Dec 2014 15:29:01 -0600
- Subject: Re: [PATCH] Go closures for s390[x]
- Authentication-results: sourceware.org; auth=none
- References: <20141216150504 dot GA10835 at linux dot vnet dot ibm dot com>
On 12/16/2014 09:05 AM, Dominik Vogt wrote:
> lm %r6,%r15,48+24(%r11)
> + .cfi_remember_state
> + .cfi_restore 15
> + .cfi_restore 14
> + .cfi_restore 13
> + .cfi_restore 12
> + .cfi_restore 11
> + .cfi_restore 10
> + .cfi_restore 9
> + .cfi_restore 8
> + .cfi_restore 7
> + .cfi_restore 6
> + .cfi_def_cfa r15, 96
> br %r4
> + .cfi_restore_state
> + # This nopr is necessary so that the .cfi instructions between the br
> + # above and the label below get executed. See execute_cfa_program() in
> + # the Gcc source code, libgcc/unwind-dw2.c.
> + nopr
I'm not really sure you need any of these restores, since the data is still on
the stack, unclobbered. I think you'd really only need to reset the cfa here.
The nopr seems like a red herring. I don't see why the < vs <= for
execute_cfa_program is relevant -- this is not following a call.
That said, I've got some followup patches to clean up more of the s390 backend
that I'll post in a moment.
r~