X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fmips%2Fvm.lisp;h=9030f90567104a413581c765b19b85372e0eec0c;hb=5d04a95274c9ddaebbcd6ddffc5d646e2c25598c;hp=9d0188bd0a2e8f22af84e74fca0c27b50b865260;hpb=02567855a57e1ee0974c4c8513bde7625702c1b4;p=sbcl.git diff --git a/src/compiler/mips/vm.lisp b/src/compiler/mips/vm.lisp index 9d0188b..9030f90 100644 --- a/src/compiler/mips/vm.lisp +++ b/src/compiler/mips/vm.lisp @@ -132,20 +132,10 @@ ;; The control stack. (Scanned by GC) (control-stack control-stack) - ;; The non-descriptor stacks. - (signed-stack non-descriptor-stack) ; (signed-byte 32) - (unsigned-stack non-descriptor-stack) ; (unsigned-byte 32) - (character-stack non-descriptor-stack) ; non-descriptor characters. - (sap-stack non-descriptor-stack) ; System area pointers. - (single-stack non-descriptor-stack) ; single-floats - (double-stack non-descriptor-stack :element-size 2) ; double floats. - ;; complex-single-floats - (complex-single-stack non-descriptor-stack :element-size 2) - ;; complex-double-floats. - (complex-double-stack non-descriptor-stack :element-size 4 :alignment 2) - - - ;; **** Things that can go in the integer registers. + ;; We put ANY-REG and DESCRIPTOR-REG early so that their SC-NUMBER + ;; is small and therefore the error trap information is smaller. + ;; Moving them up here from their previous place down below saves + ;; ~250K in core file size. --njf, 2006-01-27 ;; Immediate descriptor objects. Don't have to be seen by GC, but nothing ;; bad will happen if they are. (fixnums, characters, header values, etc). @@ -166,6 +156,21 @@ :save-p t :alternate-scs (control-stack)) + ;; The non-descriptor stacks. + (signed-stack non-descriptor-stack) ; (signed-byte 32) + (unsigned-stack non-descriptor-stack) ; (unsigned-byte 32) + (character-stack non-descriptor-stack) ; non-descriptor characters. + (sap-stack non-descriptor-stack) ; System area pointers. + (single-stack non-descriptor-stack) ; single-floats + (double-stack non-descriptor-stack :element-size 2) ; double floats. + ;; complex-single-floats + (complex-single-stack non-descriptor-stack :element-size 2) + ;; complex-double-floats. + (complex-double-stack non-descriptor-stack :element-size 4 :alignment 2) + + + ;; **** Things that can go in the integer registers. + ;; Non-Descriptor characters (character-reg registers :locations #.non-descriptor-regs @@ -341,7 +346,7 @@ ;;; A list of TN's describing the register arguments. ;;; -(defparameter register-arg-tns +(defparameter *register-arg-tns* (mapcar #'(lambda (n) (make-random-tn :kind :normal :sc (sc-or-lose 'descriptor-reg) @@ -366,4 +371,6 @@ (constant (format nil "Const~D" offset)) (immediate-constant "Immed")))) - +(!def-vm-support-routine combination-implementation-style (node) + (declare (type sb!c::combination node) (ignore node)) + (values :default nil))