mips ptrace.S fix

Neelkanth Natu neelnatu at yahoo.com
Thu Feb 4 05:52:23 UTC 2010


Hi,

I have committed JC's original patch to restore the 'gp' register
after the 'jalr'.

http://svn.freebsd.org/viewvc/base?view=revision&revision=203475

Sorry about the churn.

best
Neel

--- On Wed, 2/3/10, Neelkanth Natu <neelnatu at yahoo.com> wrote:

> From: Neelkanth Natu <neelnatu at yahoo.com>
> Subject: Re: mips ptrace.S fix
> To: "C. Jayachandran" <c.jayachandran at gmail.com>
> Cc: "Rui Paulo" <rpaulo at freebsd.org>, freebsd-mips at freebsd.org
> Date: Wednesday, February 3, 2010, 6:56 PM
> Hi JC,
> 
> --- On Wed, 2/3/10, C. Jayachandran <c.jayachandran at gmail.com>
> wrote:
> 
> > From: C. Jayachandran <c.jayachandran at gmail.com>
> > Subject: Re: mips ptrace.S fix
> > To: "Neelkanth Natu" <neelnatu at yahoo.com>
> > Cc: "Rui Paulo" <rpaulo at freebsd.org>,
> freebsd-mips at freebsd.org
> > Date: Wednesday, February 3, 2010, 6:09 PM
> > On Thu, Feb 4, 2010 at 1:01 AM,
> > Neelkanth Natu <neelnatu at yahoo.com>
> > wrote:
> > > Your patch looks good. I have a few comments
> though.
> > See inline:
> > >
> > > Index: lib/libc/mips/sys/ptrace.S
> > >
> >
> ===================================================================
> > > --- lib/libc/mips/sys/ptrace.S  (revision
> 203379)
> > > +++ lib/libc/mips/sys/ptrace.S  (working
> copy)
> > > @@ -42,14 +42,26 @@
> > >  #endif /* LIBC_SCCS and not lint */
> > >
> > >  LEAF(ptrace)
> > > +       .frame 
> sp,40,ra
> > >
> > >>> space missing after the ','
> > >
> > > +   
>    .mask   0x80000000, -8
> > >  #ifdef __ABICALLS__
> > >        .set   
> noreorder
> > >        .cpload t9
> > >        .set   
> reorder
> > >  #endif
> > > +       subu 
>   sp, sp, 40
> > > +       sw   
>   ra,  32(sp)
> > > +#ifdef __ABICALLS__
> > > +       .cprestore 16
> > > +#endif
> > >        la     
> t9, _C_LABEL(__error)   #
> > locate address of errno
> > > -       jalr 
>   t9
> > > +       jalr 
>   t9
> > >
> > >>> this change is not required - the newly
> added
> > line has a tab at the end.
> > >
> > > +#ifdef __ABICALLS__
> > > +       lw   
>   gp, 16(sp)
> > > +#endif
> > >
> > >>> this is redundant - the assembler will
> > generate exactly the same line of
> > >>> code due to the .cprestore directive
> above.
> > 
> > Are you sure about this?  I think the assembler
> > generates the gp load
> > only for the 'jal' and 'bal' not for 'jalr'.
> > 
> > Probably the two lines(la and jalr) can be replaced by
> a
> > jal.
> > 
> 
> You are right. My eyes glossed over between the 'jal' and
> 'jalr'. I think
> combining the two instructions into a single 'jal' is the
> way to go.
> 
> best
> Neel
> 
> > Regards,
> > JC.
> > 
> 
> 
>       
> 


      


More information about the freebsd-mips mailing list