RFR: 8146416: java.lang.OutOfMemoryError triggers: assert(current_bci == 0) failed: bci isn't zero for do_not_unlock_if_synchronized
Jamsheed C m
jamsheed.c.m at oracle.com
Thu Jun 2 08:46:57 UTC 2016
On 6/2/2016 1:47 PM, Roland Westrelin wrote:
>>> So given uncommon traps are unaffected and only deopts are, isn't the
>>> change below good enough?
>> uncommon traps are affected in JVMCI case. pending exception check is
>> after jvmci lock code.
> That code in TemplateInterpreterGenerator::generate_deopt_entry_for()?
>
> #if INCLUDE_JVMCI
> // Check if we need to take lock at entry of synchronized method.
> if (UseJVMCICompiler) {
> Label L;
> __ cmpb(Address(thread, JavaThread::pending_monitorenter_offset()), 0);
> __ jcc(Assembler::zero, L);
> // Clear flag.
> __ movb(Address(thread, JavaThread::pending_monitorenter_offset()), 0);
> // Satisfy calling convention for lock_method().
> __ get_method(rbx);
> // Take lock.
> lock_method();
> __ bind(L);
> }
> #endif
Yes.
Best Regards,
Jamsheed
>
> Roland.
More information about the hotspot-compiler-dev
mailing list