[movitz-cvs] CVS update: movitz/compiler.lisp
Frode Vatvedt Fjeld
ffjeld at common-lisp.net
Wed Mar 24 18:38:19 UTC 2004
Update of /project/movitz/cvsroot/movitz
In directory common-lisp.net:/tmp/cvs-serv11133
Modified Files:
compiler.lisp
Log Message:
Improved propagation of :protect-registers somewhat.
Date: Wed Mar 24 13:38:18 2004
Author: ffjeld
Index: movitz/compiler.lisp
diff -u movitz/compiler.lisp:1.33 movitz/compiler.lisp:1.34
--- movitz/compiler.lisp:1.33 Thu Feb 26 08:48:42 2004
+++ movitz/compiler.lisp Wed Mar 24 13:38:18 2004
@@ -8,7 +8,7 @@
;;;; Created at: Wed Oct 25 12:30:49 2000
;;;; Distribution: See the accompanying file COPYING.
;;;;
-;;;; $Id: compiler.lisp,v 1.33 2004/02/26 13:48:42 ffjeld Exp $
+;;;; $Id: compiler.lisp,v 1.34 2004/03/24 18:38:18 ffjeld Exp $
;;;;
;;;;------------------------------------------------------------------
@@ -2436,9 +2436,12 @@
(destructuring-bind (binding &key init-with-register init-with-type
protect-registers protect-carry)
(cdr i)
- (declare (ignore binding protect-registers protect-carry init-with-type))
+ (declare (ignore binding protect-carry init-with-type))
(when init-with-register
- (setf free-so-far (remove init-with-register free-so-far)))))
+ (setf free-so-far (remove-if (lambda (x)
+ (or (eq x init-with-register)
+ (member x protect-registers)))
+ free-so-far)))))
(t (case (instruction-is i)
((nil :call)
(return nil))
@@ -5575,12 +5578,13 @@
(list source)))
(define-extended-code-expander :store-lexical (instruction funobj frame-map)
- (destructuring-bind (destination source &key shared-reference-p type)
+ (destructuring-bind (destination source &key shared-reference-p type protect-registers)
(cdr instruction)
(declare (ignore type))
(make-store-lexical (ensure-local-binding destination funobj)
(ensure-local-binding source funobj)
- shared-reference-p frame-map)))
+ shared-reference-p frame-map
+ :protect-registers protect-registers)))
;;;;;;;;;;;;;;;;;; Init-lexvar
More information about the Movitz-cvs
mailing list