}
}
+cell quotation_jit::word_stack_frame_size(cell obj)
+{
+ if (special_subprimitive_p(obj))
+ return SIGNAL_HANDLER_STACK_FRAME_SIZE;
+ else
+ return JIT_FRAME_SIZE;
+}
+
/* Allocates memory */
code_block *factor_vm::jit_compile_quot(cell owner_, cell quot_, bool relocating)
{
compiler.init_quotation(quot.value());
compiler.iterate_quotation();
- cell frame_size = compiler.special_subprimitive_p(owner_)
- ? SIGNAL_HANDLER_STACK_FRAME_SIZE
- : JIT_FRAME_SIZE;
+ cell frame_size = compiler.word_stack_frame_size(owner_);
code_block *compiled = compiler.to_code_block(frame_size);
bool declare_p(cell i, cell length);
bool special_subprimitive_p(cell obj);
bool word_stack_frame_p(cell obj);
+ cell word_stack_frame_size(cell obj);
bool word_safepoint_p(cell obj);
bool stack_frame_p();
bool safepoint_p();