Don't warn when #'(setf fun) is used in the presence of a setf-macro.
[sbcl.git] / src / compiler / hppa / parms.lisp
index 31e80d1..61d6e71 100644 (file)
@@ -1,7 +1,7 @@
 (in-package "SB!VM")
-
 \f
 ;;;; Machine Architecture parameters:
+(eval-when (:compile-toplevel :load-toplevel :execute)
 
 ;;; number of bits per word where a word holds one lisp descriptor
 (def!constant n-word-bits 32)
 (def!constant float-sign-shift 31)
 
 (def!constant single-float-bias 126)
-(defconstant-eqx single-float-exponent-byte (byte 8 23) #'equal)
-(defconstant-eqx single-float-significand-byte (byte 23 0) #'equal)
+(defconstant-eqx single-float-exponent-byte (byte 8 23) #'equalp)
+(defconstant-eqx single-float-significand-byte (byte 23 0) #'equalp)
 (def!constant single-float-normal-exponent-min 1)
 (def!constant single-float-normal-exponent-max 254)
 (def!constant single-float-hidden-bit (ash 1 23))
 (def!constant single-float-trapping-nan-bit (ash 1 22))
 
 (def!constant double-float-bias 1022)
-(defconstant-eqx double-float-exponent-byte (byte 11 20) #'equal)
-(defconstant-eqx double-float-significand-byte (byte 20 0) #'equal)
+(defconstant-eqx double-float-exponent-byte (byte 11 20) #'equalp)
+(defconstant-eqx double-float-significand-byte (byte 20 0) #'equalp)
 (def!constant double-float-normal-exponent-min 1)
 (def!constant double-float-normal-exponent-max #x7FE)
 (def!constant double-float-hidden-bit (ash 1 20))
 (def!constant float-round-to-positive 2)
 (def!constant float-round-to-negative 3)
 
-(defconstant-eqx float-rounding-mode (byte 2 7) #'equal)
-(defconstant-eqx float-sticky-bits (byte 5 27) #'equal)
-(defconstant-eqx float-traps-byte (byte 5 0) #'equal)
-(defconstant-eqx float-exceptions-byte (byte 5 27) #'equal)
-(def!constant float-condition-bit (ash 1 26))
-(def!constant float-fast-bit 0)                          ; No fast mode on HPPA.
+(defconstant-eqx float-rounding-mode (byte 2 7) #'equalp)
+(defconstant-eqx float-sticky-bits (byte 5 27) #'equalp)
+(defconstant-eqx float-traps-byte (byte 5 0) #'equalp)
+(defconstant-eqx float-exceptions-byte (byte 5 27) #'equalp)
+(defconstant-eqx float-condition-bit (ash 1 26) #'equalp)
+(def!constant float-fast-bit 0)                   ; No fast mode on HPPA.
 
 
 \f
 ;;;; Description of the target address space.
 
 ;;; Where to put the different spaces.
-;;; 
-(def!constant read-only-space-start #x20000000)
-(def!constant read-only-space-end   #x24000000)
+;;;
+(def!constant read-only-space-start #x4b000000)
+(def!constant read-only-space-end   #x4dff0000)
 
-(def!constant static-space-start    #x28000000)
-(def!constant static-space-end      #x2a000000)
+(def!constant static-space-start    #x4e000000)
+(def!constant static-space-end      #x4fff0000)
 
-(def!constant dynamic-space-start   #x30000000)
-(def!constant dynamic-space-end     #x37fff000)
+(def!constant dynamic-0-space-start   #x50000000)
+(def!constant dynamic-0-space-end     #x54000000)
+(def!constant dynamic-1-space-start   #x60000000)
+(def!constant dynamic-1-space-end     #x64000000)
 
-(def!constant dynamic-0-space-start   #x30000000)
-(def!constant dynamic-0-space-end     #x37fff000)
-(def!constant dynamic-1-space-start   #x38000000)
-(def!constant dynamic-1-space-end     #x3ffff000)
+); eval-when
 
-;;; FIXME: WTF are these for?
+;;; When doing external branching on hppa (e.g. inst ble)
+;;; we must know which space we want to jump into (text, code)
 
 ;; The space-register holding the lisp heap.
 (def!constant lisp-heap-space 5)
 
-;; The space-register holding the C text segment.
+;; The space-register holding the C text heap.
 (def!constant c-text-space 4)
 
 \f
 ;;;; Other random 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 ()
+  atomic-flag
+  interrupted-flag)
+
+(defenum (:start 8)
+  halt-trap
+  pending-interrupt-trap
+  error-trap
+  cerror-trap
+  breakpoint-trap
+  fun-end-breakpoint-trap
+  single-step-breakpoint-trap
+  single-step-around-trap
+  single-step-before-trap
+  single-step-after-trap)
 \f
 ;;;; Static symbols.
 
 ;;; The fdefn objects for the static functions are loaded into static
 ;;; space directly after the static symbols.  That way, the raw-addr
 ;;; 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
-    sb!impl::sub-gc
-    sb!kernel::internal-error
-    sb!kernel::control-stack-exhausted-error
-    sb!kernel::undefined-alien-error
-    sb!di::handle-breakpoint
-    sb!impl::fdefinition-object
-
-    ;; 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->
     sb!kernel:two-arg-=
+    sb!kernel:two-arg-<=
+    sb!kernel:two-arg->=
+    sb!kernel:two-arg-/=
     eql
     sb!kernel:%negate
     sb!kernel:two-arg-and
     sb!kernel:two-arg-ior
     sb!kernel:two-arg-xor
     sb!kernel:two-arg-gcd
-    sb!kernel:two-arg-lcm
-    ))
+    sb!kernel:two-arg-lcm))
+