Changes between Initial Version and Version 1 of Internals/GarbageCollection


Ignore:
Timestamp:
Mar 7, 2008, 10:21:04 PM (12 years ago)
Author:
rme
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Internals/GarbageCollection

    v1 v1  
     1= IA-32 GC notes =
     2
     3Usual node regs: %temp0/%ecx, %temp1/%edx, %arg_y/%esi, %arg_z/%ebx, %fn/%edi.  This list can
     4be modified by tcr.node_regs_mask.  If a bit is clear, the corresponding
     5register is to be treated as an immediate register.
     6{{{
     7/*
     8 * bits correspond to reg encoding used in instructions
     9 *   7   6   5   4   3   2   1   0
     10 *  edi esi ebp esp ebx edx ecx eax
     11 */
     12}}}
     13
     14The default node_regs_mask is therefore #b11001110.
     15
     16Other roots: tcr.save0, tcr.save1, tcr.save2, tcr.save3
     17
     18
     19We want the lisp heap (and possibly lisp stacks) to start at or above #x01000000.
     20If we can assert that no gc-able lisp object will ever be below the 16 MB line, then we
     21can put unboxed uvector indicies into node registers, and the GC will still be able
     22to distinguish immediate and node values reliably.
     23
     24
     25