projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
0.8.16.2: TYPE-ERROR for ERROR
[sbcl.git]
/
src
/
code
/
ppc-vm.lisp
diff --git
a/src/code/ppc-vm.lisp
b/src/code/ppc-vm.lisp
index
a9297a6
..
8788587
100644
(file)
--- a/
src/code/ppc-vm.lisp
+++ b/
src/code/ppc-vm.lisp
@@
-2,9
+2,6
@@
;;;
(in-package "SB!VM")
;;;
(in-package "SB!VM")
-(defvar *number-of-signals* 64)
-(defvar *bits-per-word* 32)
-
(define-alien-type os-context-t (struct os-context-t-struct))
\f
(define-alien-type os-context-t (struct os-context-t-struct))
\f
@@
-89,6
+86,13
@@
(declare (type (alien (* os-context-t)) context))
(deref (context-register-addr context index)))
(declare (type (alien (* os-context-t)) context))
(deref (context-register-addr context index)))
+(define-alien-routine ("os_context_lr_addr" context-lr-addr) (* unsigned-long)
+ (context (* os-context-t)))
+
+(defun context-lr (context)
+ (declare (type (alien (* os-context-t)) context))
+ (int-sap (deref (context-lr-addr context))))
+
(defun %set-context-register (context index new)
(declare (type (alien (* os-context-t)) context))
(setf (deref (context-register-addr context index))
(defun %set-context-register (context index new)
(declare (type (alien (* os-context-t)) context))
(setf (deref (context-register-addr context index))
@@
-115,6
+119,9
@@
;;; Given a signal context, return the floating point modes word in
;;; the same format as returned by FLOATING-POINT-MODES.
;;; Given a signal context, return the floating point modes word in
;;; the same format as returned by FLOATING-POINT-MODES.
+;;;
+;;; FIXME: surely this must be accessible somewhere under Darwin?
+#!-darwin
(define-alien-routine ("os_context_fp_control" context-floating-point-modes)
(sb!alien:unsigned 32)
(context (* os-context-t)))
(define-alien-routine ("os_context_fp_control" context-floating-point-modes)
(sb!alien:unsigned 32)
(context (* os-context-t)))