X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fx86%2Fvm.lisp;h=39924ff8dec9b5442c8defe7a77eee765f8fd24f;hb=3b98d369be67b42cbd823af9c6df55ac9601bfa9;hp=d2b7ba5383a022667797806aeb370c3a2e9e74fe;hpb=56a2dbbb9d79a62db99cc4061e50fca74fcf907e;p=sbcl.git diff --git a/src/compiler/x86/vm.lisp b/src/compiler/x86/vm.lisp index d2b7ba5..39924ff 100644 --- a/src/compiler/x86/vm.lisp +++ b/src/compiler/x86/vm.lisp @@ -118,7 +118,7 @@ ;;; the new way: (define-storage-base float-registers :finite :size 8) -(define-storage-base stack :unbounded :size 8) +(define-storage-base stack :unbounded :size 4 :size-increment 1) (define-storage-base constant :non-packed) (define-storage-base immediate-constant :non-packed) (define-storage-base noise :unbounded :size 2) @@ -382,7 +382,7 @@ ;;; If value can be represented as an immediate constant, then return ;;; the appropriate SC number, otherwise return NIL. -(!def-vm-support-routine immediate-constant-sc (value) +(defun immediate-constant-sc (value) (typecase value ((or (integer #.sb!xc:most-negative-fixnum #.sb!xc:most-positive-fixnum) character) @@ -408,6 +408,9 @@ (eql value (log 2l0 2.718281828459045235360287471352662L0))) (sc-number-or-lose 'fp-constant))))) +(defun boxed-immediate-sc-p (sc) + (eql sc (sc-number-or-lose 'immediate))) + ;; For an immediate TN, return its value encoded for use as a literal. ;; For any other TN, return the TN. Only works for FIXNUMs, ;; STATIC-SYMBOLs, and CHARACTERS (FLOATs and SAPs are handled @@ -460,7 +463,7 @@ ;;; This function is called by debug output routines that want a pretty name ;;; for a TN's location. It returns a thing that can be printed with PRINC. -(!def-vm-support-routine location-print-name (tn) +(defun location-print-name (tn) (declare (type tn tn)) (let* ((sc (tn-sc tn)) (sb (sb-name (sc-sb sc))) @@ -486,7 +489,7 @@ (noise (symbol-name (sc-name sc)))))) ;;; FIXME: Could this, and everything that uses it, be made #!+SB-SHOW? -(!def-vm-support-routine combination-implementation-style (node) +(defun combination-implementation-style (node) (declare (type sb!c::combination node)) (flet ((valid-funtype (args result) (sb!c::valid-fun-use node @@ -496,11 +499,11 @@ (logtest (cond ((valid-funtype '(fixnum fixnum) '*) - (values :direct nil)) + (values :maybe nil)) ((valid-funtype '((signed-byte 32) (signed-byte 32)) '*) - (values :direct nil)) + (values :maybe nil)) ((valid-funtype '((unsigned-byte 32) (unsigned-byte 32)) '*) - (values :direct nil)) + (values :maybe nil)) (t (values :default nil)))) (logbitp (cond @@ -516,7 +519,3 @@ (%logbitp integer index)))) (t (values :default nil)))) (t (values :default nil))))) - -(defun primitive-type-indirect-cell-type (ptype) - (declare (ignore ptype)) - nil)