aboutsummaryrefslogtreecommitdiff
path: root/src/share/vm/interpreter/templateInterpreter.hpp
diff options
context:
space:
mode:
authorcfang <none@none>2009-07-31 17:12:33 -0700
committercfang <none@none>2009-07-31 17:12:33 -0700
commit75461d045b0701090b9e0d3c77e5784c6f7f70f6 (patch)
tree237c92bf08214fd6aaec9ad1a4004ff072a1b2fe /src/share/vm/interpreter/templateInterpreter.hpp
parentc99523898df7f76db1c6a26b29616a42fe12f6ae (diff)
6833129: specjvm98 fails with NullPointerException in the compiler with -XX:DeoptimizeALot
Summary: developed a reexecute logic for the interpreter to reexecute the bytecode when deopt happens Reviewed-by: kvn, never, jrose, twisti
Diffstat (limited to 'src/share/vm/interpreter/templateInterpreter.hpp')
-rw-r--r--src/share/vm/interpreter/templateInterpreter.hpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/share/vm/interpreter/templateInterpreter.hpp b/src/share/vm/interpreter/templateInterpreter.hpp
index 2c78e31fc..7de665b88 100644
--- a/src/share/vm/interpreter/templateInterpreter.hpp
+++ b/src/share/vm/interpreter/templateInterpreter.hpp
@@ -171,11 +171,15 @@ class TemplateInterpreter: public AbstractInterpreter {
static void ignore_safepoints(); // ignores safepoints
// Deoptimization support
- static address continuation_for(methodOop method,
- address bcp,
- int callee_parameters,
- bool is_top_frame,
- bool& use_next_mdp);
+ // Compute the entry address for continuation after
+ static address deopt_continue_after_entry(methodOop method,
+ address bcp,
+ int callee_parameters,
+ bool is_top_frame);
+ // Deoptimization should reexecute this bytecode
+ static bool bytecode_should_reexecute(Bytecodes::Code code);
+ // Compute the address for reexecution
+ static address deopt_reexecute_entry(methodOop method, address bcp);
#include "incls/_templateInterpreter_pd.hpp.incl"