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