]> gitweb.factorcode.org Git - factor.git/blob - vm/primitives.hpp
5eefc19e016346a346bdd2372a8a123b0fcd6f56
[factor.git] / vm / primitives.hpp
1 namespace factor
2 {
3
4 #if defined(FACTOR_X86)
5   extern "C" __attribute__ ((regparm (1))) typedef void (*primitive_type)(void *myvm);
6   #define PRIMITIVE(name) extern "C" __attribute__ ((regparm (1)))  void primitive_##name(void *myvm)
7   #define PRIMITIVE_GETVM() ((factorvm*)myvm)
8 #else
9   extern "C" typedef void (*primitive_type)(void *myvm);
10   #define PRIMITIVE(name) extern "C" void primitive_##name(void *myvm)
11   #define PRIMITIVE_GETVM() vm
12 #endif
13
14 extern const primitive_type primitives[];
15 #define PRIMITIVE_OVERFLOW_GETVM() vm
16
17 #define VM_PTR vm
18 #define ASSERTVM() 
19 }