Skip to content
  • Andy Wingo's avatar
    VM support for raw slots · e7660a60
    Andy Wingo authored
    * libguile/loader.c (scm_find_slot_map_unlocked): Rename from
      scm_find_dead_slot_map_unlocked.
    
    * libguile/vm.c (struct slot_map_cache_entry, struct slot_map_cache)
      (find_slot_map): Rename, changing "dead_slot" to "slot".
      (enum slot_desc): New type.
      (scm_i_vm_mark_stack): Interpret slot maps as having two bits per
      slot, allowing us to indicate that a slot is live but not a pointer.
    
    * module/language/cps/compile-bytecode.scm (compile-function): Adapt to
      emit-slot-map name change.
    
    * module/system/vm/assembler.scm (<asm>): Rename dead-slot-maps field to
      slot-maps.
      (emit-slot-map): Rename from emit-dead-slot-map.
      (link-frame-maps): 2 bits per slot.
    
    * module/language/cps/slot-allocation.scm (lookup-slot-map): Rename from
      lookup-dead-slot-map.
      (compute-var-representations): New function.
      (allocate-slots): Adapt to encode two-bit slot representations.
    e7660a60