Update of /project/movitz/cvsroot/movitz/losp/muerte In directory common-lisp.net:/tmp/cvs-serv5966
Modified Files: memref.lisp Log Message: Fixed the memref-int :unsigned-byte16 accessor wrt. register discipline.
Date: Fri Sep 17 13:06:47 2004 Author: ffjeld
Index: movitz/losp/muerte/memref.lisp diff -u movitz/losp/muerte/memref.lisp:1.29 movitz/losp/muerte/memref.lisp:1.30 --- movitz/losp/muerte/memref.lisp:1.29 Wed Sep 15 12:22:59 2004 +++ movitz/losp/muerte/memref.lisp Fri Sep 17 13:06:47 2004 @@ -10,7 +10,7 @@ ;;;; Author: Frode Vatvedt Fjeld frodef@acm.org ;;;; Created at: Tue Mar 6 21:25:49 2001 ;;;; -;;;; $Id: memref.lisp,v 1.29 2004/09/15 10:22:59 ffjeld Exp $ +;;;; $Id: memref.lisp,v 1.30 2004/09/17 11:06:47 ffjeld Exp $ ;;;; ;;;;------------------------------------------------------------------
@@ -715,12 +715,14 @@ (:unsigned-byte16 (cond ((and (eq 0 offset) (eq 0 index)) - `(with-inline-assembly (:returns :untagged-fixnum-ecx) + `(with-inline-assembly (:returns :untagged-fixnum-ecx + :type (unsigned-byte 16)) (:compile-form (:result-mode :untagged-fixnum-ecx) ,address) (,prefixes :movzxw (:ecx) :ecx))) (t (let ((address-var (gensym "memref-int-address-"))) `(let ((,address-var ,address)) - (with-inline-assembly (:returns :untagged-fixnum-ecx) + (with-inline-assembly (:returns :untagged-fixnum-ecx + :type (unsigned-byte 16)) (:compile-two-forms (:eax :ecx) ,offset ,index) (:load-lexical (:lexical-binding ,address-var) :ebx) (:shll 1 :ecx) ; scale index @@ -820,7 +822,7 @@ `(let ((,value-var ,value) (,address-var ,address) (,index-var ,index)) - (with-inline-assembly (:returns :untagged-fixnum-eax) + (with-inline-assembly (:returns :eax) (:load-lexical (:lexical-binding ,value-var) :eax) ; value (:load-lexical (:lexical-binding ,index-var) :ebx) ; index (:load-lexical (:lexical-binding ,address-var) :ecx) ; address @@ -840,7 +842,7 @@ (,address-var ,address) (,offset-var ,offset) (,index-var ,index)) - (with-inline-assembly (:returns :untagged-fixnum-eax) + (with-inline-assembly (:returns :eax) (:load-lexical (:lexical-binding ,address-var) :ecx) (:load-lexical (:lexical-binding ,index-var) :ebx) (:load-lexical (:lexical-binding ,offset-var) :edx)