Changeset 10235


Ignore:
Timestamp:
Jul 29, 2008, 6:05:53 AM (11 years ago)
Author:
rme
Message:

consp compiler macro punts on x8632 (NIL and CONS share a tag).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/compiler/optimizers.lisp

    r10080 r10235  
    18001800      `(eql (lisptag ,n) ,cons-tag))))
    18011801
    1802 (define-compiler-macro consp (n)
    1803   (let* ((cons-tag (arch::target-cons-tag (backend-target-arch *target-backend*))))
    1804   `(eql (fulltag ,n) ,cons-tag)))
     1802(define-compiler-macro consp (&whole call n)
     1803  (let* ((arch (backend-target-arch *target-backend*))
     1804         (cons-tag (arch::target-cons-tag arch))
     1805         (nil-tag (arch::target-null-tag arch)))
     1806    (if (= nil-tag cons-tag)
     1807      call
     1808      `(eql (fulltag ,n) ,cons-tag))))
    18051809
    18061810(define-compiler-macro bignump (n)
Note: See TracChangeset for help on using the changeset viewer.