X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fppc-vm.lisp;h=278fb828ace0ba2dbaa9b6625621fc955c11ff9b;hb=422b88abf96f4842a3d0999cd3b80d96f5a153d6;hp=ee2eaa36b5b93e42354868112a0cf18c25d9a358;hpb=cab2c71bb1bb8a575d9eebdae335e731daa64183;p=sbcl.git diff --git a/src/code/ppc-vm.lisp b/src/code/ppc-vm.lisp index ee2eaa3..278fb82 100644 --- a/src/code/ppc-vm.lisp +++ b/src/code/ppc-vm.lisp @@ -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. @@ -162,30 +158,4 @@ (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) - - - -;;; SANCTIFY-FOR-EXECUTION -- Interface. -;;; -;;; Do whatever is necessary to make the given code component executable. -;;; On the 601, we have less to do than on some other PowerPC chips. -;;; This should what needs to be done in the general case. -;;; -(defun sanctify-for-execution (component) - (without-gcing - (alien-funcall (extern-alien "ppc_flush_icache" - (function void - system-area-pointer - unsigned-long)) - (code-instructions component) - (* (code-header-ref component code-code-size-slot) - n-word-bytes))) - nil)