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) {