X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fsparc%2Fvm.lisp;h=f50443b8faaea4e11967b3ba30fb451126fe47ed;hb=69e6aef5e6fb3bd682c7a2cbf774034d2ea58ee8;hp=8a85603a3f230f8ae3cce451332237956f1f810d;hpb=56a2dbbb9d79a62db99cc4061e50fca74fcf907e;p=sbcl.git diff --git a/src/compiler/sparc/vm.lisp b/src/compiler/sparc/vm.lisp index 8a85603..f50443b 100644 --- a/src/compiler/sparc/vm.lisp +++ b/src/compiler/sparc/vm.lisp @@ -299,6 +299,7 @@ (defregtn zero any-reg) (defregtn null descriptor-reg) (defregtn code descriptor-reg) + (defregtn lip descriptor-reg) (defregtn alloc any-reg) (defregtn nargs any-reg) @@ -310,7 +311,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 ((integer 0 0) (sc-number-or-lose 'zero)) @@ -323,6 +324,11 @@ (if (static-symbol-p value) (sc-number-or-lose 'immediate) nil)))) + +(defun boxed-immediate-sc-p (sc) + (or (eql sc (sc-number-or-lose 'zero)) + (eql sc (sc-number-or-lose 'null)) + (eql sc (sc-number-or-lose 'immediate)))) ;;;; function call parameters @@ -360,7 +366,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)) ; FIXME: commented out on alpha (let ((sb (sb-name (sc-sb (tn-sc tn)))) (offset (tn-offset tn))) @@ -373,7 +379,7 @@ (constant (format nil "Const~D" offset)) (immediate-constant "Immed")))) -(!def-vm-support-routine combination-implementation-style (node) +(defun combination-implementation-style (node) (declare (type sb!c::combination node) (ignore node)) (values :default nil))