Update of /cvsroot/sbcl/sbcl/src/runtime
In directory usw-pr-cvs1:/tmp/cvs-serv3102/src/runtime
Modified Files:
sparc-arch.c sparc-sunos-os.c
Log Message:
0.7.4.40:
SPARC floating point fixes
... write a C function to get at the floating point state register
and use it for context-floating-point-modes (SunOS)
... attempt to do the same for SPARC/Linux, then realise that
the current state was more broken than I thought, so
wrote a BUG instead
Portability fix to binary-distribution.sh
Index: sparc-arch.c
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/runtime/sparc-arch.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- sparc-arch.c 7 May 2002 19:04:49 -0000 1.4
+++ sparc-arch.c 20 Jun 2002 11:23:48 -0000 1.5
@@ -23,7 +23,7 @@
#include "breakpoint.h"
#include "monitor.h"
-#ifdef linux
+#ifdef LISP_FEATURE_LINUX
extern int early_kernel;
#endif
@@ -188,7 +188,7 @@
sigprocmask(SIG_SETMASK, os_context_sigmask_addr(context), 0);
if ((siginfo->si_code) == ILL_ILLOPC
-#ifdef linux
+#ifdef LISP_FEATURE_LINUX
|| (early_kernel && (siginfo->si_code == 2))
#endif
) {
@@ -237,7 +237,7 @@
}
}
else if ((siginfo->si_code) == ILL_ILLTRP
-#ifdef linux
+#ifdef LISP_FEATURE_LINUX
|| (early_kernel && (siginfo->si_code) == 192)
#endif
) {
Index: sparc-sunos-os.c
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/runtime/sparc-sunos-os.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- sparc-sunos-os.c 7 May 2002 19:04:49 -0000 1.2
+++ sparc-sunos-os.c 20 Jun 2002 11:23:48 -0000 1.3
@@ -77,6 +77,12 @@
return &(context->uc_sigmask);
}
+unsigned long
+os_context_fp_control(os_context_t *context)
+{
+ return (context->uc_mcontext.fpregs.fpu_fsr);
+}
+
void os_flush_icache(os_vm_address_t address, os_vm_size_t length)
{
/* see sparc-assem.S */
|