comparison src/share/vm/runtime/deoptimization.cpp @ 8328:6b6cbd8b8914

Support deoptimizing before the entry to a synchronized method.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Sun, 17 Mar 2013 21:20:39 +0100
parents b8f261ba79c6
children 9f9aaa65294e
comparison
equal deleted inserted replaced
8327:e24fb475bdec 8328:6b6cbd8b8914
1314 tty->print_cr(" bci=%d pc=%d, relative_pc=%d, method=%s", trap_scope->bci(), fr.pc(), fr.pc() - nm->code_begin(), trap_scope->method()->name()->as_C_string()); 1314 tty->print_cr(" bci=%d pc=%d, relative_pc=%d, method=%s", trap_scope->bci(), fr.pc(), fr.pc() - nm->code_begin(), trap_scope->method()->name()->as_C_string());
1315 } 1315 }
1316 1316
1317 methodHandle trap_method = trap_scope->method(); 1317 methodHandle trap_method = trap_scope->method();
1318 int trap_bci = trap_scope->bci(); 1318 int trap_bci = trap_scope->bci();
1319 if (trap_bci == SynchronizationEntryBCI) {
1320 trap_bci = 0;
1321 Thread::current()->set_pending_monitorenter(true);
1322 }
1319 Bytecodes::Code trap_bc = trap_method->java_code_at(trap_bci); 1323 Bytecodes::Code trap_bc = trap_method->java_code_at(trap_bci);
1320 1324
1321 if (trap_scope->rethrow_exception()) { 1325 if (trap_scope->rethrow_exception()) {
1322 if (PrintDeoptimizationDetails) { 1326 if (PrintDeoptimizationDetails) {
1323 tty->print_cr("Exception to be rethrown in the interpreter for method %s::%s at bci %d", trap_method->method_holder()->name()->as_C_string(), trap_method->name()->as_C_string(), trap_bci); 1327 tty->print_cr("Exception to be rethrown in the interpreter for method %s::%s at bci %d", trap_method->method_holder()->name()->as_C_string(), trap_method->name()->as_C_string(), trap_bci);