0.pre7.38:
[sbcl.git] / src / code / x86-vm.lisp
index 73cb5eb..353e1d8 100644 (file)
 
 (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))