[movitz-cvs] CVS update: movitz/losp/muerte/memref.lisp
Frode Vatvedt Fjeld
ffjeld at common-lisp.net
Thu Apr 1 02:13:33 UTC 2004
Update of /project/movitz/cvsroot/movitz/losp/muerte
In directory common-lisp.net:/tmp/cvs-serv14478
Modified Files:
memref.lisp
Log Message:
Some tuning of memref.
Date: Wed Mar 31 21:13:30 2004
Author: ffjeld
Index: movitz/losp/muerte/memref.lisp
diff -u movitz/losp/muerte/memref.lisp:1.8 movitz/losp/muerte/memref.lisp:1.9
--- movitz/losp/muerte/memref.lisp:1.8 Wed Mar 31 16:35:27 2004
+++ movitz/losp/muerte/memref.lisp Wed Mar 31 21:13:27 2004
@@ -10,7 +10,7 @@
;;;; Author: Frode Vatvedt Fjeld <frodef at acm.org>
;;;; Created at: Tue Mar 6 21:25:49 2001
;;;;
-;;;; $Id: memref.lisp,v 1.8 2004/03/31 21:35:27 ffjeld Exp $
+;;;; $Id: memref.lisp,v 1.9 2004/04/01 02:13:27 ffjeld Exp $
;;;;
;;;;------------------------------------------------------------------
@@ -65,8 +65,7 @@
(:movzxb (:eax ,(offset-by 1)) :ecx)))
((eq 0 offset)
`(with-inline-assembly (:returns :untagged-fixnum-ecx)
- (:compile-two-forms (:eax :ecx) ,object ,index)
- (:sarl ,movitz:+movitz-fixnum-shift+ :ecx)
+ (:compile-two-forms (:eax :untagged-fixnum-ecx) ,object ,index)
(:movzxb (:eax :ecx ,(offset-by 1)) :ecx)))
(t (let ((object-var (gensym "memref-object-")))
`(let ((,object-var ,object))
@@ -156,15 +155,11 @@
((and (eq 0 offset) (eq 0 index))
`(with-inline-assembly (:returns :untagged-fixnum-ecx)
(:compile-form (:result-mode :eax) ,object)
- (:movl (:eax ,(offset-by 4)) :ecx)
- (:cmpl ,movitz::+movitz-most-positive-fixnum+ :ecx)
- (:jg '(:sub-program () (:int 4)))))
+ (:movl (:eax ,(offset-by 4)) :ecx)))
((eq 0 offset)
`(with-inline-assembly (:returns :untagged-fixnum-ecx)
(:compile-two-forms (:eax :ecx) ,object ,index)
- (:movl (:eax :ecx ,(offset-by 4)) :ecx)
- (:cmpl ,movitz::+movitz-most-positive-fixnum+ :ecx)
- (:jg '(:sub-program () (:int 4)))))
+ (:movl (:eax :ecx ,(offset-by 4)) :ecx)))
(t (let ((object-var (gensym "memref-object-")))
`(let ((,object-var ,object))
(with-inline-assembly (:returns :untagged-fixnum-ecx)
@@ -269,8 +264,7 @@
((and (movitz:movitz-constantp offset env)
(movitz:movitz-constantp index env))
`(with-inline-assembly (:returns :untagged-fixnum-ecx)
- (:compile-two-forms (:ecx :ebx) ,value ,object)
- (:shrl ,movitz:+movitz-fixnum-shift+ :ecx)
+ (:compile-two-forms (:untagged-fixnum-ecx :ebx) ,value ,object)
(:movl :ecx (:ebx ,(+ (movitz:movitz-eval offset env)
(* 4 (movitz:movitz-eval index env)))))))
((and (movitz:movitz-constantp offset env)
@@ -317,8 +311,7 @@
((and (movitz:movitz-constantp offset env)
(movitz:movitz-constantp index env))
`(with-inline-assembly (:returns :untagged-fixnum-ecx)
- (:compile-two-forms (:ecx :ebx) ,value ,object)
- (:shrl ,movitz:+movitz-fixnum-shift+ :ecx)
+ (:compile-two-forms (:untagged-fixnum-ecx :ebx) ,value ,object)
(:movw :cx (:ebx ,(+ (movitz:movitz-eval offset env)
(* 2 (movitz:movitz-eval index env)))))))
((and (movitz:movitz-constantp offset env)
More information about the Movitz-cvs
mailing list