GC maps


The compiler.codegen.gc-maps vocab serializes a compiled words gc maps into a space-efficient format which is appended to the end of the code block.

Every code block generated either ends with:
uint 0

or
a bitmap representing the indices of the spill slots that contain roots in each gc map
uint[] base pointers
uint[] return addresses
uint largest GC root spill slot
uint largest derived root spill slot
int number of return addresses/gc maps

For example, if there are three gc maps and each contain four roots, then bit 0-3 in the bitmap would indicate liveness of the first gc maps roots, 4-7 of the second and 8-11 of the third.

Main entry point:
emit-gc-maps ( -- )