Do not lower primitives to "void*" to get better compiler checking

db4
Samuel Tardieu 2009-05-04 14:32:09 +02:00
parent 034dcc9c3b
commit 1b0db9623b
2 changed files with 153 additions and 152 deletions

View File

@ -3,157 +3,157 @@
namespace factor
{
void *primitives[] = {
(void *)primitive_bignum_to_fixnum,
(void *)primitive_float_to_fixnum,
(void *)primitive_fixnum_to_bignum,
(void *)primitive_float_to_bignum,
(void *)primitive_fixnum_to_float,
(void *)primitive_bignum_to_float,
(void *)primitive_str_to_float,
(void *)primitive_float_to_str,
(void *)primitive_float_bits,
(void *)primitive_double_bits,
(void *)primitive_bits_float,
(void *)primitive_bits_double,
(void *)primitive_fixnum_add,
(void *)primitive_fixnum_subtract,
(void *)primitive_fixnum_multiply,
(void *)primitive_fixnum_divint,
(void *)primitive_fixnum_divmod,
(void *)primitive_fixnum_shift,
(void *)primitive_bignum_eq,
(void *)primitive_bignum_add,
(void *)primitive_bignum_subtract,
(void *)primitive_bignum_multiply,
(void *)primitive_bignum_divint,
(void *)primitive_bignum_mod,
(void *)primitive_bignum_divmod,
(void *)primitive_bignum_and,
(void *)primitive_bignum_or,
(void *)primitive_bignum_xor,
(void *)primitive_bignum_not,
(void *)primitive_bignum_shift,
(void *)primitive_bignum_less,
(void *)primitive_bignum_lesseq,
(void *)primitive_bignum_greater,
(void *)primitive_bignum_greatereq,
(void *)primitive_bignum_bitp,
(void *)primitive_bignum_log2,
(void *)primitive_byte_array_to_bignum,
(void *)primitive_float_eq,
(void *)primitive_float_add,
(void *)primitive_float_subtract,
(void *)primitive_float_multiply,
(void *)primitive_float_divfloat,
(void *)primitive_float_mod,
(void *)primitive_float_less,
(void *)primitive_float_lesseq,
(void *)primitive_float_greater,
(void *)primitive_float_greatereq,
(void *)primitive_word,
(void *)primitive_word_xt,
(void *)primitive_getenv,
(void *)primitive_setenv,
(void *)primitive_existsp,
(void *)primitive_gc,
(void *)primitive_gc_stats,
(void *)primitive_save_image,
(void *)primitive_save_image_and_exit,
(void *)primitive_datastack,
(void *)primitive_retainstack,
(void *)primitive_callstack,
(void *)primitive_set_datastack,
(void *)primitive_set_retainstack,
(void *)primitive_set_callstack,
(void *)primitive_exit,
(void *)primitive_data_room,
(void *)primitive_code_room,
(void *)primitive_micros,
(void *)primitive_modify_code_heap,
(void *)primitive_dlopen,
(void *)primitive_dlsym,
(void *)primitive_dlclose,
(void *)primitive_byte_array,
(void *)primitive_uninitialized_byte_array,
(void *)primitive_displaced_alien,
(void *)primitive_alien_signed_cell,
(void *)primitive_set_alien_signed_cell,
(void *)primitive_alien_unsigned_cell,
(void *)primitive_set_alien_unsigned_cell,
(void *)primitive_alien_signed_8,
(void *)primitive_set_alien_signed_8,
(void *)primitive_alien_unsigned_8,
(void *)primitive_set_alien_unsigned_8,
(void *)primitive_alien_signed_4,
(void *)primitive_set_alien_signed_4,
(void *)primitive_alien_unsigned_4,
(void *)primitive_set_alien_unsigned_4,
(void *)primitive_alien_signed_2,
(void *)primitive_set_alien_signed_2,
(void *)primitive_alien_unsigned_2,
(void *)primitive_set_alien_unsigned_2,
(void *)primitive_alien_signed_1,
(void *)primitive_set_alien_signed_1,
(void *)primitive_alien_unsigned_1,
(void *)primitive_set_alien_unsigned_1,
(void *)primitive_alien_float,
(void *)primitive_set_alien_float,
(void *)primitive_alien_double,
(void *)primitive_set_alien_double,
(void *)primitive_alien_cell,
(void *)primitive_set_alien_cell,
(void *)primitive_alien_address,
(void *)primitive_set_slot,
(void *)primitive_string_nth,
(void *)primitive_set_string_nth_fast,
(void *)primitive_set_string_nth_slow,
(void *)primitive_resize_array,
(void *)primitive_resize_string,
(void *)primitive_array,
(void *)primitive_begin_scan,
(void *)primitive_next_object,
(void *)primitive_end_scan,
(void *)primitive_size,
(void *)primitive_die,
(void *)primitive_fopen,
(void *)primitive_fgetc,
(void *)primitive_fread,
(void *)primitive_fputc,
(void *)primitive_fwrite,
(void *)primitive_fflush,
(void *)primitive_fseek,
(void *)primitive_fclose,
(void *)primitive_wrapper,
(void *)primitive_clone,
(void *)primitive_string,
(void *)primitive_array_to_quotation,
(void *)primitive_quotation_xt,
(void *)primitive_tuple,
(void *)primitive_profiling,
(void *)primitive_become,
(void *)primitive_sleep,
(void *)primitive_tuple_boa,
(void *)primitive_callstack_to_array,
(void *)primitive_innermost_stack_frame_quot,
(void *)primitive_innermost_stack_frame_scan,
(void *)primitive_set_innermost_stack_frame_quot,
(void *)primitive_call_clear,
(void *)primitive_resize_byte_array,
(void *)primitive_dll_validp,
(void *)primitive_unimplemented,
(void *)primitive_clear_gc_stats,
(void *)primitive_jit_compile,
(void *)primitive_load_locals,
(void *)primitive_check_datastack,
(void *)primitive_inline_cache_miss,
(void *)primitive_mega_cache_miss,
(void *)primitive_lookup_method,
(void *)primitive_reset_dispatch_stats,
(void *)primitive_dispatch_stats,
(void *)primitive_reset_inline_cache_stats,
(void *)primitive_inline_cache_stats,
(void *)primitive_optimized_p,
primitive_type primitives[] = {
primitive_bignum_to_fixnum,
primitive_float_to_fixnum,
primitive_fixnum_to_bignum,
primitive_float_to_bignum,
primitive_fixnum_to_float,
primitive_bignum_to_float,
primitive_str_to_float,
primitive_float_to_str,
primitive_float_bits,
primitive_double_bits,
primitive_bits_float,
primitive_bits_double,
primitive_fixnum_add,
primitive_fixnum_subtract,
primitive_fixnum_multiply,
primitive_fixnum_divint,
primitive_fixnum_divmod,
primitive_fixnum_shift,
primitive_bignum_eq,
primitive_bignum_add,
primitive_bignum_subtract,
primitive_bignum_multiply,
primitive_bignum_divint,
primitive_bignum_mod,
primitive_bignum_divmod,
primitive_bignum_and,
primitive_bignum_or,
primitive_bignum_xor,
primitive_bignum_not,
primitive_bignum_shift,
primitive_bignum_less,
primitive_bignum_lesseq,
primitive_bignum_greater,
primitive_bignum_greatereq,
primitive_bignum_bitp,
primitive_bignum_log2,
primitive_byte_array_to_bignum,
primitive_float_eq,
primitive_float_add,
primitive_float_subtract,
primitive_float_multiply,
primitive_float_divfloat,
primitive_float_mod,
primitive_float_less,
primitive_float_lesseq,
primitive_float_greater,
primitive_float_greatereq,
primitive_word,
primitive_word_xt,
primitive_getenv,
primitive_setenv,
primitive_existsp,
primitive_gc,
primitive_gc_stats,
primitive_save_image,
primitive_save_image_and_exit,
primitive_datastack,
primitive_retainstack,
primitive_callstack,
primitive_set_datastack,
primitive_set_retainstack,
primitive_set_callstack,
primitive_exit,
primitive_data_room,
primitive_code_room,
primitive_micros,
primitive_modify_code_heap,
primitive_dlopen,
primitive_dlsym,
primitive_dlclose,
primitive_byte_array,
primitive_uninitialized_byte_array,
primitive_displaced_alien,
primitive_alien_signed_cell,
primitive_set_alien_signed_cell,
primitive_alien_unsigned_cell,
primitive_set_alien_unsigned_cell,
primitive_alien_signed_8,
primitive_set_alien_signed_8,
primitive_alien_unsigned_8,
primitive_set_alien_unsigned_8,
primitive_alien_signed_4,
primitive_set_alien_signed_4,
primitive_alien_unsigned_4,
primitive_set_alien_unsigned_4,
primitive_alien_signed_2,
primitive_set_alien_signed_2,
primitive_alien_unsigned_2,
primitive_set_alien_unsigned_2,
primitive_alien_signed_1,
primitive_set_alien_signed_1,
primitive_alien_unsigned_1,
primitive_set_alien_unsigned_1,
primitive_alien_float,
primitive_set_alien_float,
primitive_alien_double,
primitive_set_alien_double,
primitive_alien_cell,
primitive_set_alien_cell,
primitive_alien_address,
primitive_set_slot,
primitive_string_nth,
primitive_set_string_nth_fast,
primitive_set_string_nth_slow,
primitive_resize_array,
primitive_resize_string,
primitive_array,
primitive_begin_scan,
primitive_next_object,
primitive_end_scan,
primitive_size,
primitive_die,
primitive_fopen,
primitive_fgetc,
primitive_fread,
primitive_fputc,
primitive_fwrite,
primitive_fflush,
primitive_fseek,
primitive_fclose,
primitive_wrapper,
primitive_clone,
primitive_string,
primitive_array_to_quotation,
primitive_quotation_xt,
primitive_tuple,
primitive_profiling,
primitive_become,
primitive_sleep,
primitive_tuple_boa,
primitive_callstack_to_array,
primitive_innermost_stack_frame_quot,
primitive_innermost_stack_frame_scan,
primitive_set_innermost_stack_frame_quot,
primitive_call_clear,
primitive_resize_byte_array,
primitive_dll_validp,
primitive_unimplemented,
primitive_clear_gc_stats,
primitive_jit_compile,
primitive_load_locals,
primitive_check_datastack,
primitive_inline_cache_miss,
primitive_mega_cache_miss,
primitive_lookup_method,
primitive_reset_dispatch_stats,
primitive_dispatch_stats,
primitive_reset_inline_cache_stats,
primitive_inline_cache_stats,
primitive_optimized_p,
};
}

View File

@ -1,7 +1,8 @@
namespace factor
{
extern void *primitives[];
extern "C" typedef void (*primitive_type)();
extern primitive_type primitives[];
#define PRIMITIVE(name) extern "C" void primitive_##name()