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@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)))