X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fx86-vm.lisp;h=434f345e49a1ba11a3400134e3819b457c8bd34f;hb=8479d3ade615e93a48757da061807223a6a902d2;hp=789efa0bf9cb66f7dd08cde5f379fc846fd2994d;hpb=f35f14479a64dd97f93d2d91dc154bdc141d6842;p=sbcl.git diff --git a/src/code/x86-vm.lisp b/src/code/x86-vm.lisp index 789efa0..434f345 100644 --- a/src/code/x86-vm.lisp +++ b/src/code/x86-vm.lisp @@ -203,18 +203,21 @@ ;;;; and internal error handling) the extra runtime cost should be ;;;; negligible. +(declaim (inline context-pc-addr)) (define-alien-routine ("os_context_pc_addr" context-pc-addr) (* unsigned-int) ;; (Note: Just as in CONTEXT-REGISTER-ADDR, we intentionally use an ;; 'unsigned *' interpretation for the 32-bit word passed to us by ;; the C code, even though the C code may think it's an 'int *'.) (context (* os-context-t))) +(declaim (inline context-pc)) (defun context-pc (context) (declare (type (alien (* os-context-t)) context)) (let ((addr (context-pc-addr context))) (declare (type (alien (* unsigned-int)) addr)) (int-sap (deref addr)))) +(declaim (inline context-register-addr)) (define-alien-routine ("os_context_register_addr" context-register-addr) (* unsigned-int) ;; (Note the mismatch here between the 'int *' value that the C code @@ -226,6 +229,7 @@ (context (* os-context-t)) (index int)) +(declaim (inline context-register)) (defun context-register (context index) (declare (type (alien (* os-context-t)) context)) (let ((addr (context-register-addr context index)))