Changeset 4795


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

COMPILE-VALUES: special case code for (VALUES T T) and (VALUES NIL NIL).

File:
1 edited

Legend:

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

    r4794 r4795  
    22;;;
    33;;; Copyright (C) 2003 Peter Graves
    4 ;;; $Id: jvm.lisp,v 1.38 2003-11-16 21:17:43 piso Exp $
     4;;; $Id: jvm.lisp,v 1.39 2003-11-16 21:33:09 piso Exp $
    55;;;
    66;;; This program is free software; you can redistribute it and/or
     
    19911991           (ensure-thread-var-initialized)
    19921992           (emit 'aload *thread*)
    1993            (compile-form (car args))
    1994            (unless (remove-store-value)
    1995              (emit-push-value))
    1996            (compile-form (cadr args))
    1997            (unless (remove-store-value)
    1998              (emit-push-value))
     1993           (cond ((and (eq (car args) t)
     1994                       (eq (cadr args) t))
     1995                  (emit-push-t)
     1996                  (emit 'dup))
     1997                 ((and (eq (car args) nil)
     1998                       (eq (cadr args) nil))
     1999                  (emit-push-nil)
     2000                  (emit 'dup))
     2001                 (t
     2002                  (compile-form (car args))
     2003                  (unless (remove-store-value)
     2004                    (emit-push-value))
     2005                  (compile-form (cadr args))
     2006                  (unless (remove-store-value)
     2007                    (emit-push-value))))
    19992008           (emit-invokevirtual +lisp-thread-class+
    20002009                               "setValues"
Note: See TracChangeset for help on using the changeset viewer.