RFR(XXS): 8139379: Tests fail with assert(nm->insts_contains(original_pc)) failed: original PC must be in nmethod
Rickard Bäckman
rickard.backman at oracle.com
Wed Jun 15 07:55:18 UTC 2016
Hi,
can I please have reviews for this small change?
Looking at core files from the asserts it seems that we called
frame::verify_deopt_original_pc() from frame::adjust_unextended_sp()
even though the pc is no longer at the deopt entry for the method.
The deopt for C2 methods on x86-64 looks like:
0x0000 call 0x0005
0x0005 sub [esp], 5
0x000a jmp ...
so when the pc is after the call the offset where the original pc is
retrieved is no longer correct.
For methods compiled with a JVMCI compiler the deopt_entry is also valid
at entry + 5. Adding a check for this should fix the problem.
Webrev: cr.openjdk.java.net/~rbackman/8139379
Bug: https://bugs.openjdk.java.net/browse/JDK-8139379
Thanks
/R
More information about the hotspot-compiler-dev
mailing list