mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-26 22:34:27 +02:00
6833129: specjvm98 fails with NullPointerException in the compiler with -XX:DeoptimizeALot
Developed a reexecute logic for the interpreter to reexecute the bytecode when deopt happens Reviewed-by: kvn, never, jrose, twisti
This commit is contained in:
parent
f2ea22a547
commit
ae00753bf7
29 changed files with 465 additions and 241 deletions
|
@ -1229,10 +1229,13 @@ void java_lang_Throwable::fill_in_stack_trace(Handle throwable, TRAPS) {
|
|||
|
||||
// Compiled java method case.
|
||||
if (decode_offset != 0) {
|
||||
bool dummy_reexecute = false;
|
||||
DebugInfoReadStream stream(nm, decode_offset);
|
||||
decode_offset = stream.read_int();
|
||||
method = (methodOop)nm->oop_at(stream.read_int());
|
||||
bci = stream.read_bci();
|
||||
//fill_in_stack_trace does not need the reexecute information which is designed
|
||||
//for the deopt to reexecute
|
||||
bci = stream.read_bci_and_reexecute(dummy_reexecute);
|
||||
} else {
|
||||
if (fr.is_first_frame()) break;
|
||||
address pc = fr.pc();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue