(defun context-pc (context)
(declare (type (alien (* os-context-t)) context))
- (int-sap (deref (context-pc-addr context))))
+ (let ((addr (context-pc-addr context)))
+ (declare (type (alien (* unsigned-int)) addr))
+ (int-sap (deref addr))))
(def-alien-routine ("os_context_register_addr" context-register-addr)
(* unsigned-int)
(context (* os-context-t))
(index int))
-;;; FIXME: Should this and CONTEXT-PC be INLINE to reduce consing?
-;;; (Are they used in anything time-critical, or just the debugger?)
(defun context-register (context index)
(declare (type (alien (* os-context-t)) context))
- (deref (context-register-addr context index)))
+ (let ((addr (context-register-addr context index)))
+ (declare (type (alien (* unsigned-int)) addr))
+ (deref addr)))
(defun %set-context-register (context index new)
-(declare (type (alien (* os-context-t)) context))
-(setf (deref (context-register-addr context index))
- new))
+ (declare (type (alien (* os-context-t)) context))
+ (let ((addr (context-register-addr context index)))
+ (declare (type (alien (* unsigned-int)) addr))
+ (setf (deref addr) new)))
;;; This is like CONTEXT-REGISTER, but returns the value of a float
;;; register. FORMAT is the type of float to return.
(/hexstr context)
(let ((pc (context-pc context)))
(declare (type system-area-pointer pc))
+ (/show0 "got PC")
;; using INT3 the pc is .. INT3 <here> code length bytes...
(let* ((length (sap-ref-8 pc 1))
(vector (make-array length :element-type '(unsigned-byte 8))))
(defvar *fp-constant-1s0*)
(defvar *fp-constant-0d0*)
(defvar *fp-constant-1d0*)
-;;; The long-float constants.
+;;; the long-float constants
(defvar *fp-constant-0l0*)
(defvar *fp-constant-1l0*)
(defvar *fp-constant-pi*)
(defvar *fp-constant-lg2*)
(defvar *fp-constant-ln2*)
-;;; The current alien stack pointer; saved/restored for non-local exits.
+;;; the current alien stack pointer; saved/restored for non-local exits
(defvar *alien-stack*)
(defun sb!kernel::%instance-set-conditional (object slot test-value new-value)
;;; Support for the MT19937 random number generator. The update
;;; function is implemented as an assembly routine. This definition is
-;;; transformed to a call to the assembly routine allowing its use in byte
-;;; compiled code.
+;;; transformed to a call to the assembly routine allowing its use in
+;;; byte compiled code.
(defun random-mt19937 (state)
(declare (type (simple-array (unsigned-byte 32) (627)) state))
(random-mt19937 state))