Mercurial > hg > truffle
comparison src/share/vm/opto/bytecodeInfo.cpp @ 900:9987d9d5eb0e
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
author | cfang |
---|---|
date | Fri, 31 Jul 2009 17:12:33 -0700 |
parents | be93aad57795 |
children | 15bbd3f505c0 |
comparison
equal
deleted
inserted
replaced
899:55cb84cd1247 | 900:9987d9d5eb0e |
---|---|
35 NOT_PRODUCT(_count_inlines = 0;) | 35 NOT_PRODUCT(_count_inlines = 0;) |
36 if (_caller_jvms != NULL) { | 36 if (_caller_jvms != NULL) { |
37 // Keep a private copy of the caller_jvms: | 37 // Keep a private copy of the caller_jvms: |
38 _caller_jvms = new (C) JVMState(caller_jvms->method(), caller_tree->caller_jvms()); | 38 _caller_jvms = new (C) JVMState(caller_jvms->method(), caller_tree->caller_jvms()); |
39 _caller_jvms->set_bci(caller_jvms->bci()); | 39 _caller_jvms->set_bci(caller_jvms->bci()); |
40 assert(!caller_jvms->should_reexecute(), "there should be no reexecute bytecode with inlining"); | |
40 } | 41 } |
41 assert(_caller_jvms->same_calls_as(caller_jvms), "consistent JVMS"); | 42 assert(_caller_jvms->same_calls_as(caller_jvms), "consistent JVMS"); |
42 assert((caller_tree == NULL ? 0 : caller_tree->inline_depth() + 1) == inline_depth(), "correct (redundant) depth parameter"); | 43 assert((caller_tree == NULL ? 0 : caller_tree->inline_depth() + 1) == inline_depth(), "correct (redundant) depth parameter"); |
43 assert(caller_bci == this->caller_bci(), "correct (redundant) bci parameter"); | 44 assert(caller_bci == this->caller_bci(), "correct (redundant) bci parameter"); |
44 if (UseOldInlining) { | 45 if (UseOldInlining) { |