Changeset 12922


Ignore:
Timestamp:
Oct 7, 2009, 10:45:09 PM (10 years ago)
Author:
gb
Message:

Allow fasdumping macptr-typed constants, as long as they're not typed
pointers and as long as they're pointing to the low 64K or high 64K
of the address space.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/lib/nfcomp.lisp

    r12709 r12922  
    12311231                                 (ash 1 x8664::fulltag-immheader-2))))
    12321232           (case type-code
    1233              ((#.target::subtag-macptr #.target::subtag-dead-macptr) (unless (%null-ptr-p exp) (fasl-unknown exp)))
     1233             (#.target::subtag-dead-macptr (fasl-unknown exp))
     1234             (#.target::subtag-macptr
     1235              ;; Treat untyped pointers to the high/low 64K of the address
     1236              ;; space as constants.  Refuse to dump other pointers.
     1237              (unless (and (zerop (%macptr-type exp))
     1238                           (zerop (%macptr-domain exp)))
     1239                (error "Can't dump typed pointer ~s" exp))
     1240              (let* ((addr (%ptr-to-int exp)))
     1241                (unless (or (< addr #x10000)
     1242                            (>= addr (- (ash 1 target::nbits-in-word)
     1243                                        #x10000)))
     1244                  (error "Can't dump pointer ~s : address is not in the low or high 64K of the address space." exp))))
    12341245             (t (fasl-scan-ref exp)))
    12351246           (case type-code
Note: See TracChangeset for help on using the changeset viewer.