X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=src%2Fvm%2Fjit%2Fjit.cpp;h=f560457b08840242381ce2fcddc94418b7d67568;hb=029131e1a80f63317b3e122771c104a51baa95d8;hp=a8ac2b160a196c7f7c1873db3e80bf196fab7e86;hpb=a8452ad5b4beb2ba072802d53b3ba77f754b8e3b;p=cacao.git diff --git a/src/vm/jit/jit.cpp b/src/vm/jit/jit.cpp index a8ac2b160..f560457b0 100644 --- a/src/vm/jit/jit.cpp +++ b/src/vm/jit/jit.cpp @@ -1,6 +1,6 @@ /* src/vm/jit/jit.cpp - Just-In-Time compiler - Copyright (C) 1996-2005, 2006, 2007, 2008 + Copyright (C) 1996-2011 CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO This file is part of CACAO. @@ -43,6 +43,7 @@ #include "vm/class.hpp" #include "vm/global.h" #include "vm/globals.hpp" +#include "vm/hook.hpp" #include "vm/initialize.hpp" #include "vm/loader.hpp" #include "vm/method.hpp" @@ -65,10 +66,6 @@ #include "vm/jit/stack.h" #include "vm/jit/stubs.hpp" -#if defined(ENABLE_OPAGENT) -#include "vm/jit/oprofile-agent.hpp" -#endif - #include "vm/jit/allocator/simplereg.h" #if defined(ENABLE_LSRA) && !defined(ENABLE_SSA) # include "vm/jit/allocator/lsra.h" @@ -173,11 +170,6 @@ void jit_init(void) #else intrp_md_init(); #endif - -#if defined(ENABLE_OPAGENT) - if (opt_EnableOpagent) - OprofileAgent::initialize(); -#endif } @@ -189,10 +181,7 @@ void jit_init(void) void jit_close(void) { -#if defined(ENABLE_OPAGENT) - if (opt_EnableOpagent) - OprofileAgent::close(); -#endif + /* nop */ } @@ -401,10 +390,8 @@ u1 *jit_compile(methodinfo *m) compilingtime_stop(); #endif -#if defined(ENABLE_OPAGENT) - if (opt_EnableOpagent) - OprofileAgent::newmethod(m); -#endif + // Hook point just after code was generated. + Hook::jit_generated(m, m->code); /* leave the monitor */ @@ -512,10 +499,8 @@ u1 *jit_recompile(methodinfo *m) compilingtime_stop(); #endif -#if defined(ENABLE_OPAGENT) - if (opt_EnableOpagent) - OprofileAgent::newmethod(m); -#endif + // Hook point just after code was generated. + Hook::jit_generated(m, m->code); DEBUG_JIT_COMPILEVERBOSE("Recompiling done: "); @@ -1051,9 +1036,14 @@ void *jit_compile_handle(methodinfo *m, void *pv, void *ra, void *mptr) *p = (uintptr_t) newpv; +#if !defined(JIT_COMPILER_VIA_SIGNAL) /* Flush both caches. */ + /* This might have been necessary before we had the compiler trap, but now + * it's not. I don't care enough about the (broken) non-signal case to + * investigate this. */ md_cacheflush(pa, SIZEOF_VOID_P); +#endif return newpv; }