From owner-p4-projects@FreeBSD.ORG Thu May 29 14:52:44 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1EE3B37B404; Thu, 29 May 2003 14:52:44 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id DE41137B401 for ; Thu, 29 May 2003 14:52:43 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6855D43FD7 for ; Thu, 29 May 2003 14:52:43 -0700 (PDT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h4TLqh0U064500 for ; Thu, 29 May 2003 14:52:43 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4TLqglP064497 for perforce@freebsd.org; Thu, 29 May 2003 14:52:42 -0700 (PDT) Date: Thu, 29 May 2003 14:52:42 -0700 (PDT) Message-Id: <200305292152.h4TLqglP064497@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Subject: PERFORCE change 32056 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 May 2003 21:52:45 -0000 http://perforce.freebsd.org/chv.cgi?CH=32056 Change 32056 by peter@peter_hammer on 2003/05/29 14:52:32 initial attempt. compiles, but is broken. Affected files ... .. //depot/projects/hammer/lib/libc_r/uthread/pthread_private.h#7 edit .. //depot/projects/hammer/lib/libc_r/uthread/uthread_kern.c#6 edit .. //depot/projects/hammer/lib/libc_r/uthread/uthread_sig.c#5 edit Differences ... ==== //depot/projects/hammer/lib/libc_r/uthread/pthread_private.h#7 (text+ko) ==== @@ -87,6 +87,18 @@ __asm__("frstor %0": :"m"(*fdata)); \ } while (0) #define SET_RETURN_ADDR_JB(jb, ra) (jb)[0]._jb[0] = (int)(ra) +#elif defined(__amd64__) +#define GET_STACK_JB(jb) ((unsigned long)((jb)[0]._jb[2])) +#define GET_STACK_SJB(sjb) ((unsigned long)((sjb)[0]._sjb[2])) +#define GET_STACK_UC(ucp) ((unsigned long)((ucp)->uc_mcontext.mc_rsp)) +#define SET_STACK_JB(jb, stk) (jb)[0]._jb[2] = (long)(stk) +#define SET_STACK_SJB(sjb, stk) (sjb)[0]._sjb[2] = (long)(stk) +#define SET_STACK_UC(ucp, stk) (ucp)->uc_mcontext.mc_rsp = (long)(stk) +#define FP_SAVE_UC(ucp) do { \ +} while (0) +#define FP_RESTORE_UC(ucp) do { \ +} while (0) +#define SET_RETURN_ADDR_JB(jb, ra) (jb)[0]._jb[0] = (long)(ra) #elif defined(__alpha__) #include #define GET_STACK_JB(jb) ((unsigned long)((jb)[0]._jb[R_SP + 4])) ==== //depot/projects/hammer/lib/libc_r/uthread/uthread_kern.c#6 (text+ko) ==== @@ -51,7 +51,7 @@ #include #include "pthread_private.h" -/* #define DEBUG_THREAD_KERN */ +#define DEBUG_THREAD_KERN #ifdef DEBUG_THREAD_KERN #define DBG_MSG stdout_debug #else ==== //depot/projects/hammer/lib/libc_r/uthread/uthread_sig.c#5 (text+ko) ==== @@ -1043,7 +1043,7 @@ /* Get the top of the threads stack: */ stackp = GET_STACK_JB(thread->ctx.jb); -#if !defined(__ia64__) +#if !defined(__ia64__) && !defined(__amd64__) /* * Leave a little space on the stack and round down to the * nearest aligned word: @@ -1056,6 +1056,8 @@ stackp -= sizeof(struct pthread_signal_frame); #if defined(__ia64__) stackp &= ~0xFUL; +#elif defined(__amd64__) + stackp -= 128; #endif psf = (struct pthread_signal_frame *) stackp; @@ -1085,7 +1087,7 @@ /* * Set up the context: */ -#if !defined(__ia64__) +#if !defined(__ia64__) && !defined(__amd64__) stackp -= sizeof(double); #endif _setjmp(thread->ctx.jb);