]> gitweb.factorcode.org Git - factor.git/blob - vm/run.cpp
dfff8f2f2d30e4c662a590f62807de8e15eda8fa
[factor.git] / vm / run.cpp
1 #include "master.hpp"
2
3 namespace factor
4 {
5
6 void factor_vm::primitive_exit()
7 {
8         exit(to_fixnum(ctx->pop()));
9 }
10
11 void factor_vm::primitive_system_micros()
12 {
13         ctx->push(from_unsigned_8(system_micros()));
14 }
15
16 void factor_vm::primitive_nano_count()
17 {
18         u64 nanos = nano_count();
19         if(nanos < last_nano_count) critical_error("Monotonic counter decreased",0);
20         last_nano_count = nanos;
21         ctx->push(from_unsigned_8(nanos));
22 }
23
24 void factor_vm::primitive_sleep()
25 {
26         sleep_nanos(to_unsigned_8(ctx->pop()));
27 }
28
29 }