From dd1cf25093a4b1dde8384b0c8ebda8f3059ae52d Mon Sep 17 00:00:00 2001 From: Phil Dawes Date: Fri, 4 Sep 2009 21:11:13 +0100 Subject: [PATCH] Added vm passing to inline_cache_miss x86.32 asm --- vm/cpu-x86.32.S | 7 ++++--- vm/inline_cache.cpp | 5 +++-- vm/inline_cache.hpp | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) 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); }