X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fhppa%2Fvm.lisp;h=28f1db25d32bcf564e74fbcc7269708149791221;hb=b83353d9f998e5c0e34604b5593df70c66d2c510;hp=d67d49cde9cc29de11ba486d54dbdffeed246cd8;hpb=0d74ed478e7f3af5d3292153726373763631aa8e;p=sbcl.git diff --git a/src/compiler/hppa/vm.lisp b/src/compiler/hppa/vm.lisp index d67d49c..28f1db2 100644 --- a/src/compiler/hppa/vm.lisp +++ b/src/compiler/hppa/vm.lisp @@ -95,7 +95,7 @@ ;;; ;;; Handy macro so we don't have to keep changing all the numbers whenever ;;; we insert a new storage class. -;;; FIX-lav: move this into arch-generic-helpers.lisp and rip out from arches +;;; FIXME-lav: move this into arch-generic-helpers.lisp and rip out from arches (defmacro !define-storage-classes (&rest classes) (do ((forms (list 'progn) (let* ((class (car classes)) @@ -112,7 +112,7 @@ ((null classes) (nreverse forms)))) -(def!constant kludge-nondeterministic-catch-block-size 7) +(def!constant kludge-nondeterministic-catch-block-size 6) (!define-storage-classes @@ -259,10 +259,12 @@ ;;;; Make some random tns for important registers. -; how can we address reg L0 through L0-offset when it is not -; defined here ? do all registers have an -offset and this is -; redundant work ? -;FIX-lav: move this into arch-generic-helpers + +;;; how can we address reg L0 through L0-offset when it is not +;;; defined here ? do all registers have an -offset and this is +;;; redundant work ? +;;; +;;; FIXME-lav: move this into arch-generic-helpers (macrolet ((defregtn (name sc) (let ((offset-sym (symbolicate name "-OFFSET")) (tn-sym (symbolicate name "-TN"))) @@ -275,9 +277,9 @@ (defregtn zero any-reg) (defregtn nargs any-reg) - ;FIX-lav: 20080820: not a fix, but fdefn and lexenv is used in assembly-rtns - (defregtn fdefn descriptor-reg) ; FIX-lav, not used - (defregtn lexenv descriptor-reg) ; FIX-lav, not used + ;; FIXME-lav: 20080820: not a fix, but fdefn and lexenv is used in assembly-rtns + (defregtn fdefn descriptor-reg) ; FIXME-lav, not used + (defregtn lexenv descriptor-reg) ; FIXME-lav, not used (defregtn nfp descriptor-reg) ; why not descriptor-reg ? (defregtn ocfp any-reg) ; why not descriptor-reg ? @@ -306,7 +308,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)) @@ -328,6 +330,10 @@ (sc-number-or-lose 'fp-double-zero) 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 @@ -369,7 +375,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 ((sb (sb-name (sc-sb (tn-sc tn)))) (offset (tn-offset tn))) @@ -382,6 +388,10 @@ (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)) + +(defun primitive-type-indirect-cell-type (ptype) + (declare (ignore ptype)) + nil)