[movitz-cvs] CVS update: movitz/special-operators.lisp
Frode Vatvedt Fjeld
ffjeld at common-lisp.net
Sat Feb 21 02:04:51 UTC 2004
Update of /project/movitz/cvsroot/movitz
In directory common-lisp.net:/tmp/cvs-serv10328
Modified Files:
special-operators.lisp
Log Message:
Added inline-assembly macro :returns-mode.
Date: Fri Feb 20 21:04:50 2004
Author: ffjeld
Index: movitz/special-operators.lisp
diff -u movitz/special-operators.lisp:1.14 movitz/special-operators.lisp:1.15
--- movitz/special-operators.lisp:1.14 Tue Feb 17 15:24:06 2004
+++ movitz/special-operators.lisp Fri Feb 20 21:04:50 2004
@@ -8,7 +8,7 @@
;;;; Author: Frode Vatvedt Fjeld <frodef at acm.org>
;;;; Created at: Fri Nov 24 16:22:59 2000
;;;;
-;;;; $Id: special-operators.lisp,v 1.14 2004/02/17 20:24:06 ffjeld Exp $
+;;;; $Id: special-operators.lisp,v 1.15 2004/02/21 02:04:50 ffjeld Exp $
;;;;
;;;;------------------------------------------------------------------
@@ -460,7 +460,10 @@
&body inline-asm)
(cdr case-spec)
(when (eq returns :same)
- (setf returns result-mode))
+ (setf returns
+ (case result-mode
+ (:function :multiple-values)
+ (t result-mode))))
(when (flet ((match (matching-result-mode)
(or (eq 'muerte.cl::t matching-result-mode)
(eq t matching-result-mode)
@@ -518,6 +521,10 @@
(setq side-effects t))
(setf modifies (modifies-union modifies sub-modifies))
sub-code))))
+ (setf (assembly-macro-expander :returns-mode amenv)
+ #'(lambda (expr)
+ (assert (= 1 (length expr)))
+ (list returns)))
(setf (assembly-macro-expander :result-register amenv)
#'(lambda (expr)
(assert (= 1 (length expr)))
More information about the Movitz-cvs
mailing list