X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcode%2Fx86-vm.lisp;h=833460cff9f2483d6d518ada5ee25cee74772bbe;hb=a96369c72588c5457d71d6aaea35f2c450b19ef5;hp=2d683355b631f979ddd1f76d20d9ec4a68e9b1ce;hpb=bc46c8bcdd6ac8918df8ea9e9db49808e4924fcf;p=sbcl.git diff --git a/src/code/x86-vm.lisp b/src/code/x86-vm.lisp index 2d68335..833460c 100644 --- a/src/code/x86-vm.lisp +++ b/src/code/x86-vm.lisp @@ -235,6 +235,7 @@ ;;; Given a signal context, return the floating point modes word in ;;; the same format as returned by FLOATING-POINT-MODES. +#!-linux (defun context-floating-point-modes (context) ;; FIXME: As of sbcl-0.6.7 and the big rewrite of signal handling for ;; POSIXness and (at the Lisp level) opaque signal contexts, @@ -255,6 +256,11 @@ (logior (ash (logand sw #xffff) 16) (logxor (logand cw #xffff) #x3f))) 0) + +#!+linux +(define-alien-routine ("os_context_fp_control" context-floating-point-modes) + (sb!alien:unsigned 32) + (context (* os-context-t))) ;;;; INTERNAL-ERROR-ARGS @@ -279,7 +285,7 @@ vector (* n-word-bits vector-data-offset) (* length n-byte-bits)) (let* ((index 0) - (error-number (sb!c::read-var-integer vector index))) + (error-number (sb!c:read-var-integer vector index))) (/hexstr error-number) (collect ((sc-offsets)) (loop @@ -287,7 +293,7 @@ (/hexstr index) (when (>= index length) (return)) - (let ((sc-offset (sb!c::read-var-integer vector index))) + (let ((sc-offset (sb!c:read-var-integer vector index))) (/show0 "SC-OFFSET=..") (/hexstr sc-offset) (sc-offsets sc-offset)))