VM: Refactor primitives.cpp/hpp to Factor style
parent
5e7792e9b9
commit
4dffb25fe6
|
@ -1,12 +1,11 @@
|
||||||
#include "master.hpp"
|
#include "master.hpp"
|
||||||
|
|
||||||
namespace factor
|
namespace factor {
|
||||||
{
|
|
||||||
|
|
||||||
#define PRIMITIVE(name) VM_C_API void primitive_##name(factor_vm *parent) \
|
#define PRIMITIVE(name) \
|
||||||
{ \
|
VM_C_API void primitive_##name(factor_vm * parent) { \
|
||||||
parent->primitive_##name(); \
|
parent->primitive_##name(); \
|
||||||
}
|
}
|
||||||
|
|
||||||
EACH_PRIMITIVE(PRIMITIVE)
|
EACH_PRIMITIVE(PRIMITIVE)
|
||||||
|
|
||||||
|
|
|
@ -1,159 +1,62 @@
|
||||||
namespace factor
|
namespace factor {
|
||||||
{
|
|
||||||
|
|
||||||
/* Generated with PRIMITIVE in primitives.cpp */
|
/* Generated with PRIMITIVE in primitives.cpp */
|
||||||
|
|
||||||
#define EACH_PRIMITIVE(_) \
|
#define EACH_PRIMITIVE(_) \
|
||||||
_(alien_address) \
|
_(alien_address) _(all_instances) _(array) _(array_to_quotation) _(become) \
|
||||||
_(all_instances) \
|
_(bignum_add) _(bignum_and) _(bignum_bitp) _(bignum_divint) \
|
||||||
_(array) \
|
_(bignum_divmod) _(bignum_eq) _(bignum_greater) _(bignum_greatereq) \
|
||||||
_(array_to_quotation) \
|
_(bignum_less) _(bignum_lesseq) _(bignum_log2) _(bignum_mod) \
|
||||||
_(become) \
|
_(bignum_gcd) _(bignum_multiply) _(bignum_not) _(bignum_or) \
|
||||||
_(bignum_add) \
|
_(bignum_shift) _(bignum_subtract) _(bignum_to_fixnum) _(bignum_xor) \
|
||||||
_(bignum_and) \
|
_(bits_double) _(bits_float) _(byte_array) _(callback) _(callstack) \
|
||||||
_(bignum_bitp) \
|
_(callstack_bounds) _(callstack_for) _(callstack_to_array) \
|
||||||
_(bignum_divint) \
|
_(check_datastack) _(clear_samples) _(clone) _(code_blocks) _(code_room) \
|
||||||
_(bignum_divmod) \
|
_(compact_gc) _(compute_identity_hashcode) _(context_object) \
|
||||||
_(bignum_eq) \
|
_(context_object_for) _(current_callback) _(data_room) _(datastack) \
|
||||||
_(bignum_greater) \
|
_(datastack_for) _(die) _(disable_gc_events) _(dispatch_stats) \
|
||||||
_(bignum_greatereq) \
|
_(displaced_alien) _(dlclose) _(dll_validp) _(dlopen) _(dlsym) \
|
||||||
_(bignum_less) \
|
_(dlsym_raw) _(double_bits) _(enable_gc_events) _(existsp) _(exit) \
|
||||||
_(bignum_lesseq) \
|
_(fclose) _(fflush) _(fgetc) _(fixnum_divint) _(fixnum_divmod) \
|
||||||
_(bignum_log2) \
|
_(fixnum_shift) _(fixnum_to_bignum) _(fixnum_to_float) _(float_add) \
|
||||||
_(bignum_mod) \
|
_(float_bits) _(float_divfloat) _(float_eq) _(float_greater) \
|
||||||
_(bignum_gcd) \
|
_(float_greatereq) _(float_less) _(float_lesseq) _(float_multiply) \
|
||||||
_(bignum_multiply) \
|
_(float_subtract) _(float_to_bignum) _(float_to_fixnum) _(fopen) \
|
||||||
_(bignum_not) \
|
_(format_float) _(fputc) _(fread) _(fseek) _(ftell) _(full_gc) _(fwrite) \
|
||||||
_(bignum_or) \
|
_(get_samples) _(identity_hashcode) _(innermost_stack_frame_executing) \
|
||||||
_(bignum_shift) \
|
_(innermost_stack_frame_scan) _(jit_compile) _(load_locals) \
|
||||||
_(bignum_subtract) \
|
_(lookup_method) _(mega_cache_miss) _(minor_gc) _(modify_code_heap) \
|
||||||
_(bignum_to_fixnum) \
|
_(nano_count) _(optimized_p) _(quot_compiled_p) _(quotation_code) \
|
||||||
_(bignum_xor) \
|
_(reset_dispatch_stats) _(resize_array) _(resize_byte_array) \
|
||||||
_(bits_double) \
|
_(resize_string) _(retainstack) _(retainstack_for) _(sampling_profiler) \
|
||||||
_(bits_float) \
|
_(save_image) _(save_image_and_exit) _(set_context_object) \
|
||||||
_(byte_array) \
|
_(set_datastack) _(set_innermost_stack_frame_quot) _(set_retainstack) \
|
||||||
_(callback) \
|
_(set_slot) _(set_special_object) _(set_string_nth_fast) _(size) \
|
||||||
_(callstack) \
|
_(sleep) _(special_object) _(string) _(strip_stack_traces) _(tuple) \
|
||||||
_(callstack_bounds) \
|
_(tuple_boa) _(unimplemented) _(uninitialized_byte_array) _(word) \
|
||||||
_(callstack_for) \
|
_(word_code) _(wrapper)
|
||||||
_(callstack_to_array) \
|
|
||||||
_(check_datastack) \
|
|
||||||
_(clear_samples) \
|
|
||||||
_(clone) \
|
|
||||||
_(code_blocks) \
|
|
||||||
_(code_room) \
|
|
||||||
_(compact_gc) \
|
|
||||||
_(compute_identity_hashcode) \
|
|
||||||
_(context_object) \
|
|
||||||
_(context_object_for) \
|
|
||||||
_(current_callback) \
|
|
||||||
_(data_room) \
|
|
||||||
_(datastack) \
|
|
||||||
_(datastack_for) \
|
|
||||||
_(die) \
|
|
||||||
_(disable_gc_events) \
|
|
||||||
_(dispatch_stats) \
|
|
||||||
_(displaced_alien) \
|
|
||||||
_(dlclose) \
|
|
||||||
_(dll_validp) \
|
|
||||||
_(dlopen) \
|
|
||||||
_(dlsym) \
|
|
||||||
_(dlsym_raw) \
|
|
||||||
_(double_bits) \
|
|
||||||
_(enable_gc_events) \
|
|
||||||
_(existsp) \
|
|
||||||
_(exit) \
|
|
||||||
_(fclose) \
|
|
||||||
_(fflush) \
|
|
||||||
_(fgetc) \
|
|
||||||
_(fixnum_divint) \
|
|
||||||
_(fixnum_divmod) \
|
|
||||||
_(fixnum_shift) \
|
|
||||||
_(fixnum_to_bignum) \
|
|
||||||
_(fixnum_to_float) \
|
|
||||||
_(float_add) \
|
|
||||||
_(float_bits) \
|
|
||||||
_(float_divfloat) \
|
|
||||||
_(float_eq) \
|
|
||||||
_(float_greater) \
|
|
||||||
_(float_greatereq) \
|
|
||||||
_(float_less) \
|
|
||||||
_(float_lesseq) \
|
|
||||||
_(float_multiply) \
|
|
||||||
_(float_subtract) \
|
|
||||||
_(float_to_bignum) \
|
|
||||||
_(float_to_fixnum) \
|
|
||||||
_(fopen) \
|
|
||||||
_(format_float) \
|
|
||||||
_(fputc) \
|
|
||||||
_(fread) \
|
|
||||||
_(fseek) \
|
|
||||||
_(ftell) \
|
|
||||||
_(full_gc) \
|
|
||||||
_(fwrite) \
|
|
||||||
_(get_samples) \
|
|
||||||
_(identity_hashcode) \
|
|
||||||
_(innermost_stack_frame_executing) \
|
|
||||||
_(innermost_stack_frame_scan) \
|
|
||||||
_(jit_compile) \
|
|
||||||
_(load_locals) \
|
|
||||||
_(lookup_method) \
|
|
||||||
_(mega_cache_miss) \
|
|
||||||
_(minor_gc) \
|
|
||||||
_(modify_code_heap) \
|
|
||||||
_(nano_count) \
|
|
||||||
_(optimized_p) \
|
|
||||||
_(quot_compiled_p) \
|
|
||||||
_(quotation_code) \
|
|
||||||
_(reset_dispatch_stats) \
|
|
||||||
_(resize_array) \
|
|
||||||
_(resize_byte_array) \
|
|
||||||
_(resize_string) \
|
|
||||||
_(retainstack) \
|
|
||||||
_(retainstack_for) \
|
|
||||||
_(sampling_profiler) \
|
|
||||||
_(save_image) \
|
|
||||||
_(save_image_and_exit) \
|
|
||||||
_(set_context_object) \
|
|
||||||
_(set_datastack) \
|
|
||||||
_(set_innermost_stack_frame_quot) \
|
|
||||||
_(set_retainstack) \
|
|
||||||
_(set_slot) \
|
|
||||||
_(set_special_object) \
|
|
||||||
_(set_string_nth_fast) \
|
|
||||||
_(size) \
|
|
||||||
_(sleep) \
|
|
||||||
_(special_object) \
|
|
||||||
_(string) \
|
|
||||||
_(strip_stack_traces) \
|
|
||||||
_(tuple) \
|
|
||||||
_(tuple_boa) \
|
|
||||||
_(unimplemented) \
|
|
||||||
_(uninitialized_byte_array) \
|
|
||||||
_(word) \
|
|
||||||
_(word_code) \
|
|
||||||
_(wrapper)
|
|
||||||
|
|
||||||
#define EACH_ALIEN_PRIMITIVE(_) \
|
#define EACH_ALIEN_PRIMITIVE(_) \
|
||||||
_(signed_cell,fixnum,from_signed_cell,to_fixnum) \
|
_(signed_cell, fixnum, from_signed_cell, to_fixnum) \
|
||||||
_(unsigned_cell,cell,from_unsigned_cell,to_cell) \
|
_(unsigned_cell, cell, from_unsigned_cell, to_cell) \
|
||||||
_(signed_8,s64,from_signed_8,to_signed_8) \
|
_(signed_8, s64, from_signed_8, to_signed_8) \
|
||||||
_(unsigned_8,u64,from_unsigned_8,to_unsigned_8) \
|
_(unsigned_8, u64, from_unsigned_8, to_unsigned_8) \
|
||||||
_(signed_4,s32,from_signed_cell,to_fixnum) \
|
_(signed_4, s32, from_signed_cell, to_fixnum) \
|
||||||
_(unsigned_4,u32,from_unsigned_cell,to_cell) \
|
_(unsigned_4, u32, from_unsigned_cell, to_cell) \
|
||||||
_(signed_2,s16,from_signed_cell,to_fixnum) \
|
_(signed_2, s16, from_signed_cell, to_fixnum) \
|
||||||
_(unsigned_2,u16,from_unsigned_cell,to_cell) \
|
_(unsigned_2, u16, from_unsigned_cell, to_cell) \
|
||||||
_(signed_1,s8,from_signed_cell,to_fixnum) \
|
_(signed_1, s8, from_signed_cell, to_fixnum) \
|
||||||
_(unsigned_1,u8,from_unsigned_cell,to_cell) \
|
_(unsigned_1, u8, from_unsigned_cell, to_cell) \
|
||||||
_(float,float,allot_float,to_float) \
|
_(float, float, allot_float, to_float) \
|
||||||
_(double,double,allot_float,to_double) \
|
_(double, double, allot_float, to_double) \
|
||||||
_(cell,void *,allot_alien,pinned_alien_offset)
|
_(cell, void*, allot_alien, pinned_alien_offset)
|
||||||
|
|
||||||
#define DECLARE_PRIMITIVE(name) VM_C_API void primitive_##name(factor_vm *parent);
|
#define DECLARE_PRIMITIVE(name) \
|
||||||
|
VM_C_API void primitive_##name(factor_vm * parent);
|
||||||
|
|
||||||
#define DECLARE_ALIEN_PRIMITIVE(name, type, from, to) \
|
#define DECLARE_ALIEN_PRIMITIVE(name, type, from, to) \
|
||||||
DECLARE_PRIMITIVE(alien_##name) \
|
DECLARE_PRIMITIVE(alien_##name) \
|
||||||
DECLARE_PRIMITIVE(set_alien_##name)
|
DECLARE_PRIMITIVE(set_alien_##name)
|
||||||
|
|
||||||
EACH_PRIMITIVE(DECLARE_PRIMITIVE)
|
EACH_PRIMITIVE(DECLARE_PRIMITIVE)
|
||||||
EACH_ALIEN_PRIMITIVE(DECLARE_ALIEN_PRIMITIVE)
|
EACH_ALIEN_PRIMITIVE(DECLARE_ALIEN_PRIMITIVE)
|
||||||
|
|
Loading…
Reference in New Issue