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 09:14:56 UTC 2016


Thank you Markus!

/R

On 06/15, Markus Gronlund wrote:
> Hi Rickard,
> 
> Looks good.
> 
> Markus
> 
> -----Original Message-----
> From: Rickard Bäckman 
> Sent: den 15 juni 2016 09:55
> To: hotspot-compiler-dev at openjdk.java.net
> Subject: RFR(XXS): 8139379: Tests fail with assert(nm->insts_contains(original_pc)) failed: original PC must be in nmethod
> 
> 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