]> gitweb.factorcode.org Git - factor.git/blob - vm/quotations.hpp
removed some global functions from quotations.cpp
[factor.git] / vm / quotations.hpp
1 namespace factor
2 {
3
4 struct quotation_jit : public jit {
5         gc_root<array> elements;
6         bool compiling, relocate;
7
8         quotation_jit(cell quot, bool compiling_, bool relocate_, factorvm *vm)
9                 : jit(QUOTATION_TYPE,quot,vm),
10                   elements(owner.as<quotation>().untagged()->array,vm),
11                   compiling(compiling_),
12                   relocate(relocate_){};
13
14         void emit_mega_cache_lookup(cell methods, fixnum index, cell cache);
15         bool primitive_call_p(cell i);
16         bool fast_if_p(cell i);
17         bool fast_dip_p(cell i);
18         bool fast_2dip_p(cell i);
19         bool fast_3dip_p(cell i);
20         bool mega_lookup_p(cell i);
21         bool stack_frame_p();
22         void iterate_quotation();
23 };
24
25 PRIMITIVE(jit_compile);
26
27 PRIMITIVE(array_to_quotation);
28 PRIMITIVE(quotation_xt);
29
30 VM_ASM_API cell lazy_jit_compile_impl(cell quot, stack_frame *stack);
31
32 PRIMITIVE(quot_compiled_p);
33
34 }