gencgc: More precise conservatism for pointers to boxed pages.
[sbcl.git] / src / compiler / alpha / parms.lisp
index 5e511ef..78b7d0e 100644 (file)
 (def!constant float-overflow-trap-bit       (ash 1 2)) ; ro
 (def!constant float-divide-by-zero-trap-bit (ash 1 1)) ; ro
 (def!constant float-invalid-trap-bit        (ash 1 0)) ; ro
-(defconstant-eqx float-traps-byte          (byte 6  1) #'equalp)  
+(defconstant-eqx float-traps-byte          (byte 6  1) #'equalp)
 
 ;;; exceptions are also read/written in software (by syscalls, no less).
 ;;; This is kind of dumb, but has to be done
-(defconstant-eqx float-sticky-bits     (byte 6 17) #'equalp)   ; fp_control
+(defconstant-eqx float-sticky-bits     (byte 6 17) #'equalp)    ; fp_control
 
 ;;; (We don't actually _have_ "current exceptions" on Alpha; the
 ;;; hardware only ever sets bits.  So, set this the same as accrued
@@ -93,7 +93,7 @@
 (def!constant float-round-to-negative 1)
 (def!constant float-round-to-nearest  2)
 (def!constant float-round-to-positive 3)
-(defconstant-eqx float-rounding-mode   (byte 2 58) #'equalp) 
+(defconstant-eqx float-rounding-mode   (byte 2 58) #'equalp)
 
 ;;; Miscellaneous stuff - I think it's far to say that you deserve
 ;;; what you get if you ask for fast mode.
 (def!constant static-space-start    #x28000000)
 (def!constant static-space-end      #x2c000000)
 
-;; this is used in PURIFY as part of a sloppy check to see if a pointer
-;; is in dynamic space.  Chocolate brownie for the first person to fix it
-;; -dan 20010502
-(def!constant dynamic-space-start   #x30000000)
-(def!constant dynamic-space-end     #x3fff0000)
-
 (def!constant dynamic-0-space-start   #x30000000)
 (def!constant dynamic-0-space-end     #x3fff0000)
 
 \f
 ;;;; other miscellaneous constants
 
-(defenum (:suffix -trap :start 8)
-  halt
-  pending-interrupt
-  error
-  cerror
-  breakpoint
-  fun-end-breakpoint
-  single-step-breakpoint)
-
-(defenum (:prefix trace-table-)
-  normal
-  call-site
-  fun-prologue
-  fun-epilogue)
+(defenum (:start 8)
+  halt-trap
+  pending-interrupt-trap
+  error-trap
+  cerror-trap
+  breakpoint-trap
+  fun-end-breakpoint-trap
+  single-step-breakpoint-trap
+  ;; Stepper actually not implemented on Alpha, but these constants
+  ;; are still needed to avoid undefined variable warnings during sbcl
+  ;; build.
+  single-step-around-trap
+  single-step-before-trap)
 \f
 ;;;; static symbols
 
 ;;; can be loaded directly out of them by indirecting relative to NIL.
 ;;;
 (defparameter *static-symbols*
-  '(t
-
-    ;; The C startup code must fill these in.
-    *posix-argv*
-
-    ;; functions that the C code needs to call
-    sub-gc
-    sb!kernel::internal-error
-    sb!kernel::control-stack-exhausted-error
-    sb!kernel::undefined-alien-error
-    sb!di::handle-breakpoint
-    sb!di::handle-fun-end-breakpoint
-
-    ;; free pointers
-    *read-only-space-free-pointer*
-    *static-space-free-pointer*
-    *initial-dynamic-space-free-pointer*
-
-    ;; things needed for non-local exit
-    *current-catch-block*
-    *current-unwind-protect-block*
-
-    *binding-stack-start*
-    *control-stack-start*
-    *control-stack-end*
-
-    ;; interrupt handling
-    *free-interrupt-context-index*
-    sb!unix::*interrupts-enabled*
-    sb!unix::*interrupt-pending*))
+  (append
+   *common-static-symbols*
+   *c-callable-static-symbols*
+   '()))
 
 (defparameter *static-funs*
   '(length
     sb!kernel:two-arg->
     sb!kernel:two-arg-=
     ;; FIXME: Is this
-    ;;     probably need the following as they are defined in 
-    ;;     arith.lisp: two-arg-<= two-arg->= two-arg-/= 
+    ;;     probably need the following as they are defined in
+    ;;     arith.lisp: two-arg-<= two-arg->= two-arg-/=
     ;; a comment from old CMU CL or old old CMU CL or
     ;; the SBCL alpha port or what? Do we need to worry about it,
     ;; or can we delete it?
+    sb!kernel:two-arg-/=
     eql
     sb!kernel:%negate
     sb!kernel:two-arg-and