diff --git a/src/x86.h b/src/x86.h index d746083c3b..6a6f0e0935 100644 --- a/src/x86.h +++ b/src/x86.h @@ -58,11 +58,25 @@ dynamicCall(void* function, uintptr_t* arguments, uint8_t*, # define THREAD_REGISTER(context) (context->uc_mcontext.gregs[REG_RBX]) extern "C" uint64_t +#ifdef __WINDOWS__ +vmNativeCall(void* function, void* stack, unsigned stackSize, + unsigned returnType); +#elif defined __LINUX__ + vmNativeCall(void* function, void* stack, unsigned stackSize, void* gprTable, void* sseTable, unsigned returnType); +#endif //def __WINDOWS__ namespace vm { +#ifdef __WINDOWS__ +inline uint64_t +dynamicCall(void* function, uint64_t* arguments, UNUSED uint8_t* argumentTypes, + unsigned argumentCount, unsigned, unsigned returnType) +{ + return vmNativeCall(function, arguments, argumentCount, returnType); +} +#elif defined __LINUX__ inline uint64_t dynamicCall(void* function, uint64_t* arguments, uint8_t* argumentTypes, unsigned argumentCount, unsigned, unsigned returnType) @@ -103,6 +117,7 @@ dynamicCall(void* function, uint64_t* arguments, uint8_t* argumentTypes, (gprIndex ? gprTable : 0), (sseIndex ? sseTable : 0), returnType); } +#endif //def __WINDOWS__ } // namespace vm