Changeset 4772


Ignore:
Timestamp:
11/15/03 19:18:19 (18 years ago)
Author:
piso
Message:

COMPILE-TEST: compile SYMBOLP inline.

File:
1 edited

Legend:

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

    r4770 r4772  
    22;;;
    33;;; Copyright (C) 2003 Peter Graves
    4 ;;; $Id: jvm.lisp,v 1.30 2003-11-15 18:23:12 piso Exp $
     4;;; $Id: jvm.lisp,v 1.31 2003-11-15 19:18:19 piso Exp $
    55;;;
    66;;; This program is free software; you can redistribute it and/or
     
    603603         instruction))
    604604      ((189 ; ANEWARRAY class-name
     605        193 ; INSTANCEOF
    605606        )
    606607       (let ((index (pool-class (first args))))
     
    682683    (189 ; ANEWARRAY
    683684     0)
     685    (193 ; INSTANCEOF
     686     0)
    684687    ((153 ; IFEQ
    685688      )
     
    704707     0)
    705708    (t
    706      (format t "STACK-EFFECT unsupported opcode ~S~%"
    707              (instruction-opcode instruction))
     709     (format t "STACK-EFFECT unsupported opcode ~S~%" opcode)
    708710     0)))
    709711
     
    15001502           (emit-push-nil)
    15011503           (return-from compile-test 'if_acmpne))
    1502          (let ((s (cdr (assoc (car form)
    1503                               '((ATOM      . "atom")
    1504                                 (EVENP     . "evenp")
    1505                                 (FLOATP    . "floatp")
    1506                                 (INTEGERP  . "integerp")
    1507                                 (MINUSP    . "minusp")
    1508                                 (LISTP     . "listp")
    1509                                 (NUMBERP   . "numberp")
    1510                                 (ODDP      . "oddp")
    1511                                 (PLUSP     . "plusp")
    1512                                 (RATIONALP . "rationalp")
    1513                                 (REALP     . "realp")
    1514                                 (VECTORP   . "vectorp")
    1515                                 (ZEROP     . "zerop")
    1516                                 )))))
     1504         (when (eq (car form) 'SYMBOLP)
     1505           (compile-form (second form))
     1506           (unless (remove-store-value)
     1507             (emit-push-value))
     1508           (emit 'instanceof +lisp-symbol-class+)
     1509           (return-from compile-test 'ifeq))
     1510         (let ((s (cdr (assq (car form)
     1511                             '((ATOM      . "atom")
     1512                               (EVENP     . "evenp")
     1513                               (FLOATP    . "floatp")
     1514                               (INTEGERP  . "integerp")
     1515                               (MINUSP    . "minusp")
     1516                               (LISTP     . "listp")
     1517                               (NUMBERP   . "numberp")
     1518                               (ODDP      . "oddp")
     1519                               (PLUSP     . "plusp")
     1520                               (RATIONALP . "rationalp")
     1521                               (REALP     . "realp")
     1522                               (VECTORP   . "vectorp")
     1523                               (ZEROP     . "zerop")
     1524                               )))))
    15171525           (when s
    15181526             (compile-form (second form))
     
    15321540             (emit-push-value))
    15331541           (return-from compile-test 'if_acmpne))
    1534          (let ((s (cdr (assoc (car form)
    1535                               '((=      . "isEqualTo")
    1536                                 (/=     . "isNotEqualTo")
    1537                                 (<      . "isLessThan")
    1538                                 (<=     . "isLessThanOrEqualTo")
    1539                                 (>      . "isGreaterThan")
    1540                                 (>=     . "isGreaterThanOrEqualTo")
    1541                                 (EQL    . "eql")
    1542                                 (EQUAL  . "equal")
    1543                                 (EQUALP . "equalp")
    1544                                 )))))
     1542         (let ((s (cdr (assq (car form)
     1543                             '((=      . "isEqualTo")
     1544                               (/=     . "isNotEqualTo")
     1545                               (<      . "isLessThan")
     1546                               (<=     . "isLessThanOrEqualTo")
     1547                               (>      . "isGreaterThan")
     1548                               (>=     . "isGreaterThanOrEqualTo")
     1549                               (EQL    . "eql")
     1550                               (EQUAL  . "equal")
     1551                               (EQUALP . "equalp")
     1552                               )))))
    15451553           (when s
    15461554             (compile-form (second form))
Note: See TracChangeset for help on using the changeset viewer.