[movitz-cvs] CVS update: movitz/losp/muerte/memref.lisp

Frode Vatvedt Fjeld ffjeld at common-lisp.net
Tue May 24 06:33:37 UTC 2005


Update of /project/movitz/cvsroot/movitz/losp/muerte
In directory common-lisp.net:/tmp/cvs-serv11796

Modified Files:
	memref.lisp 
Log Message:
Moved some code around, to fix compilation order.

Date: Tue May 24 08:33:37 2005
Author: ffjeld

Index: movitz/losp/muerte/memref.lisp
diff -u movitz/losp/muerte/memref.lisp:1.46 movitz/losp/muerte/memref.lisp:1.47
--- movitz/losp/muerte/memref.lisp:1.46	Sun May 22 00:37:32 2005
+++ movitz/losp/muerte/memref.lisp	Tue May 24 08:33:35 2005
@@ -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.46 2005/05/21 22:37:32 ffjeld Exp $
+;;;; $Id: memref.lisp,v 1.47 2005/05/24 06:33:35 ffjeld Exp $
 ;;;;                
 ;;;;------------------------------------------------------------------
 
@@ -563,9 +563,8 @@
 			    (,offset-var ,offset)
 			    (,index-var ,index))
 			(with-inline-assembly (:returns :untagged-fixnum-ecx)
-			  (:load-lexical (:lexical-binding ,value-var) :eax)
-			  (:call-global-pf unbox-u32)
 			  (:compile-two-forms (:eax :edx) ,index-var ,offset-var)
+			  (:load-lexical (:lexical-binding ,value-var) :untagged-fixnum-ecx)
 			  (:load-lexical (:lexical-binding ,object-var) :ebx)
 			  ,@(when (eq endian :big)
 			      `((:bswap :ecx)))
@@ -1202,31 +1201,3 @@
 
 ;; (define-compiler-macro memrange (object ))
 
-(defun memrange (object offset index length type)
-  (ecase type
-    (:unsigned-byte8
-     (let ((vector (make-array length :element-type '(unsigned-byte 8))))
-       (loop for i upfrom index as j upfrom 0 repeat length
-	   do (setf (aref vector j) (memref object offset :index i :type :unsigned-byte8)))
-       vector))))
-
-(defun (setf memrange) (value object offset index length type)
-  (ecase type
-    (:unsigned-byte8
-     (etypecase value
-       ((unsigned-byte 8)
-	(loop for i upfrom index repeat length
-	    do (setf (memref object offset :index i :type :unsigned-byte8) value)))
-       (vector
-	(loop for i upfrom index as x across value repeat length
-	    do (setf (memref object offset :index i :type :unsigned-byte8) x)))))
-    (:character
-     (etypecase value
-       (character
-	(loop for i upfrom index repeat length
-	    do (setf (memref object offset :index i :type :character) value)))
-       (string
-	(loop for i upfrom index as x across value repeat length
-	    do (setf (memref object offset :index i :type :character) x))))))
-  value)
-     




More information about the Movitz-cvs mailing list