X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=inline;f=src%2Fcode%2Fppc-vm.lisp;h=801192d1ef51735954af5b98dad265f24f657e0b;hb=97e52e46f9bcb054eec35a9c326db75993441ca1;hp=c9441df86a9f03e3184c6f30d8ff18c33b8e4bdf;hpb=bc46c8bcdd6ac8918df8ea9e9db49808e4924fcf;p=sbcl.git diff --git a/src/code/ppc-vm.lisp b/src/code/ppc-vm.lisp index c9441df..801192d 100644 --- a/src/code/ppc-vm.lisp +++ b/src/code/ppc-vm.lisp @@ -20,8 +20,8 @@ -;;; FIXUP-CODE-OBJECT -- Interface -;;; +;;;; FIXUP-CODE-OBJECT + (defun fixup-code-object (code offset fixup kind) (declare (type index offset)) (unless (zerop (rem offset n-word-bytes)) @@ -97,13 +97,9 @@ ;;; Given a signal context, return the floating point modes word in ;;; the same format as returned by FLOATING-POINT-MODES. -(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, - ;; this is needs to be rewritten as an alien function. - (warn "stub CONTEXT-FLOATING-POINT-MODES") - 0) - +(define-alien-routine ("os_context_fp_control" context-floating-point-modes) + (sb!alien:unsigned 32) + (context (* os-context-t))) ;;;; INTERNAL-ERROR-ARGS. @@ -153,20 +149,13 @@ sb!vm:vector-data-offset) (* length sb!vm:n-byte-bits)) (let* ((index 0) - (error-number (sb!c::read-var-integer vector index))) + (error-number (sb!c:read-var-integer vector index))) (collect ((sc-offsets)) (loop (when (>= index length) (return)) - (sc-offsets (sb!c::read-var-integer vector index))) + (sc-offsets (sb!c:read-var-integer vector index))) (values error-number (sc-offsets)))))) - -;;; The loader uses this to convert alien names to the form they -;;; occur in the symbol table. This is ELF, so do nothing - -(defun extern-alien-name (name) - (declare (type simple-base-string name)) - name)