1 ;;; This file contains the ARM specific runtime stuff.
7 "Return a string describing the type of the local machine."
10 ;;;; FIXUP-CODE-OBJECT
13 (defun fixup-code-object (code offset fixup kind
)
14 (declare (type index offset
))
15 (unless (zerop (rem offset n-word-bytes
))
16 (error "Unaligned instruction? offset=#x~X." offset
))
18 (let ((sap (code-instructions code
)))
21 (setf (sap-ref-32 sap offset
) fixup
)))))))
23 ;;;; "Sigcontext" access functions, cut & pasted from sparc-vm.lisp,
24 ;;;; then modified for ARM.
26 ;;;; See also x86-vm for commentary on signed vs unsigned.
29 (defun context-float-register (context index format
)
30 (declare (ignorable context index
))
31 (warn "stub CONTEXT-FLOAT-REGISTER")
34 (defun %set-context-float-register
(context index format new-value
)
35 (declare (ignore context index
))
36 (warn "stub %SET-CONTEXT-FLOAT-REGISTER")
37 (coerce new-value format
))
39 ;;;; INTERNAL-ERROR-ARGS.
41 ;;; Given a (POSIX) signal context, extract the internal error
42 ;;; arguments from the instruction stream.
43 (defun internal-error-args (context)
44 (declare (type (alien (* os-context-t
)) context
))
45 (let* ((pc (context-pc context
))
46 (error-number (sap-ref-8 pc
5)))
47 (declare (type system-area-pointer pc
))
49 (sb!kernel
::decode-internal-error-args
(sap+ pc
6) error-number
))))