From: Thiemo Seufer Date: Fri, 5 Dec 2008 07:01:39 +0000 (+0000) Subject: 1.0.23.21: Stack allocated conses for MIPS. X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=45618b17bd28aa3f0124eb675460c005f34322b0;p=sbcl.git 1.0.23.21: Stack allocated conses for MIPS. --- diff --git a/src/compiler/generic/vm-ir2tran.lisp b/src/compiler/generic/vm-ir2tran.lisp index de0299a..40eb40c 100644 --- a/src/compiler/generic/vm-ir2tran.lisp +++ b/src/compiler/generic/vm-ir2tran.lisp @@ -221,7 +221,7 @@ t)) ;;; ...conses -#!+(or x86 x86-64) +#!+(or mips x86 x86-64) (defoptimizer (cons stack-allocate-result) ((&rest args) node dx) (declare (ignore node dx)) t) diff --git a/src/compiler/mips/alloc.lisp b/src/compiler/mips/alloc.lisp index fdca339..dd9b304 100644 --- a/src/compiler/mips/alloc.lisp +++ b/src/compiler/mips/alloc.lisp @@ -171,13 +171,20 @@ (define-vop (fixed-alloc) (:args) (:info name words type lowtag stack-allocate-p) - (:ignore name stack-allocate-p) + (:ignore name) (:results (result :scs (descriptor-reg))) (:temporary (:scs (non-descriptor-reg)) temp) (:temporary (:sc non-descriptor-reg :offset nl4-offset) pa-flag) (:generator 4 - (pseudo-atomic (pa-flag :extra (pad-data-block words)) - (inst or result alloc-tn lowtag) + (pseudo-atomic (pa-flag :extra (if stack-allocate-p + 0 + (pad-data-block words))) + (cond (stack-allocate-p + (align-csp result) + (inst or result csp-tn lowtag) + (inst addu csp-tn (pad-data-block words))) + (t + (inst or result alloc-tn lowtag))) (when type (inst li temp (logior (ash (1- words) n-widetag-bits) type)) (storew temp result 0 lowtag))))) diff --git a/version.lisp-expr b/version.lisp-expr index 9e69c58..2f722e4 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"1.0.23.20" +"1.0.23.21"