X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fmips%2Fparms.lisp;h=703d887c078bec6349613a3d83451af49f80c901;hb=74cf7a4d01664fbf72a662ba093ad67ca243b524;hp=7454a0e0998324496609ea5a44643e1d95f3aa45;hpb=0906f3444fa0e23f8127ffd914200a9f3b201e13;p=sbcl.git diff --git a/src/compiler/mips/parms.lisp b/src/compiler/mips/parms.lisp index 7454a0e..703d887 100644 --- a/src/compiler/mips/parms.lisp +++ b/src/compiler/mips/parms.lisp @@ -52,6 +52,7 @@ (def!constant float-overflow-trap-bit (ash 1 2)) (def!constant float-divide-by-zero-trap-bit (ash 1 3)) (def!constant float-invalid-trap-bit (ash 1 4)) +(def!constant float-unimplemented-trap-bit (ash 1 5)) (def!constant float-round-to-nearest 0) (def!constant float-round-to-zero 1) @@ -61,10 +62,9 @@ (defconstant-eqx float-rounding-mode (byte 2 0) #'equalp) (defconstant-eqx float-sticky-bits (byte 5 2) #'equalp) (defconstant-eqx float-traps-byte (byte 5 7) #'equalp) -(defconstant-eqx float-exceptions-byte (byte 5 12) #'equalp) +(defconstant-eqx float-exceptions-byte (byte 6 12) #'equalp) (defconstant-eqx float-condition-bit (ash 1 23) #'equalp) (def!constant float-fast-bit (ash 1 24)) -;(def!constant float-fast-bit 0) ;;;; Description of the target address space. @@ -90,16 +90,16 @@ ;; ;; C runtime executable segment starts at 0x00400000 (def!constant read-only-space-start #x01000000) - (def!constant read-only-space-end #x08000000) + (def!constant read-only-space-end #x07ff0000) (def!constant static-space-start #x08000000) - (def!constant static-space-end #x10000000) + (def!constant static-space-end #x0fff0000) ;; C runtime read/write segment starts at 0x10000000, heap and DSOs ;; start at 0x2a000000 (def!constant dynamic-0-space-start #x30000000) - (def!constant dynamic-0-space-end #x50000000) + (def!constant dynamic-0-space-end #x4fff0000) (def!constant dynamic-1-space-start #x50000000) - (def!constant dynamic-1-space-end #x70000000) + (def!constant dynamic-1-space-end #x6fff0000) (def!constant linkage-table-space-start #x70000000) (def!constant linkage-table-space-end #x71000000) @@ -113,28 +113,24 @@ ;;;; Other non-type constants. -(defenum (:suffix -flag) - atomic - interrupted) - -(defenum (:suffix -trap :start 8) - halt - pending-interrupt - error - cerror - breakpoint - fun-end-breakpoint - after-breakpoint - unused - pseudo-atomic - object-not-list - object-not-instance) - -(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 + after-breakpoint-trap + unused-trap + pseudo-atomic-trap + object-not-list-trap + object-not-instance-trap + single-step-around-trap + single-step-before-trap) ;;;; Static symbols. @@ -145,39 +141,11 @@ ;;; 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 - - *posix-argv* - - sb!impl::sub-gc - sb!kernel::internal-error - sb!kernel::control-stack-exhausted-error - sb!kernel::undefined-alien-variable-error - sb!kernel::undefined-alien-function-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* - *gc-inhibit* - *gc-pending*)) + (append + *common-static-symbols* + *c-callable-static-symbols* + '())) (defparameter *static-funs* '(sb!kernel:two-arg-+