[10] RFR: [AOT] assert(false) failed: DEBUG MESSAGE: InterpreterMacroAssembler::call_VM_base: last_sp != NULL

Vladimir Kozlov vladimir.kozlov at oracle.com
Thu Oct 12 18:50:45 UTC 2017


+1

Thanks,
Vladimir

On 10/12/17 11:21 AM, dean.long at oracle.com wrote:
> Looks good.
> 
> dl
> 
> 
> On 10/12/17 3:33 AM, jamsheed wrote:
>> Dean,
>>
>> Thank you for the review, yes there is check for extended sp equality too. made the change
>>
>> http://cr.openjdk.java.net/~jcm/8168712/webrev.02/
>>
>> Best regards,
>>
>> Jamsheed
>>
>>
>> On Thursday 12 October 2017 03:28 AM, dean.long at oracle.com wrote:
>>> For AARCH64 in templateTable_arm.cpp, how about using the same code as generate_deopt_entry_for?
>>>
>>>   __ restore_sp_after_call(Rtemp);  // Restore SP to extended SP
>>>   __ restore_stack_top();
>>>
>>>
>>> dl
>>>
>>> On 10/11/17 5:48 AM, jamsheed wrote:
>>>> Hi Vladimir,
>>>>
>>>> Thank you for pointing this.
>>>>
>>>> revised webrev: http://cr.openjdk.java.net/~jcm/8168712/webrev.02/
>>>>
>>>> Best Regards,
>>>>
>>>> Jamsheed
>>>>
>>>>
>>>> On Tuesday 10 October 2017 08:41 PM, Vladimir Kozlov wrote:
>>>>> Why you added !defined(AARCH64) in templateTable_arm.cpp? Is only 32-bit affected?
>>>>>
>>>>> Thanks,
>>>>> Vladimir
>>>>>
>>>>> On 9/13/17 11:54 PM, Dean Long wrote:
>>>>>> It looks like you accidentally dropped hotspot-compiler-dev at openjdk.java.net when you added runtime.
>>>>>>
>>>>>> dl
>>>>>>
>>>>>>
>>>>>> On 9/13/2017 11:21 PM, jamsheed wrote:
>>>>>>> (adding runtime list for inputs)
>>>>>>>
>>>>>>> On Monday 11 September 2017 11:43 PM, jamsheed wrote:
>>>>>>>> brief desc: special handling of Object.<init> in TemplateInterpreter::deopt_reexecute_entry
>>>>>>>>
>>>>>>>> required last_sp to be reset explicitly in normal return path
>>>>>>>>
>>>>>>>> address TemplateInterpreter::deopt_reexecute_entry(Method* method, address bcp) {
>>>>>>>>   assert(method->contains(bcp), "just checkin'");
>>>>>>>>   Bytecodes::Code code   = Bytecodes::java_code_at(method, bcp);
>>>>>>>>   if (code == Bytecodes::_return) {
>>>>>>>>     // This is used for deopt during registration of finalizers
>>>>>>>>     // during Object.<init>.  We simply need to resume execution at
>>>>>>>>     // the standard return vtos bytecode to pop the frame normally.
>>>>>>>>     // reexecuting the real bytecode would cause double registration
>>>>>>>>     // of the finalizable object.
>>>>>>>>     return _normal_table.entry(Bytecodes::_return).entry(vtos); 
>>>>>>>
>>>>>>> last_sp ! = null not an issue for this case, so i skip the assert in debug build
>>>>>>>
>>>>>>> http://cr.openjdk.java.net/~jcm/8168712/webrev.01/
>>>>>>>
>>>>>>> Please review.
>>>>>>>
>>>>>>> Best Regards,
>>>>>>> Jamsheed
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>
>>>
>>
> 


More information about the hotspot-compiler-dev mailing list