diff --git a/compiler/mips/alloc.lisp b/compiler/mips/alloc.lisp index a99468040592d8fccae19321d8e327d4257d7cdd..3973749719df0d4deecfb6db3fb2351ea6cc5fc7 100644 --- a/compiler/mips/alloc.lisp +++ b/compiler/mips/alloc.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman (FAHLMAN@CMUC). ;;; ********************************************************************** ;;; -;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/mips/alloc.lisp,v 1.8 1990/06/09 13:54:24 wlott Exp $ +;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/mips/alloc.lisp,v 1.9 1990/07/02 04:47:03 wlott Exp $ ;;; ;;; Allocation VOPs for the MIPS port. ;;; @@ -104,6 +104,30 @@ (storew null-tn result vm:code-entry-points-slot vm:other-pointer-type) (storew null-tn result vm:code-debug-info-slot vm:other-pointer-type)))) +(define-vop (make-symbol) + (:args (name :scs (descriptor-reg))) + (:temporary (:scs (non-descriptor-reg) :type random) ndescr temp) + (:temporary (:scs (descriptor-reg) :to (:result 0) :target real-result) + result) + (:results (real-result :scs (descriptor-reg))) + (:policy :fast-safe) + (:translate make-symbol) + (:generator 37 + (pseudo-atomic (ndescr) + (inst addu result alloc-tn vm:other-pointer-type) + (inst addu alloc-tn alloc-tn (pad-data-block vm:symbol-size)) + (inst li temp (logior (ash (1- vm:symbol-size) vm:type-bits) + vm:symbol-header-type)) + (storew temp result 0 vm:other-pointer-type) + (inst li temp vm:unbound-marker-type) + (storew temp result vm:symbol-value-slot vm:other-pointer-type) + (load-symbol-value temp lisp::*the-undefined-function*) + (storew temp result vm:symbol-function-slot vm:other-pointer-type) + (storew null-tn result vm:symbol-plist-slot vm:other-pointer-type) + (storew name result vm:symbol-name-slot vm:other-pointer-type) + (storew null-tn result vm:symbol-package-slot vm:other-pointer-type) + (move real-result result)))) + ;;;; Automatic allocators for primitive objects. diff --git a/compiler/mips/parms.lisp b/compiler/mips/parms.lisp index 604f139bdb2b0408e42c5bbaffa1bfe939e90975..3529b0ec5804a7829a9b3d4a2a28d3f46843f11e 100644 --- a/compiler/mips/parms.lisp +++ b/compiler/mips/parms.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman (FAHLMAN@CMUC). ;;; ********************************************************************** ;;; -;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/mips/parms.lisp,v 1.58 1990/06/29 11:09:34 wlott Exp $ +;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/mips/parms.lisp,v 1.59 1990/07/02 04:47:40 wlott Exp $ ;;; ;;; This file contains some parameterizations of various VM ;;; attributes for the MIPS. This file is separate from other stuff so @@ -410,8 +410,7 @@ :init :arg)) (define-primitive-object (symbol :lowtag other-pointer-type - :header symbol-header-type - :alloc-trans make-symbol) + :header symbol-header-type) (value :set-trans set :setf-vop set :init :unbound)