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

jamsheed jamsheed.c.m at oracle.com
Thu Oct 12 10:33:34 UTC 2017


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-runtime-dev mailing list