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

Frode Vatvedt Fjeld ffjeld at common-lisp.net
Fri Aug 6 20:54:17 UTC 2004


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

Modified Files:
	primitive-functions.lisp 
Log Message:
Removed some dead code.

Date: Fri Aug  6 13:54:17 2004
Author: ffjeld

Index: movitz/losp/muerte/primitive-functions.lisp
diff -u movitz/losp/muerte/primitive-functions.lisp:1.37 movitz/losp/muerte/primitive-functions.lisp:1.38
--- movitz/losp/muerte/primitive-functions.lisp:1.37	Wed Aug  4 06:00:33 2004
+++ movitz/losp/muerte/primitive-functions.lisp	Fri Aug  6 13:54:17 2004
@@ -10,7 +10,7 @@
 ;;;; Author:        Frode Vatvedt Fjeld <frodef at acm.org>
 ;;;; Created at:    Tue Oct  2 21:02:18 2001
 ;;;;                
-;;;; $Id: primitive-functions.lisp,v 1.37 2004/08/04 13:00:33 ffjeld Exp $
+;;;; $Id: primitive-functions.lisp,v 1.38 2004/08/06 20:54:17 ffjeld Exp $
 ;;;;                
 ;;;;------------------------------------------------------------------
 
@@ -296,122 +296,6 @@
    search-failed
     (:ret)))				; success: ZF=0, eax=value
 
-(define-primitive-function resolve-key-args (pos)
-  ""
-  ;; 1. Match each provided argument.
-  (with-inline-assembly (:returns :multiple-values)
-    (:leal (:ebp (:ecx 4) -4) :edx)
-    (:movl (:edx) :eax)
-    
-    
-    ))
-
-
-;;;(define-primitive-function trampoline-restify-dynamic-extent-at0%2op ()
-;;;  "Process &rest at position 0 in lambda-list, when 2 args are provided (ECX=2 is implied).
-;;;EAX: arg0, EBX: arg1, Returns list in EAX and 2 in ECX.
-;;;This is a special case of restify-dynamic-extent."
-;;;  (with-inline-assembly (:returns :nothing)
-;;;    (:popl :edx)			; return address
-;;;    (:pushl :edi)
-;;;    (:popl :edi)
-;;;    (:andl -8 :esp)
-;;;    (:pushl :ebx)			; cadr
-;;;    (:pushl :edi)			; cddr
-;;;    (:pushl :eax)			; car
-;;;    (:movl :esp :eax)
-;;;    (:subl 7 :eax)
-;;;    (:pushl :eax)
-;;;    (:addl 8 :eax)
-;;;    (:movl 2 :ecx)
-;;;    (:ret)))
-  
-
-(define-primitive-function restify-dynamic-extent ()
-  "Process &rest.
-EAX: arg0, EBX: arg1, ECX: numargs, EDX: rest-position,
-EBP: stack-frame with rest of arguments, as per calling conventions.
-Returns list in EAX and preserves numargs in ECX."
-  (with-inline-assembly (:returns :nothing)
-    (:cmpl :edx :ecx)
-    (:jle '(:sub-program ()
-	    (:movl :edi :eax) (:ret)))	; no rest at all.
-
-    ;; Pop the return address into (:esp -8) and (:esp -12).
-    (:popl (:esp -8))
-    (:subl 4 :esp)
-    (:popl (:esp -12))
-	     
-    (:pushl :edi)
-    (:popl :edi)
-    ;; Now the stack (below) looks like this:
-    ;; (:esp 0) = ???
-    ;; (:esp -4) = EDI
-    ;; (:esp -8) = Return address
-    ;; (:esp -12) = Return address
-
-    (:andl -8 :esp)			; align stack to 8 (subtracts 4 when required)
-
-    ;; We now know the return address is in (:esp -8).
-    
-    (:testl :edx :edx)
-    (:jnz 'rest-pos-not-zero)		; arg0 doesn't go into rest.
-
-    (:pushl :esp)			; cdr
-    (:subl 15 (:esp))
-
-    (:subl 4 :esp)
-    (:popl (:esp -12))			; keep return address in (:esp -8)
-    
-    (:pushl :eax)			; car = eax
-
-    (:movl :esp :eax)
-    (:incl :eax)			; store head of list in eax.
-
-    (:incl :edx)
-    (:cmpl :edx :ecx)
-    (:je '(:sub-program (done-early)
-	   (:movl :edi (:esp 4))	; terminate list
-	   (:movl (:esp -8) :ebx)	; load return address into ebx
-	   (:jmp :ebx)))		; return
-    (:jmp 'rest-pos-was-zero)
-    
-   rest-pos-not-zero
-    (:leal (:esp -7) :eax)		; store head of list in eax.
-
-   rest-pos-was-zero
-    (:cmpl 1 :edx)
-    (:jnz 'rest-pos-not-one-or-zero)
-
-    (:pushl :esp)
-    (:subl 15 (:esp))			; cdr
-
-    (:subl 4 :esp)
-    (:popl (:esp -12))			; keep return address in (:esp -8)
-
-    (:pushl :ebx)			; car = ebx
-
-    (:incl :edx)
-    (:cmpl :edx :ecx)
-    (:je 'done-early)
-
-   rest-pos-not-one-or-zero
-
-    (:movl (:esp -8) :ebx)		; load return address into ebx
-    (:negl :edx)
-    (:addl :ecx :edx)			; edx = (- ecx edx)
-    
-   loop
-    (:pushl :esp)
-    (:subl 15 (:esp))			; cdr
-    (:pushl (:ebp (:edx 4) 4))		; car = next arg
-    (:decl :edx)
-    (:jnz 'loop)
-    
-   done
-    
-    (:movl :edi (:esp 4))		; terminate list
-    (:jmp :ebx)))			; return
 
 (define-primitive-function malloc-pointer-words ()
   "Stupid allocator.. Number of words in EAX/fixnum.





More information about the Movitz-cvs mailing list