This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Patch for -mcaller-super-interworking & stack arguments
- From: Richard Sandiford <rsandifo at redhat dot com>
- To: Richard Earnshaw <rearnsha at gcc dot gnu dot org>
- Cc: gcc-patches <gcc-patches at gcc dot gnu dot org>, paul at codesourcery dot com
- Date: Fri, 27 Aug 2004 14:33:39 +0100
- Subject: Re: Patch for -mcaller-super-interworking & stack arguments
- References: <87isbsx07u.fsf@redhat.com><1093604695.22129.97.camel@pc960.cambridge.arm.com>
Thanks for the feedback.
Richard Earnshaw <rearnsha@gcc.gnu.org> writes:
> Sorry for not replying to this sooner, I've been pondering the situation
> 'cos I'm not 100% happy about any of this...
I'm not sure whether "this" means my patch in particular or just
-mcaller-super-interworking in general ;) If the former, I'm certainly
willing to try alternatives.
> Another approach would be to use r11 (fp) to hold the 'frame pointer' in
> the case where we didn't really need a frame (and continue to pretend
> that the function was frameless). It would mean a further function stub
> in libgcc (unless you always made it work that way) but would mean that
> we didn't loose a low register.
Good idea. Will give it a go. I won't commit my original patch
until I see how the new one works out.
Btw, as a heads-up, I was just looking into how the new patch might be
written, and I noticed what seems to be a little thinko in the recent
changes to thumb_compute_save_reg_mask():
if (flag_pic && !TARGET_SINGLE_PIC_BASE)
mask |= PIC_OFFSET_TABLE_REGNUM;
Looks like it should be "mask |= 1 << ...". I'm not really
set up to test that change myself though.
Richard