Mercurial > hg > truffle
diff src/share/vm/interpreter/interpreterRuntime.cpp @ 3055:fecdb0a65fb2
runtime profiles exceptions at the call site
author | Lukas Stadler <lukas.stadler@jku.at> |
---|---|
date | Tue, 21 Jun 2011 11:13:52 +0200 |
parents | ed69575596ac |
children | 5ca1332171c8 |
line wrap: on
line diff
--- a/src/share/vm/interpreter/interpreterRuntime.cpp Mon Jun 20 11:47:57 2011 +0200 +++ b/src/share/vm/interpreter/interpreterRuntime.cpp Tue Jun 21 11:13:52 2011 +0200 @@ -458,6 +458,17 @@ } } while (should_repeat == true); + if (h_method->method_data() != NULL) { + ProfileData* pdata = h_method->method_data()->allocate_bci_to_data(current_bci); + if (pdata != NULL) { + int tstate0 = pdata->trap_state(); + int tstate1 = Deoptimization::trap_state_set_recompiled(tstate0, true); + if (tstate1 != tstate0) { + pdata->set_trap_state(tstate1); + } + } + } + // notify JVMTI of an exception throw; JVMTI will detect if this is a first // time throw or a stack unwinding throw and accordingly notify the debugger if (JvmtiExport::can_post_on_exceptions()) {