diff --git a/compiler/rt/system.lisp b/compiler/rt/system.lisp index 9b1519f01690920b5fd81383ebd802085b128eca..e42247383d5b1ca410eb7f77ac22faac30e438b9 100644 --- a/compiler/rt/system.lisp +++ b/compiler/rt/system.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman (FAHLMAN@CMUC). ;;; ********************************************************************** ;;; -;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/rt/system.lisp,v 1.4 1991/04/23 21:39:07 chiles Exp $ +;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/rt/system.lisp,v 1.5 1991/04/27 22:14:41 wlott Exp $ ;;; ;;; IBM RT VM definitions of various system hacking operations. ;;; @@ -187,24 +187,20 @@ (move res temp))) (define-vop (make-other-immediate-type) - (:args (val :scs (any-reg descriptor-reg) :target vtemp) + (:args (val :scs (any-reg descriptor-reg)) (type :scs (any-reg descriptor-reg immediate))) - (:temporary (:scs (non-descriptor-reg) :from (:argument 0)) vtemp) - (:results (res :scs (any-reg descriptor-reg))) + (:results (res :scs (any-reg descriptor-reg) :from :load)) (:temporary (:type random :scs (non-descriptor-reg)) temp) (:generator 2 + (move res val) + (inst sl res (- type-bits 2)) (sc-case type (immediate - (move vtemp val) - (inst sl vtemp type-bits) - (inst oil res temp (tn-value type))) + (inst oil res (tn-value type))) (t ;; Type is a fixnum, so lose those lowtag bits. (move temp type) (inst sr temp 2) - ;; Val is a fixnum, so we can shift it left two less bits. - (move res val) - (inst sl res (- type-bits 2)) (inst o res temp)))))