]> gitweb.factorcode.org Git - factor.git/blob - vm/primitives.cpp
Merge branch 'master' into nanos
[factor.git] / vm / primitives.cpp
1 #include "master.hpp"
2
3 namespace factor
4 {
5
6 PRIMITIVE_FORWARD(bignum_to_fixnum)
7 PRIMITIVE_FORWARD(float_to_fixnum)
8 PRIMITIVE_FORWARD(fixnum_to_bignum)
9 PRIMITIVE_FORWARD(float_to_bignum)
10 PRIMITIVE_FORWARD(fixnum_to_float)
11 PRIMITIVE_FORWARD(bignum_to_float)
12 PRIMITIVE_FORWARD(str_to_float)
13 PRIMITIVE_FORWARD(float_to_str)
14 PRIMITIVE_FORWARD(float_bits)
15 PRIMITIVE_FORWARD(double_bits)
16 PRIMITIVE_FORWARD(bits_float)
17 PRIMITIVE_FORWARD(bits_double)
18 PRIMITIVE_FORWARD(fixnum_divint)
19 PRIMITIVE_FORWARD(fixnum_divmod)
20 PRIMITIVE_FORWARD(fixnum_shift)
21 PRIMITIVE_FORWARD(bignum_eq)
22 PRIMITIVE_FORWARD(bignum_add)
23 PRIMITIVE_FORWARD(bignum_subtract)
24 PRIMITIVE_FORWARD(bignum_multiply)
25 PRIMITIVE_FORWARD(bignum_divint)
26 PRIMITIVE_FORWARD(bignum_mod)
27 PRIMITIVE_FORWARD(bignum_divmod)
28 PRIMITIVE_FORWARD(bignum_and)
29 PRIMITIVE_FORWARD(bignum_or)
30 PRIMITIVE_FORWARD(bignum_xor)
31 PRIMITIVE_FORWARD(bignum_not)
32 PRIMITIVE_FORWARD(bignum_shift)
33 PRIMITIVE_FORWARD(bignum_less)
34 PRIMITIVE_FORWARD(bignum_lesseq)
35 PRIMITIVE_FORWARD(bignum_greater)
36 PRIMITIVE_FORWARD(bignum_greatereq)
37 PRIMITIVE_FORWARD(bignum_bitp)
38 PRIMITIVE_FORWARD(bignum_log2)
39 PRIMITIVE_FORWARD(byte_array_to_bignum)
40 PRIMITIVE_FORWARD(float_eq)
41 PRIMITIVE_FORWARD(float_add)
42 PRIMITIVE_FORWARD(float_subtract)
43 PRIMITIVE_FORWARD(float_multiply)
44 PRIMITIVE_FORWARD(float_divfloat)
45 PRIMITIVE_FORWARD(float_mod)
46 PRIMITIVE_FORWARD(float_less)
47 PRIMITIVE_FORWARD(float_lesseq)
48 PRIMITIVE_FORWARD(float_greater)
49 PRIMITIVE_FORWARD(float_greatereq)
50 PRIMITIVE_FORWARD(word)
51 PRIMITIVE_FORWARD(word_xt)
52 PRIMITIVE_FORWARD(special_object)
53 PRIMITIVE_FORWARD(set_special_object)
54 PRIMITIVE_FORWARD(existsp)
55 PRIMITIVE_FORWARD(minor_gc)
56 PRIMITIVE_FORWARD(full_gc)
57 PRIMITIVE_FORWARD(compact_gc)
58 PRIMITIVE_FORWARD(save_image)
59 PRIMITIVE_FORWARD(save_image_and_exit)
60 PRIMITIVE_FORWARD(datastack)
61 PRIMITIVE_FORWARD(retainstack)
62 PRIMITIVE_FORWARD(callstack)
63 PRIMITIVE_FORWARD(set_datastack)
64 PRIMITIVE_FORWARD(set_retainstack)
65 PRIMITIVE_FORWARD(set_callstack)
66 PRIMITIVE_FORWARD(exit)
67 PRIMITIVE_FORWARD(data_room)
68 PRIMITIVE_FORWARD(code_room)
69 PRIMITIVE_FORWARD(system_micros)
70 PRIMITIVE_FORWARD(nano_count)
71 PRIMITIVE_FORWARD(modify_code_heap)
72 PRIMITIVE_FORWARD(dlopen)
73 PRIMITIVE_FORWARD(dlsym)
74 PRIMITIVE_FORWARD(dlclose)
75 PRIMITIVE_FORWARD(byte_array)
76 PRIMITIVE_FORWARD(uninitialized_byte_array)
77 PRIMITIVE_FORWARD(displaced_alien)
78 PRIMITIVE_FORWARD(alien_address)
79 PRIMITIVE_FORWARD(set_slot)
80 PRIMITIVE_FORWARD(string_nth)
81 PRIMITIVE_FORWARD(set_string_nth_fast)
82 PRIMITIVE_FORWARD(set_string_nth_slow)
83 PRIMITIVE_FORWARD(resize_array)
84 PRIMITIVE_FORWARD(resize_string)
85 PRIMITIVE_FORWARD(array)
86 PRIMITIVE_FORWARD(all_instances)
87 PRIMITIVE_FORWARD(size)
88 PRIMITIVE_FORWARD(die)
89 PRIMITIVE_FORWARD(fopen)
90 PRIMITIVE_FORWARD(fgetc)
91 PRIMITIVE_FORWARD(fread)
92 PRIMITIVE_FORWARD(fputc)
93 PRIMITIVE_FORWARD(fwrite)
94 PRIMITIVE_FORWARD(fflush)
95 PRIMITIVE_FORWARD(ftell)
96 PRIMITIVE_FORWARD(fseek)
97 PRIMITIVE_FORWARD(fclose)
98 PRIMITIVE_FORWARD(wrapper)
99 PRIMITIVE_FORWARD(clone)
100 PRIMITIVE_FORWARD(string)
101 PRIMITIVE_FORWARD(array_to_quotation)
102 PRIMITIVE_FORWARD(quotation_xt)
103 PRIMITIVE_FORWARD(tuple)
104 PRIMITIVE_FORWARD(profiling)
105 PRIMITIVE_FORWARD(become)
106 PRIMITIVE_FORWARD(sleep)
107 PRIMITIVE_FORWARD(tuple_boa)
108 PRIMITIVE_FORWARD(callstack_to_array)
109 PRIMITIVE_FORWARD(innermost_stack_frame_executing)
110 PRIMITIVE_FORWARD(innermost_stack_frame_scan)
111 PRIMITIVE_FORWARD(set_innermost_stack_frame_quot)
112 PRIMITIVE_FORWARD(call_clear)
113 PRIMITIVE_FORWARD(resize_byte_array)
114 PRIMITIVE_FORWARD(dll_validp)
115 PRIMITIVE_FORWARD(unimplemented)
116 PRIMITIVE_FORWARD(jit_compile)
117 PRIMITIVE_FORWARD(load_locals)
118 PRIMITIVE_FORWARD(check_datastack)
119 PRIMITIVE_FORWARD(mega_cache_miss)
120 PRIMITIVE_FORWARD(lookup_method)
121 PRIMITIVE_FORWARD(reset_dispatch_stats)
122 PRIMITIVE_FORWARD(dispatch_stats)
123 PRIMITIVE_FORWARD(optimized_p)
124 PRIMITIVE_FORWARD(quot_compiled_p)
125 PRIMITIVE_FORWARD(vm_ptr)
126 PRIMITIVE_FORWARD(strip_stack_traces)
127 PRIMITIVE_FORWARD(callback)
128 PRIMITIVE_FORWARD(enable_gc_events)
129 PRIMITIVE_FORWARD(disable_gc_events)
130 PRIMITIVE_FORWARD(identity_hashcode)
131 PRIMITIVE_FORWARD(compute_identity_hashcode)
132
133 const primitive_type primitives[] = {
134         primitive_bignum_to_fixnum,
135         primitive_float_to_fixnum,
136         primitive_fixnum_to_bignum,
137         primitive_float_to_bignum,
138         primitive_fixnum_to_float,
139         primitive_bignum_to_float,
140         primitive_str_to_float,
141         primitive_float_to_str,
142         primitive_float_bits,
143         primitive_double_bits,
144         primitive_bits_float,
145         primitive_bits_double,
146         primitive_fixnum_add,
147         primitive_fixnum_subtract,
148         primitive_fixnum_multiply,
149         primitive_fixnum_divint,
150         primitive_fixnum_divmod,
151         primitive_fixnum_shift,
152         primitive_bignum_eq,
153         primitive_bignum_add,
154         primitive_bignum_subtract,
155         primitive_bignum_multiply,
156         primitive_bignum_divint,
157         primitive_bignum_mod,
158         primitive_bignum_divmod,
159         primitive_bignum_and,
160         primitive_bignum_or,
161         primitive_bignum_xor,
162         primitive_bignum_not,
163         primitive_bignum_shift,
164         primitive_bignum_less,
165         primitive_bignum_lesseq,
166         primitive_bignum_greater,
167         primitive_bignum_greatereq,
168         primitive_bignum_bitp,
169         primitive_bignum_log2,
170         primitive_byte_array_to_bignum,
171         primitive_float_eq,
172         primitive_float_add,
173         primitive_float_subtract,
174         primitive_float_multiply,
175         primitive_float_divfloat,
176         primitive_float_mod,
177         primitive_float_less,
178         primitive_float_lesseq,
179         primitive_float_greater,
180         primitive_float_greatereq,
181         /* The unordered comparison primitives don't have a non-optimizing
182         compiler implementation */
183         primitive_float_less,
184         primitive_float_lesseq,
185         primitive_float_greater,
186         primitive_float_greatereq,
187         primitive_word,
188         primitive_word_xt,
189         primitive_special_object,
190         primitive_set_special_object,
191         primitive_existsp,
192         primitive_minor_gc,
193         primitive_full_gc,
194         primitive_compact_gc,
195         primitive_save_image,
196         primitive_save_image_and_exit,
197         primitive_datastack,
198         primitive_retainstack,
199         primitive_callstack,
200         primitive_set_datastack,
201         primitive_set_retainstack,
202         primitive_set_callstack,
203         primitive_exit,
204         primitive_data_room,
205         primitive_code_room,
206         primitive_system_micros,
207         primitive_nano_count,
208         primitive_modify_code_heap,
209         primitive_dlopen,
210         primitive_dlsym,
211         primitive_dlclose,
212         primitive_byte_array,
213         primitive_uninitialized_byte_array,
214         primitive_displaced_alien,
215         primitive_alien_signed_cell,
216         primitive_set_alien_signed_cell,
217         primitive_alien_unsigned_cell,
218         primitive_set_alien_unsigned_cell,
219         primitive_alien_signed_8,
220         primitive_set_alien_signed_8,
221         primitive_alien_unsigned_8,
222         primitive_set_alien_unsigned_8,
223         primitive_alien_signed_4,
224         primitive_set_alien_signed_4,
225         primitive_alien_unsigned_4,
226         primitive_set_alien_unsigned_4,
227         primitive_alien_signed_2,
228         primitive_set_alien_signed_2,
229         primitive_alien_unsigned_2,
230         primitive_set_alien_unsigned_2,
231         primitive_alien_signed_1,
232         primitive_set_alien_signed_1,
233         primitive_alien_unsigned_1,
234         primitive_set_alien_unsigned_1,
235         primitive_alien_float,
236         primitive_set_alien_float,
237         primitive_alien_double,
238         primitive_set_alien_double,
239         primitive_alien_cell,
240         primitive_set_alien_cell,
241         primitive_alien_address,
242         primitive_set_slot,
243         primitive_string_nth,
244         primitive_set_string_nth_fast,
245         primitive_set_string_nth_slow,
246         primitive_resize_array,
247         primitive_resize_string,
248         primitive_array,
249         primitive_all_instances,
250         primitive_size,
251         primitive_die,
252         primitive_fopen,
253         primitive_fgetc,
254         primitive_fread,
255         primitive_fputc,
256         primitive_fwrite,
257         primitive_fflush,
258         primitive_ftell,
259         primitive_fseek,
260         primitive_fclose,
261         primitive_wrapper,
262         primitive_clone,
263         primitive_string,
264         primitive_array_to_quotation,
265         primitive_quotation_xt,
266         primitive_tuple,
267         primitive_profiling,
268         primitive_become,
269         primitive_sleep,
270         primitive_tuple_boa,
271         primitive_callstack_to_array,
272         primitive_innermost_stack_frame_executing,
273         primitive_innermost_stack_frame_scan,
274         primitive_set_innermost_stack_frame_quot,
275         primitive_call_clear,
276         primitive_resize_byte_array,
277         primitive_dll_validp,
278         primitive_unimplemented,
279         primitive_jit_compile,
280         primitive_load_locals,
281         primitive_check_datastack,
282         primitive_inline_cache_miss,
283         primitive_inline_cache_miss_tail,
284         primitive_mega_cache_miss,
285         primitive_lookup_method,
286         primitive_reset_dispatch_stats,
287         primitive_dispatch_stats,
288         primitive_optimized_p,
289         primitive_quot_compiled_p,
290         primitive_vm_ptr,
291         primitive_strip_stack_traces,
292         primitive_callback,
293         primitive_enable_gc_events,
294         primitive_disable_gc_events,
295         primitive_identity_hashcode,
296         primitive_compute_identity_hashcode,
297 };
298
299 }