(:bits-63-48
(let* ((value (if (logbitp 15 value) (+ value (ash 1 16)) value))
(value (if (logbitp 31 value) (+ value (ash 1 32)) value))
(:bits-63-48
(let* ((value (if (logbitp 15 value) (+ value (ash 1 16)) value))
(value (if (logbitp 31 value) (+ value (ash 1 32)) value))
(setf (sap-ref-8 sap offset) (ldb (byte 8 0) value))
(setf (sap-ref-8 sap (1+ offset)) (ldb (byte 8 8) value)))))))
\f
(setf (sap-ref-8 sap offset) (ldb (byte 8 0) value))
(setf (sap-ref-8 sap (1+ offset)) (ldb (byte 8 8) value)))))))
\f
(context (* os-context-t)))
(defun context-pc (context)
(declare (type (alien (* os-context-t)) context))
(int-sap (deref (context-pc-addr context))))
(context (* os-context-t)))
(defun context-pc (context)
(declare (type (alien (* os-context-t)) context))
(int-sap (deref (context-pc-addr context))))
;;; (Are they used in anything time-critical, or just the debugger?)
(defun context-register (context index)
(declare (type (alien (* os-context-t)) context))
;;; (Are they used in anything time-critical, or just the debugger?)
(defun context-register (context index)
(declare (type (alien (* os-context-t)) context))
-(declare (type (alien (* os-context-t)) context))
-(setf (deref (context-register-addr context index))
- new))
+ (declare (type (alien (* os-context-t)) context))
+ (setf (deref (the (alien (* unsigned-long))
+ (context-register-addr context index)))
+ new))
;;; This is like CONTEXT-REGISTER, but returns the value of a float
;;; register. FORMAT is the type of float to return.
;;; FIXME: Whether COERCE actually knows how to make a float out of a
;;; long is another question. This stuff still needs testing.
;;; This is like CONTEXT-REGISTER, but returns the value of a float
;;; register. FORMAT is the type of float to return.
;;; FIXME: Whether COERCE actually knows how to make a float out of a
;;; long is another question. This stuff still needs testing.
(let ((pc (context-pc context)))
(declare (type system-area-pointer pc))
;; pc is a SAP pointing at - or actually, shortly after -
(let ((pc (context-pc context)))
(declare (type system-area-pointer pc))
;; pc is a SAP pointing at - or actually, shortly after -
(vector (make-array length :element-type '(unsigned-byte 8))))
(declare (type (unsigned-byte 8) length)
(type (simple-array (unsigned-byte 8) (*)) vector))
(vector (make-array length :element-type '(unsigned-byte 8))))
(declare (type (unsigned-byte 8) length)
(type (simple-array (unsigned-byte 8) (*)) vector))
- (copy-from-system-area pc (* sb!vm:byte-bits 5)
- vector (* sb!vm:word-bits
- sb!vm:vector-data-offset)
- (* length sb!vm:byte-bits))
+ (copy-from-system-area pc (* n-byte-bits 5)
+ vector (* n-word-bits vector-data-offset)
+ (* length n-byte-bits))
\f
;;; The loader uses this to convert alien names to the form they
;;; occure in the symbol table (for example, prepending an
\f
;;; The loader uses this to convert alien names to the form they
;;; occure in the symbol table (for example, prepending an