0.7.3.10: Fix the SIGILL with ev6 and later Alphas: icache needs flushing
[sbcl.git] / src / compiler / ppc / sanctify.lisp
1 ;;;; Do whatever is necessary to make the given code component
2 ;;;; executable.
3
4 ;;;; This software is part of the SBCL system. See the README file for
5 ;;;; more information.
6 ;;;;
7 ;;;; While most of SBCL is derived from the CMU CL system, the test
8 ;;;; files (like this one) were written from scratch after the fork
9 ;;;; from CMU CL.
10 ;;;; 
11 ;;;; This software is in the public domain and is provided with
12 ;;;; absolutely no warranty. See the COPYING and CREDITS files for
13 ;;;; more information.
14
15 (in-package :sb!vm)
16
17
18 \f
19 ;;; SANCTIFY-FOR-EXECUTION -- Interface.
20 ;;;
21 ;;; Do whatever is necessary to make the given code component executable.
22 ;;; On the 601, we have less to do than on some other PowerPC chips.
23 ;;; This should what needs to be done in the general case.
24 ;;; 
25 (defun sanctify-for-execution (component)
26   (without-gcing
27     (alien-funcall (extern-alien "ppc_flush_icache"
28                                  (function void
29                                            system-area-pointer
30                                            unsigned-long))
31                    (code-instructions component)
32                    (* (code-header-ref component code-code-size-slot)
33                       n-word-bytes)))
34   nil)
35
36