API
MACRO UTILS
VM INTERNALS
uint8_t vm_read_byte(vm_thread_t **thread, vm_program_t program, uint32_t *pc);
int16_t vm_read_i16(vm_thread_t **thread, vm_program_t program, uint32_t *pc);
uint16_t vm_read_u16(vm_thread_t **thread, vm_program_t program, uint32_t *pc);
int32_t vm_read_i32(vm_thread_t **thread, vm_program_t program, uint32_t *pc);
uint32_t vm_read_u32(vm_thread_t **thread, vm_program_t program, uint32_t *pc);
HEAP
uint32_t vm_heap_save(vm_heap_t *heap, vm_heap_object_t value, uint32_t **gc_mark);
bool vm_heap_set(vm_heap_t *heap, vm_heap_object_t value, uint32_t pos);
bool vm_heap_isgc(vm_heap_t *heap, uint32_t pos, uint32_t *gc_mark);
void vm_heap_gc_collect(vm_heap_t *heap, uint32_t **gc_mark, bool free_mark, vm_thread_t **thread);