("src/code/bit-bash" :not-host) ; needs %NEGATE from assembly/target/arith
("src/code/target-load" :not-host) ; needs special vars from code/load.lisp
-
+ ("src/compiler/target/sanctify" :not-host)
+
;; FIXME: Does this really need stuff from compiler/dump.lisp?
("src/compiler/target-dump" :not-host) ; needs stuff from compiler/dump.lisp
(declare (type simple-base-string name))
;; On the Alpha we don't do anything.
name)
-\f
-;;;; Do whatever is necessary to make the given code component
-;;;; executable.
-;;;;
-;;;; XXX do we really not have to flush caches or something here? I
-;;;; need an architecture manual
-(defun sanctify-for-execution (component)
- (declare (ignore component))
- nil)
+
(declare (type simple-base-string name))
name)
-
-\f
-;;; SANCTIFY-FOR-EXECUTION -- Interface.
-;;;
-;;; Do whatever is necessary to make the given code component executable.
-;;; On the 601, we have less to do than on some other PowerPC chips.
-;;; This should what needs to be done in the general case.
-;;;
-(defun sanctify-for-execution (component)
- (without-gcing
- (alien-funcall (extern-alien "ppc_flush_icache"
- (function void
- system-area-pointer
- unsigned-long))
- (code-instructions component)
- (* (code-header-ref component code-code-size-slot)
- n-word-bytes)))
- nil)
-
#.(error-number-or-lose 'unknown-error)))
(list (sb!c::make-sc-offset descriptor-reg-sc-number reg)))))
-\f
-;;; Do whatever is necessary to make the given code component
-;;; executable. On the sparc, we don't need to do anything, because
-;;; the i and d caches are unified.
-(defun sanctify-for-execution (component)
- (declare (ignore component))
- nil)
(sc-offsets sc-offset)))
(values error-number (sc-offsets)))))))
\f
-;;; Do whatever is necessary to make the given code component
-;;; executable. (This is a no-op on the x86.)
-(defun sanctify-for-execution (component)
- (declare (ignore component))
- nil)
-
;;; This is used in error.lisp to insure that floating-point exceptions
;;; are properly trapped. The compiler translates this to a VOP.
(defun float-wait ()
(define-instruction trapb (segment)
(:emitter (emit-lword segment #x63ff0000)))
+(define-instruction imb (segment)
+ (:emitter (emit-lword segment #x00000086)))
+
(define-instruction gentrap (segment code)
(:printer call-pal ((palcode #xaa0000)))
(:emitter
;; is in dynamic space. Chocolate brownie for the first person to fix it
;; -dan 20010502
(defconstant dynamic-space-start #x30000000)
- (defconstant dynamic-space-end #x38000000)
+ (defconstant dynamic-space-end #x3fff0000)
(defconstant dynamic-0-space-start #x30000000)
- (defconstant dynamic-0-space-end #x38000000)
+ (defconstant dynamic-0-space-end #x3fff0000)
(defconstant dynamic-1-space-start #x40000000)
- (defconstant dynamic-1-space-end #x48000000)
+ (defconstant dynamic-1-space-end #x4fff0000)
(defconstant control-stack-start #x50000000)
(defconstant control-stack-end #x51000000)
--- /dev/null
+;;;; Do whatever is necessary to make the given code component
+;;;; executable.
+
+;;;; This software is part of the SBCL system. See the README file for
+;;;; more information.
+;;;;
+;;;; While most of SBCL is derived from the CMU CL system, the test
+;;;; files (like this one) were written from scratch after the fork
+;;;; from CMU CL.
+;;;;
+;;;; This software is in the public domain and is provided with
+;;;; absolutely no warranty. See the COPYING and CREDITS files for
+;;;; more information.
+
+(in-package :sb!vm)
+
+(defun sanctify-for-execution (component)
+ (declare (ignore component))
+ (sb!sys:%primitive istream-memory-barrier))
(define-vop (halt)
(:generator 1
(inst gentrap halt-trap)))
+
+(define-vop (istream-memory-barrier)
+ (:generator 1
+ (inst imb)))
\f
;;;; dynamic vop count collection support
--- /dev/null
+;;;; Do whatever is necessary to make the given code component
+;;;; executable.
+
+;;;; This software is part of the SBCL system. See the README file for
+;;;; more information.
+;;;;
+;;;; While most of SBCL is derived from the CMU CL system, the test
+;;;; files (like this one) were written from scratch after the fork
+;;;; from CMU CL.
+;;;;
+;;;; This software is in the public domain and is provided with
+;;;; absolutely no warranty. See the COPYING and CREDITS files for
+;;;; more information.
+
+(in-package :sb!vm)
+
+
+\f
+;;; SANCTIFY-FOR-EXECUTION -- Interface.
+;;;
+;;; Do whatever is necessary to make the given code component executable.
+;;; On the 601, we have less to do than on some other PowerPC chips.
+;;; This should what needs to be done in the general case.
+;;;
+(defun sanctify-for-execution (component)
+ (without-gcing
+ (alien-funcall (extern-alien "ppc_flush_icache"
+ (function void
+ system-area-pointer
+ unsigned-long))
+ (code-instructions component)
+ (* (code-header-ref component code-code-size-slot)
+ n-word-bytes)))
+ nil)
+
+
--- /dev/null
+;;;; Do whatever is necessary to make the given code component
+;;;; executable.
+
+;;;; This software is part of the SBCL system. See the README file for
+;;;; more information.
+;;;;
+;;;; While most of SBCL is derived from the CMU CL system, the test
+;;;; files (like this one) were written from scratch after the fork
+;;;; from CMU CL.
+;;;;
+;;;; This software is in the public domain and is provided with
+;;;; absolutely no warranty. See the COPYING and CREDITS files for
+;;;; more information.
+
+(in-package :sb!vm)
+
+(defun sanctify-for-execution (component)
+ (declare (ignore component))
+ nil)
+
--- /dev/null
+;;;; Do whatever is necessary to make the given code component
+;;;; executable.
+
+;;;; This software is part of the SBCL system. See the README file for
+;;;; more information.
+;;;;
+;;;; While most of SBCL is derived from the CMU CL system, the test
+;;;; files (like this one) were written from scratch after the fork
+;;;; from CMU CL.
+;;;;
+;;;; This software is in the public domain and is provided with
+;;;; absolutely no warranty. See the COPYING and CREDITS files for
+;;;; more information.
+
+(in-package :sb!vm)
+
+(defun sanctify-for-execution (component)
+ (declare (ignore component))
+ nil)
+
# files for more information.
CFLAGS += -g -Dppc
-LD = ld #-taso
-LINKFLAGS = -v -g # -Wl,-T -Wl,ld-script.alpha-linux
+LD = ld
+LINKFLAGS = -v -g
NM = nm -p
ASSEM_SRC = ppc-assem.S ldso-stubs.S
ARCH_SRC = ppc-arch.c
OS_SRC = linux-os.c ppc-linux-os.c os-common.c
-LINKFLAGS+=-rdynamic # -static
+LINKFLAGS+=-rdynamic
OS_LIBS= -ldl
GC_SRC= gc.c
;;; for internal versions, especially for internal versions off the
;;; main CVS branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.7.3.9"
+"0.7.3.10"