Review for libpthread support

Jake Burkholder jake at
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
	stx	%l2, [%l1]
1:	jmpl	%l3, %g0
	 return %l4


>     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:
> I'm not subscribed to this list, so please keep me on the CC.
> Thanks,

More information about the freebsd-sparc64 mailing list