summaryrefslogtreecommitdiffstats
path: root/lang/sbcl/files/patch-floating-point
diff options
context:
space:
mode:
Diffstat (limited to 'lang/sbcl/files/patch-floating-point')
-rw-r--r--lang/sbcl/files/patch-floating-point144
1 files changed, 16 insertions, 128 deletions
diff --git a/lang/sbcl/files/patch-floating-point b/lang/sbcl/files/patch-floating-point
index 43087e2..2202de3 100644
--- a/lang/sbcl/files/patch-floating-point
+++ b/lang/sbcl/files/patch-floating-point
@@ -4,7 +4,7 @@ RCS file: /cvsroot/sbcl/sbcl/src/code/float-trap.lisp,v
retrieving revision 1.19
diff -u -r1.19 float-trap.lisp
--- src/code/float-trap.lisp 6 Oct 2005 19:43:00 -0000 1.19
-+++ src/code/float-trap.lisp 26 Jan 2006 20:43:33 -0000
++++ src/code/float-trap.lisp 28 Jun 2006 10:34:15 -0000
@@ -153,10 +153,28 @@
`(not (zerop (logand ,(dpb (float-trap-mask traps) float-traps-byte 0)
(floating-point-modes)))))
@@ -38,11 +38,11 @@ diff -u -r1.19 float-trap.lisp
Index: src/code/target-signal.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/code/target-signal.lisp,v
-retrieving revision 1.33
-diff -u -r1.33 target-signal.lisp
---- src/code/target-signal.lisp 17 Oct 2005 09:18:47 -0000 1.33
-+++ src/code/target-signal.lisp 26 Jan 2006 20:43:33 -0000
-@@ -164,6 +164,10 @@
+retrieving revision 1.34
+diff -u -r1.34 target-signal.lisp
+--- src/code/target-signal.lisp 10 Apr 2006 16:08:45 -0000 1.34
++++ src/code/target-signal.lisp 28 Jun 2006 10:34:15 -0000
+@@ -163,6 +163,10 @@
;;;; etc.
@@ -56,47 +56,11 @@ diff -u -r1.33 target-signal.lisp
Index: src/runtime/interrupt.c
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/runtime/interrupt.c,v
-retrieving revision 1.109
-diff -u -r1.109 interrupt.c
---- src/runtime/interrupt.c 5 Jan 2006 14:13:14 -0000 1.109
-+++ src/runtime/interrupt.c 26 Jan 2006 20:43:33 -0000
-@@ -454,7 +454,7 @@
- check_interrupts_enabled_or_lose(context);
- #endif
-
--#ifdef LISP_FEATURE_LINUX
-+#if defined(LISP_FEATURE_LINUX) || defined(__FreeBSD__)
- /* Under Linux on some architectures, we appear to have to restore
- the FPU control word from the context, as after the signal is
- delivered we appear to have a null FPU control word. */
-@@ -644,7 +644,7 @@
- os_context_t *context = arch_os_get_context(&void_context);
- struct thread *thread=arch_os_get_current_thread();
- struct interrupt_data *data=thread->interrupt_data;
--#ifdef LISP_FEATURE_LINUX
-+#if defined(LISP_FEATURE_LINUX) || defined(__FreeBSD__)
- os_restore_fp_control(context);
- #endif
- if(maybe_defer_handler(interrupt_handle_now,data,signal,info,context))
-@@ -661,7 +661,7 @@
- {
- os_context_t *context = (os_context_t*)void_context;
-
--#ifdef LISP_FEATURE_LINUX
-+#if defined(LISP_FEATURE_LINUX) || defined(__FreeBSD__)
- os_restore_fp_control(context);
- #endif
- check_blockables_blocked_or_lose();
-@@ -679,7 +679,7 @@
- os_context_t *context = arch_os_get_context(&void_context);
- struct thread *thread=arch_os_get_current_thread();
- struct interrupt_data *data=thread->interrupt_data;
--#ifdef LISP_FEATURE_LINUX
-+#if defined(LISP_FEATURE_LINUX) || defined(__FreeBSD__)
- os_restore_fp_control(context);
- #endif
- if(maybe_defer_handler(low_level_interrupt_handle_now,data,
-@@ -1276,3 +1276,9 @@
+retrieving revision 1.113
+diff -u -r1.113 interrupt.c
+--- src/runtime/interrupt.c 7 Jun 2006 16:25:10 -0000 1.113
++++ src/runtime/interrupt.c 28 Jun 2006 10:34:15 -0000
+@@ -1376,3 +1376,9 @@
SHOW("returning from interrupt_init()");
#endif
}
@@ -106,90 +70,14 @@ diff -u -r1.109 interrupt.c
+{
+ return info->si_code;
+}
-Index: src/runtime/x86-arch.c
-===================================================================
-RCS file: /cvsroot/sbcl/sbcl/src/runtime/x86-arch.c,v
-retrieving revision 1.36
-diff -u -r1.36 x86-arch.c
---- src/runtime/x86-arch.c 3 Jan 2006 09:52:38 -0000 1.36
-+++ src/runtime/x86-arch.c 26 Jan 2006 20:43:33 -0000
-@@ -248,7 +248,7 @@
- single-stepping (as far as I can tell) this is somewhat moot,
- but it might be worth either moving this code up or deleting
- the single-stepping code entirely. -- CSR, 2002-07-15 */
--#ifdef LISP_FEATURE_LINUX
-+#if defined(LISP_FEATURE_LINUX) || defined(__FreeBSD__)
- os_restore_fp_control(context);
- #endif
-
-Index: src/runtime/x86-bsd-os.c
-===================================================================
-RCS file: /cvsroot/sbcl/sbcl/src/runtime/x86-bsd-os.c,v
-retrieving revision 1.7
-diff -u -r1.7 x86-bsd-os.c
---- src/runtime/x86-bsd-os.c 14 Jul 2005 15:41:21 -0000 1.7
-+++ src/runtime/x86-bsd-os.c 26 Jan 2006 20:43:33 -0000
-@@ -85,6 +85,52 @@
- #endif /* __NetBSD__ */
-
-
-+#ifdef __FreeBSD__
-+#if __FreeBSD_version >= 500000
-+/*
-+ * FreeBSD 5.0 or later initializes FPU control word for signal
-+ * handler.
-+ */
-+#include <machine/npx.h>
-+
-+static __inline__ void
-+fldcw(unsigned short cw)
-+{
-+ __asm__ __volatile__ ("fldcw %0" : : "m" (cw));
-+}
-+
-+void
-+os_restore_fp_control(os_context_t *context)
-+{
-+ union savefpu *addr;
-+
-+ addr = (union savefpu *)context->uc_mcontext.mc_fpstate;
-+ switch (context->uc_mcontext.mc_fpformat) {
-+ case _MC_FPFMT_387:
-+ /* FPU state is saved by fnsave */
-+ fldcw((unsigned short)addr->sv_87.sv_env.en_cw);
-+ break;
-+ case _MC_FPFMT_XMM:
-+ /* FPU/SSE state is saved by fxsave */
-+ fldcw(addr->sv_xmm.sv_env.en_cw);
-+ break;
-+ default:
-+ /* No FPU state is saved. */
-+ break;
-+ }
-+}
-+#else /* __FreeBSD_version < 500000 */
-+/*
-+ * FreeBSD befoer 5.0 does not touch FPU control word for signal
-+ * handler.
-+ */
-+void
-+os_restore_fp_control(os_context_t *context)
-+{
-+ /* DO NOTHING */
-+}
-+#endif /* __FreeBSD_version */
-+#endif /* __FreeBSD__ */
-
- /* FIXME: If this can be a no-op on BSD/x86, then it
- * deserves a more precise name.
Index: tools-for-build/grovel-headers.c
===================================================================
RCS file: /cvsroot/sbcl/sbcl/tools-for-build/grovel-headers.c,v
-retrieving revision 1.12
-diff -u -r1.12 grovel-headers.c
---- tools-for-build/grovel-headers.c 16 Jan 2006 15:39:58 -0000 1.12
-+++ tools-for-build/grovel-headers.c 26 Jan 2006 20:43:33 -0000
-@@ -234,6 +234,16 @@
+retrieving revision 1.15
+diff -u -r1.15 grovel-headers.c
+--- tools-for-build/grovel-headers.c 18 Jun 2006 23:47:58 -0000 1.15
++++ tools-for-build/grovel-headers.c 28 Jun 2006 10:34:15 -0000
+@@ -338,6 +338,16 @@
defsignal("sigxcpu", SIGXCPU);
defsignal("sigxfsz", SIGXFSZ);
#endif
OpenPOWER on IntegriCloud