Review for libpthread support
Jake Burkholder
jake at locore.ca
Sun Oct 5 10:16:09 PDT 2003
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,
More information about the freebsd-sparc64
mailing list