From 3aefe09423b8d7573ff4374120bc4d738f5897f5 Mon Sep 17 00:00:00 2001 From: Peter Wemm Date: Mon, 2 Jun 2003 22:22:52 +0000 Subject: [PATCH] Port libc_r to amd64, and turn it back on for amd64. It passes all of the same src/lib/libc_r/test/* tests that the other platforms pass. --- lib/Makefile | 3 ++- lib/libc_r/uthread/pthread_private.h | 18 ++++++++++++++++++ usr.sbin/Makefile | 2 +- 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/lib/Makefile b/lib/Makefile index 556e3e6c04d..6fba6a0df05 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -42,10 +42,11 @@ _csu=csu .if ${MACHINE_ARCH} != "amd64" _libstand= libstand +.endif + .if !defined(NOLIBC_R) _libc_r= libc_r .endif -.endif .if !defined(NO_BIND) _libbind= libbind diff --git a/lib/libc_r/uthread/pthread_private.h b/lib/libc_r/uthread/pthread_private.h index 143772d1ac7..5569b201400 100644 --- a/lib/libc_r/uthread/pthread_private.h +++ b/lib/libc_r/uthread/pthread_private.h @@ -87,6 +87,24 @@ __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 { \ + char *fdata; \ + fdata = (char *) (ucp)->uc_mcontext.mc_fpstate; \ + __asm__("fxsave %0": :"m"(*fdata)); \ +} while (0) +#define FP_RESTORE_UC(ucp) do { \ + char *fdata; \ + fdata = (char *) (ucp)->uc_mcontext.mc_fpstate; \ + __asm__("fxrstor %0": :"m"(*fdata)); \ +} 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])) diff --git a/usr.sbin/Makefile b/usr.sbin/Makefile index 5d151f4f582..163813a6dc4 100644 --- a/usr.sbin/Makefile +++ b/usr.sbin/Makefile @@ -141,7 +141,7 @@ SUBDIR+=ipftest \ iptest .endif -.if !defined(NOLIBC_R) && ${MACHINE_ARCH} != "amd64" +.if !defined(NOLIBC_R) SUBDIR+=pppctl .endif