Mercurial > hg > truffle
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); |