void operator()(void *frame_top, cell frame_size, code_block *owner, void *addr) { data_root<object> executing_quot(owner->owner_quot(),parent); data_root<object> executing(owner->owner,parent); data_root<object> scan(owner->scan(parent, addr),parent); frames.add(executing.value()); frames.add(executing_quot.value()); frames.add(scan.value()); }
void emit_subprimitive(cell word_) { gc_root<word> word(word_,parent); gc_root<array> code_pair(word->subprimitive,parent); literals.append(parent->untag<array>(array_nth(code_pair.untagged(),0))); emit(array_nth(code_pair.untagged(),1)); }
void literal(cell literal) { literals.add(literal); }
/* Allocates memory */ void parameter(cell parameter) { parameters.add(parameter); }