Ignore:
Timestamp:
Jul 9, 2010, 11:46:08 PM (9 years ago)
Author:
gb
Message:

The point of the checkpoint in the last commit: change nil_value on ARM
from #x10000005 to #x04000001. That obviously means that we invert
arm::fulltag-cons and arm::fulltag-nil, and change a few things (the link-
inverting marker, the LISTP compiler-macro) that were more sensitive to
that than they probably should have been.

OTOH, we get ~192M more address space to play with.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/arm/compiler/optimizers.lisp

    r13780 r13948  
    18261826(define-compiler-macro listp (n)
    18271827  (let* ((arch (backend-target-arch *target-backend*))
    1828          (cons-tag (arch::target-cons-tag arch))
     1828         (list-tag (logand (arch::target-cons-tag arch)
     1829                           (1- (ash 1 (arch::target-nlisptagbits arch)))))
    18291830         (nil-tag  (arch::target-null-tag arch))
    18301831         (symbol-tag (arch::target-symbol-tag arch)))
     
    18331834        `(let* ((,nvar ,n))
    18341835          (if ,nvar (consp ,nvar) t)))
    1835       `(eql (lisptag ,n) ,cons-tag))))
     1836      `(eql (lisptag ,n) ,list-tag))))
    18361837
    18371838(define-compiler-macro consp (&whole call n)
Note: See TracChangeset for help on using the changeset viewer.