Date: Sun, 5 Oct 2003 13:19:29 -0400 From: Jake Burkholder <jake@locore.ca> To: deischen@freebsd.org Cc: sparc64@freebsd.org Subject: Re: Review for libpthread support Message-ID: <200310051319.29901.jake@locore.ca> In-Reply-To: <Pine.GSO.4.10.10310051209230.13906-100000@pcnet5.pcnet.com> References: <Pine.GSO.4.10.10310051209230.13906-100000@pcnet5.pcnet.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sunday 05 October 2003 12:21, Daniel Eischen wrote: > Hi guys, > > I have a patch for adding libpthread support for sparc64. It's jake's > patch, with a few mods by myself. I'd like for some folks to look it > over. I haven't tested it; I need a couple of questions answered > first so I can fill in a missing piece. > > o Can someone look at the end of __thr_getcontext (line 524 of > the patch)? I need to test %i2 for NULL and branch to 1 if true. > > +/* bz %i2, 1f */ > + stx %i1, [%i2] > +1: ldx [%sp], %i1 /* restore %i1 */ > + ldx [%sp + 8], %i2 /* restore %i2 */ brz. Beware of delay slots, the instruction after a branch is executed before the branch is taken. Use the locals as temporaries instead of using the stack, eg mov %i0, %l0 mov %i1, %l1 mov %i2, %l2 ... ldx [%l0 + MC_TPC], %l4 ldx [%l0 + MC_TNPC], %l3 brz %l1, 1f nop stx %l2, [%l1] 1: jmpl %l3, %g0 return %l4 Jake > > What's the magic instruction I should use? > > o Can someone look over the context saving/restoring in general? > I have a feeling there should be more to __thr_getcontext than > there is. > > The patch is at: > > http://people.freebsd.org/~deischen/kse/libpthread_sparc64.diffs > > I'm not subscribed to this list, so please keep me on the CC. > > Thanks,
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200310051319.29901.jake>