Opened 13 years ago

Last modified 12 years ago

#306 new enhancement

don't put lisp objects at addresses below #x01000000

Reported by: rme Owned by: rme
Priority: minor Milestone:
Component: Runtime (threads, GC) Version:
Keywords: Cc:


We should make it impossible for any lisp object to have an address below #x01000000 (16M).

If we guarantee this, we can make it legal for node registers to contain unboxed values below 2^24 (which, conveniently enough, is ARRAY-TOTAL-SIZE-LIMIT: we could therefore put unboxed vector indexes into node registers.)

Certainly the lisp heap would have to start at #x01000000 or above, and stacks probably would too. If we can do this, then the GC will still be able to reliably distinguish nodes from non-nodes, and we'll be able to avoid doing mark-as-imm/mark-as-node in many cases.

Change History (2)

comment:1 Changed 12 years ago by rme

  • Priority changed from major to minor

comment:2 Changed 12 years ago by rme

(In [12914]) Link in x86-pad32.o, which reserves 16MB of address space at the end of the lisp kernel. The idea is to keep lisp objects from ever being found at addresses below 16MB. See ticket:306.

Note: See TracTickets for help on using tickets.