Ignore:
Timestamp:
11/16/03 21:00:02 (18 years ago)
Author:
piso
Message:

COMPILE-VALUES

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/j/src/org/armedbear/lisp/jvm.lisp

    r4792 r4793  
    22;;;
    33;;; Copyright (C) 2003 Peter Graves
    4 ;;; $Id: jvm.lisp,v 1.36 2003-11-16 19:39:25 piso Exp $
     4;;; $Id: jvm.lisp,v 1.37 2003-11-16 21:00:02 piso Exp $
    55;;;
    66;;; This program is free software; you can redistribute it and/or
     
    19851985       (compile-function-call '- args)))))
    19861986
     1987(defun compile-values (form for-effect)
     1988  (let ((args (cdr form)))
     1989    (cond ((= (length args) 2)
     1990           (ensure-thread-var-initialized)
     1991           (emit 'aload *thread*)
     1992           (compile-form (car args))
     1993           (unless (remove-store-value)
     1994             (emit-push-value))
     1995           (compile-form (cadr args))
     1996           (unless (remove-store-value)
     1997             (emit-push-value))
     1998           (emit-invokevirtual +lisp-thread-class+
     1999                               "setValues"
     2000                               "(Lorg/armedbear/lisp/LispObject;Lorg/armedbear/lisp/LispObject;)Lorg/armedbear/lisp/LispObject;"
     2001                               -2)
     2002           (emit-store-value))
     2003          (t
     2004           (compile-function-call (car form) (cdr form))))))
     2005
    19872006(defun compile-variable-ref (form)
    19882007  (let ((index (position form *locals* :from-end t)))
     
    22842303                          return-from
    22852304                          setq
    2286                           tagbody))
     2305                          tagbody
     2306                          values))
    22872307
    22882308(install-handler 'let  'compile-let/let*)
Note: See TracChangeset for help on using the changeset viewer.