Skip to content
Snippets Groups Projects
Forked from cmucl / cmucl
Source project has a limited visibility.
  • toy's avatar
    723055bb
    Update to sparc gencgc so that alloc-tn holds the · 723055bb
    toy authored
    current-region-free-pointer.
    
    Cross compile may be needed, but I'm not sure.  I only used
    cross-compiling to do this change.
    
    sparc/macros.lisp:
    o Update the allocation macro appropriately for alloc-tn holding the
      current-region-free-pointer.
    
    lisp/gencgc.c:
    o Define macros for setting and getting *current-region-free-oointer*
      and *current-region-end-addr* so sparc can use alloc-tn.
      *current-region-free-pointer* isn't used anymore, but is still a
      static symbol.  It's been replaced by alloc-tn.
    o On sparc, set_alloc_pointer doesn't need to do anything anymore.
    o Don't need to call update_dynamic_space_free_pointer anymore.
    o The assertion that *current-region-free-pointer* is a fixnum is no
      longer valid on sparc because that is alloc-tn which contains the
      pseudo-atomic bits.
    
    lisp/sparc-arch.c:
    o The allocation trap instruction is now preceeded by a SUB
      instruction.  Handle that correctly.  Keep support for the OR
      instruction for now, but should be removed.
    o Set alloc-tn from current_dynamic_space_free_pointer.
    723055bb
    History
    Update to sparc gencgc so that alloc-tn holds the
    toy authored
    current-region-free-pointer.
    
    Cross compile may be needed, but I'm not sure.  I only used
    cross-compiling to do this change.
    
    sparc/macros.lisp:
    o Update the allocation macro appropriately for alloc-tn holding the
      current-region-free-pointer.
    
    lisp/gencgc.c:
    o Define macros for setting and getting *current-region-free-oointer*
      and *current-region-end-addr* so sparc can use alloc-tn.
      *current-region-free-pointer* isn't used anymore, but is still a
      static symbol.  It's been replaced by alloc-tn.
    o On sparc, set_alloc_pointer doesn't need to do anything anymore.
    o Don't need to call update_dynamic_space_free_pointer anymore.
    o The assertion that *current-region-free-pointer* is a fixnum is no
      longer valid on sparc because that is alloc-tn which contains the
      pseudo-atomic bits.
    
    lisp/sparc-arch.c:
    o The allocation trap instruction is now preceeded by a SUB
      instruction.  Handle that correctly.  Keep support for the OR
      instruction for now, but should be removed.
    o Set alloc-tn from current_dynamic_space_free_pointer.