factor/vm/quotations.hpp

33 lines
936 B
C++
Raw Normal View History

2009-05-04 02:46:13 -04:00
namespace factor
{
2009-05-02 10:19:09 -04:00
struct quotation_jit : public jit {
data_root<array> elements;
2009-05-02 10:19:09 -04:00
bool compiling, relocate;
explicit quotation_jit(cell owner, bool compiling_, bool relocate_, factor_vm *vm)
: jit(code_block_unoptimized,owner,vm),
elements(false_object,vm),
2009-05-02 10:19:09 -04:00
compiling(compiling_),
relocate(relocate_){};
2009-05-02 10:19:09 -04:00
void init_quotation(cell quot);
2009-05-04 05:50:24 -04:00
void emit_mega_cache_lookup(cell methods, fixnum index, cell cache);
bool primitive_call_p(cell i, cell length);
bool trivial_quotation_p(array *elements);
void emit_quot(cell quot);
bool fast_if_p(cell i, cell length);
bool fast_dip_p(cell i, cell length);
bool fast_2dip_p(cell i, cell length);
bool fast_3dip_p(cell i, cell length);
bool mega_lookup_p(cell i, cell length);
bool declare_p(cell i, cell length);
bool word_stack_frame_p(cell obj);
2009-05-02 10:19:09 -04:00
bool stack_frame_p();
void iterate_quotation();
};
2009-12-23 07:37:24 -05:00
VM_C_API cell lazy_jit_compile(cell quot, factor_vm *parent);
2009-05-04 02:46:13 -04:00
}