Update of /project/movitz/cvsroot/movitz/losp/muerte In directory common-lisp.net:/tmp/cvs-serv26496
Modified Files: symbols.lisp Log Message: Fixed some symbol accessors to use memref rather than inline assembly.
Date: Tue Oct 12 16:45:17 2004 Author: ffjeld
Index: movitz/losp/muerte/symbols.lisp diff -u movitz/losp/muerte/symbols.lisp:1.20 movitz/losp/muerte/symbols.lisp:1.21 --- movitz/losp/muerte/symbols.lisp:1.20 Mon Oct 11 15:53:28 2004 +++ movitz/losp/muerte/symbols.lisp Tue Oct 12 16:45:16 2004 @@ -10,7 +10,7 @@ ;;;; Author: Frode Vatvedt Fjeld frodef@acm.org ;;;; Created at: Tue Sep 4 23:55:41 2001 ;;;; -;;;; $Id: symbols.lisp,v 1.20 2004/10/11 13:53:28 ffjeld Exp $ +;;;; $Id: symbols.lisp,v 1.21 2004/10/12 14:45:16 ffjeld Exp $ ;;;; ;;;;------------------------------------------------------------------
@@ -211,19 +211,16 @@ (etypecase symbol (null #.(bt:enum-value 'movitz::movitz-symbol-flags '(:constant-variable))) (symbol - (with-inline-assembly (:returns :untagged-fixnum-eax) - (:compile-form (:result-mode :eax) symbol) - (:movzxw (:eax #.(bt:slot-offset 'movitz::movitz-symbol 'movitz::flags)) :eax))))) + (memref symbol (movitz-type-slot-offset 'movitz-symbol 'flags) + :type :unsigned-byte16))))
(defun (setf symbol-flags) (flags symbol) (etypecase symbol (null (error "Can't set NIL's flags.")) (symbol - (with-inline-assembly (:returns :nothing) - (:compile-form (:result-mode :ebx) symbol) - (:compile-form (:result-mode :untagged-fixnum-eax) flags) - (:movw :ax (:ebx #.(bt:slot-offset 'movitz::movitz-symbol 'movitz::flags)))) - flags))) + (setf (memref symbol (movitz-type-slot-offset 'movitz-symbol 'flags) + :type :unsigned-byte16) + flags))))
(defun symbol-special-variable-p (symbol) (logbitp 3 (symbol-flags symbol)))