Robert Swindells pushed to branch master at cmucl / cmucl
Commits: b163b8a4 by Robert Swindells at 2012-02-22T22:54:26+00:00 Switch to variable stack sizes for NetBSD.
- - - - - 97b18c97 by Robert Swindells at 2012-02-22T22:56:34+00:00 Merge branch 'master' of ssh://common-lisp.net/var/git/projects/cmucl/cmucl
- - - - - 5b3bf800 by Robert Swindells at 2013-10-06T07:55:10+01:00 Merge branch 'master' of ssh://common-lisp.net/var/git/projects/cmucl/cmucl
- - - - - 1db1d735 by Robert Swindells at 2014-08-04T12:39:44+01:00 Merge branch 'master' of ssh://common-lisp.net/var/git/projects/cmucl/cmucl
- - - - - 7e594c78 by Robert Swindells at 2014-09-07T22:18:28+01:00 Merge branch 'master' of ssh://common-lisp.net/var/git/projects/cmucl/cmucl
- - - - - 42a8ace0 by Robert Swindells at 2015-05-10T00:26:34+01:00 Merge branch 'master' of ssh://common-lisp.net/cmucl/cmucl
- - - - - 6af62766 by Robert Swindells at 2015-09-19T14:09:03+01:00 Merge branch 'master' of ssh://common-lisp.net/cmucl/cmucl
- - - - - a8088cf5 by Robert Swindells at 2015-10-06T21:30:02+01:00 Merge branch 'master' of ssh://common-lisp.net/cmucl/cmucl
- - - - - 357d4fbc by Robert Swindells at 2015-12-27T20:27:09+00:00 Merge branch 'master' of ssh://common-lisp.net/cmucl/cmucl
- - - - - f09f967b by Robert Swindells at 2015-12-31T18:08:48+00:00 Merge branch 'master' of ssh://common-lisp.net/cmucl/cmucl
- - - - - 9ed4d527 by Robert Swindells at 2016-01-03T18:27:15+00:00 Set size of sysctl value.
- - - - - 7474c805 by Robert Swindells at 2016-01-03T18:29:02+00:00 Merge branch 'master' of ssh://common-lisp.net/cmucl/cmucl
- - - - - a14f5fe1 by Robert Swindells at 2016-05-10T07:28:15+01:00 Merge branch 'master' of ssh://common-lisp.net/cmucl/cmucl
- - - - - a6bfb424 by Robert Swindells at 2016-06-11T14:23:13+01:00 Merge branch 'master' of ssh://common-lisp.net/cmucl/cmucl
- - - - - a813d59a by Robert Swindells at 2016-09-07T01:13:19+01:00 Merge branch 'master' of ssh://common-lisp.net/cmucl/cmucl
- - - - - ccb0f031 by Robert Swindells at 2016-10-01T18:58:59+01:00 Merge branch 'master' of ssh://common-lisp.net/cmucl/cmucl
- - - - - 5fd0e4ed by Robert Swindells at 2016-10-01T19:45:50+01:00 Revert change, wrong branch.
- - - - - 19b642fb by Robert Swindells at 2016-10-01T19:47:47+01:00 Set size of sysctl(3) argument.
- - - - - b3a49942 by Robert Swindells at 2016-10-01T19:49:20+01:00 Update to NetBSD-7 mcontext API.
- - - - - 241dccfc by Robert Swindells at 2016-10-08T23:23:00+01:00 Add description of changes for NetBSD.
- - - - - 74711909 by Robert Swindells at 2016-10-08T23:24:05+01:00 Merge branch 'master' of ssh://common-lisp.net/cmucl/cmucl
- - - - -
2 changed files:
- src/general-info/release-21b.txt - src/lisp/NetBSD-os.c
Changes:
===================================== src/general-info/release-21b.txt ===================================== --- a/src/general-info/release-21b.txt +++ b/src/general-info/release-21b.txt @@ -57,6 +57,7 @@ New in this release: control stack are now mapped into memory wherever the OS wishes to place them instead of being mapped into a fixed location. This is indicated by new feature :relocatable-stacks. + * Building on NetBSD now requires version 7.0 or later.
* ANSI compliance fixes: * PATHNAME-MATCH-P did not accept search-lists.
===================================== src/lisp/NetBSD-os.c ===================================== --- a/src/lisp/NetBSD-os.c +++ b/src/lisp/NetBSD-os.c @@ -27,6 +27,8 @@ #include <sys/sysctl.h> #include <errno.h>
+#include <x86/fpu.h> + #include "os.h" #include "arch.h" #include "globals.h" @@ -133,19 +135,19 @@ os_sigcontext_fpu_modes(ucontext_t *scp) { unsigned int modes;
- union savefpu *sv = (union savefpu *) &scp->uc_mcontext.__fpregs.__fp_reg_set; - struct env87 *env_87 = (struct env87 *) &sv->sv_87.sv_env; - struct envxmm *env_xmm = (struct envxmm *) &sv->sv_xmm.sv_env; + union savefpu *sv = &scp->uc_mcontext.__fpregs.__fp_reg_set; + struct save87 *env_87 = (struct save87 *) &sv->sv_87; + struct fxsave *env_xmm = (struct fxsave *) &sv->sv_xmm; u_int16_t cw; u_int16_t sw;
if (scp->uc_flags & _UC_FPU) { if (scp->uc_flags & _UC_FXSAVE) { - cw = env_xmm->en_cw; - sw = env_xmm->en_sw; + cw = env_xmm->fx_cw; + sw = env_xmm->fx_sw; } else { - cw = env_87->en_cw & 0xffff; - sw = env_87->en_sw & 0xffff; + cw = env_87->s87_cw & 0xffff; + sw = env_87->s87_sw & 0xffff; } } else { cw = 0; @@ -156,7 +158,7 @@ os_sigcontext_fpu_modes(ucontext_t *scp)
#ifdef FEATURE_SSE2 if (fpu_mode == SSE2) { - u_int32_t mxcsr = env_xmm->en_mxcsr; + u_int32_t mxcsr = env_xmm->fx_mxcsr;
DPRINTF(0, (stderr, "SSE2 modes = %08x\n", (int)mxcsr)); modes |= mxcsr; @@ -347,9 +349,9 @@ sigfpe_handler(HANDLER_ARGS) }
if (ucontext->uc_flags & _UC_FXSAVE) { - sv->sv_xmm.sv_env.en_sw |= trap; + sv->sv_xmm.fx_sw |= trap; } else { - sv->sv_87.sv_env.en_sw |= trap; + sv->sv_87.s87_sw |= trap; } interrupt_handle_now(signal, code, context); } @@ -385,16 +387,16 @@ os_dlsym(const char *sym_name, lispobj lib_list) void restore_fpu(ucontext_t *scp) { - union savefpu *sv = (union savefpu *) &scp->uc_mcontext.__fpregs.__fp_reg_set; - struct env87 *env_87 = &sv->sv_87.sv_env; - struct envxmm *env_xmm = &sv->sv_xmm.sv_env; + union savefpu *sv = &scp->uc_mcontext.__fpregs.__fp_reg_set; + struct save87 *env_87 = (struct save87 *) &sv->sv_87; + struct fxsave *env_xmm = (struct fxsave *) &sv->sv_xmm; u_int16_t cw;
if (scp->uc_flags & _UC_FPU) { if (scp->uc_flags & _UC_FXSAVE) { - cw = env_xmm->en_cw; + cw = env_xmm->fx_cw; } else { - cw = env_87->en_cw & 0xffff; + cw = env_87->s87_cw & 0xffff; } } else { return; @@ -403,7 +405,7 @@ restore_fpu(ucontext_t *scp) __asm__ __volatile__ ("fldcw %0"::"m"(*&cw));
if (fpu_mode == SSE2) { - u_int32_t mxcsr = env_xmm->en_mxcsr; + u_int32_t mxcsr = env_xmm->fx_mxcsr;
DPRINTF(0, (stderr, "restore_fpu: mxcsr (raw) = %04x\n", mxcsr)); __asm__ __volatile__ ("ldmxcsr %0"::"m"(*&mxcsr)); @@ -417,6 +419,7 @@ os_support_sse2() int support_sse2; size_t len;
+ len = sizeof(size_t); if (sysctlbyname("machdep.sse2", &support_sse2, &len, NULL, 0) == 0 && support_sse2 != 0) return TRUE;
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/compare/b55981380a3ce59d860be724e...