diff --git a/vm/cpu-x86.32.S b/vm/cpu-x86.32.S index 1618171b5b..a486fed29d 100644 --- a/vm/cpu-x86.32.S +++ b/vm/cpu-x86.32.S @@ -49,13 +49,14 @@ DEF(long long,read_timestamp_counter,(void)): rdtsc ret -DEF(void,primitive_inline_cache_miss,(void)): +DEF(void,primitive_inline_cache_miss,(void *vm)): mov (%esp),%ebx -DEF(void,primitive_inline_cache_miss_tail,(void)): +DEF(void,primitive_inline_cache_miss_tail,(void *vm)): sub $8,%esp + push %eax /* push vm ptr */ push %ebx call MANGLE(inline_cache_miss) - add $12,%esp + add $16,%esp jmp *%eax DEF(void,get_sse_env,(void*)): diff --git a/vm/inline_cache.cpp b/vm/inline_cache.cpp index 35479c29f5..4c77a83a93 100755 --- a/vm/inline_cache.cpp +++ b/vm/inline_cache.cpp @@ -245,9 +245,10 @@ void *factorvm::inline_cache_miss(cell return_address) return xt; } -VM_C_API void *inline_cache_miss(cell return_address) +VM_C_API void *inline_cache_miss(cell return_address, factorvm *myvm) { - return vm->inline_cache_miss(return_address); + ASSERTVM(); + return VM_PTR->inline_cache_miss(return_address); } diff --git a/vm/inline_cache.hpp b/vm/inline_cache.hpp index 5b1bbdf516..02ac43dce8 100644 --- a/vm/inline_cache.hpp +++ b/vm/inline_cache.hpp @@ -5,6 +5,6 @@ PRIMITIVE(inline_cache_stats); PRIMITIVE(inline_cache_miss); PRIMITIVE(inline_cache_miss_tail); -VM_C_API void *inline_cache_miss(cell return_address); +VM_C_API void *inline_cache_miss(cell return_address, factorvm *vm); }