This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
Re: [patch] fix MIPS n32/64 runtime symbol resolution register saving
- From: Daniel Jacobowitz <drow at false dot org>
- To: cgd at broadcom dot com
- Cc: libc-alpha at sources dot redhat dot com
- Date: Mon, 17 May 2004 21:56:12 -0400
- Subject: Re: [patch] fix MIPS n32/64 runtime symbol resolution register saving
- References: <yov5zn89fk96.fsf@ldt-sj3-010.sj.broadcom.com>
On Sat, May 15, 2004 at 02:33:41PM -0700, cgd@broadcom.com wrote:
> The set of registers being saved/restored during n32/64 runtime symbol
> resolution was incomplete. This would lead to args 6 and 7 to a
> dynamically-resolved function being clobbered the first time it was
> invoked.
>
> (I'm not quite sure this hasn't been noticed previously. It looks it
> might not be seen depending on compiler and binutils version, and on
> the way the compiler generates function calls. But, in any case, the
> existing register save/restore code seems fairly obviously incomplete
> since there are 8 arg registers that must not be clobbered by the
> symbol resolution code.)
I've been using an identical patch for a while. Sorry for not getting
around to submitting it.
> 2004-05-15 Chris Demetriou <cgd@broadcom.com>
>
> * sysdeps/mips/dl-machine.h (ELF_DL_FRAME_SIZE)
> (ELF_DL_SAVE_ARG_REGS, ELF_DL_RESTORE_ARG_REGS): For the N32
> and 64 ABIs, save and restore regs $10 and $11 (a6 and a7).
--
Daniel Jacobowitz