diff --git a/compiler/mips/alloc.lisp b/compiler/mips/alloc.lisp index 6d59e1943d4455584f60a34273288a87942b93fe..8cddf25f282a3bb82c974a2c9f09e112805fa1d2 100644 --- a/compiler/mips/alloc.lisp +++ b/compiler/mips/alloc.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman or slisp-group@cs.cmu.edu. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/mips/alloc.lisp,v 1.17 1992/07/28 20:34:12 wlott Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/mips/alloc.lisp,v 1.18 1992/08/02 20:24:36 wlott Exp $") ;;; ;;; ********************************************************************** ;;; @@ -185,23 +185,17 @@ (inst and temp temp2) (inst addu alloc-tn temp) (inst addu temp extra-words (fixnum (1- ,size))) - (inst sll temp extra-words - (- type-bits word-shift)) + (inst sll temp (- type-bits word-shift)) (inst or temp temp ,header) (storew temp result 0 ,lowtag))) (variable-length (error ":REST-P T with no header in ~S?" (primitive-object-name obj))) (header - `((inst addu alloc-tn alloc-tn - (pad-data-block ,size)) - (inst li temp + `((inst li temp ,(logior (ash (1- size) type-bits) (symbol-value header))) - (storew temp result 0 ,lowtag))) - (t - `((inst addu alloc-tn alloc-tn - (pad-data-block ,size))))) + (storew temp result 0 ,lowtag)))) ,@(when need-unbound-marker `((inst li temp unbound-marker-type))) ,@(init-forms)