RFR: 8133951: Zero interpreter asserts in stubRoutines.cpp

Coleen Phillimore coleen.phillimore at oracle.com
Wed Aug 19 18:52:32 UTC 2015


Thanks!
Coleen

On 8/19/15 2:50 PM, Vladimir Kozlov wrote:
> Looks good.
>
> Thanks,
> Vladimir
>
> On 8/19/15 11:27 AM, Coleen Phillimore wrote:
>> Yes, this works also and is more minimal. Thanks!
>>
>> http://cr.openjdk.java.net/~coleenp/8133951.02/
>>
>> Coleen
>>
>> On 8/19/15 2:15 PM, Vladimir Kozlov wrote:
>>> I found it in stubRoutines_zero.hpp:
>>>
>>> enum platform_dependent_constants {
>>> code_size1 = 0, // The assembler will fail with a guarantee
>>> code_size2 = 0 // if these are too small. Simply increase
>>> }; // them if that happens.
>>>
>>> That is why zero hits assert.
>>>
>>> I think asserts should be relaxed as:
>>>
>>> assert(code_size1 == 0 || buffer.insts_remaining() > 200, "increase
>>> code_size1");
>>>
>>> assert(code_size2 == 0 || buffer.insts_remaining() > 200, "increase
>>> code_size2");
>>>
>>> Thanks,
>>> Vladimir
>>>
>>> On 8/19/15 10:57 AM, Vladimir Kozlov wrote:
>>>> Insts sizes are set by CodeBuffer constructor which is called before
>>>> StubGenerator_generate:
>>>>
>>>>      CodeBuffer buffer(_code1);
>>>>      StubGenerator_generate(&buffer, false);
>>>>
>>>> See CodeBuffer::initialize() and CodeSection::initialize(). So if
>>>> nothing generated insts_remaining() should be code_size1 value. Why it
>>>> is not?
>>>>
>>>> Thanks,
>>>> Vladimir
>>>>
>>>> On 8/19/15 10:45 AM, Coleen Phillimore wrote:
>>>>> Summary: Allow zero sized code buffer when checking if there's enough
>>>>> remaining size
>>>>>
>>>>> open webrev at http://cr.openjdk.java.net/~coleenp/8133951/
>>>>> bug link https://bugs.openjdk.java.net/browse/JDK-8133951
>>>>>
>>>>> Tested with java -version of zero and runThese -jck tests.
>>>>>
>>>>> Thanks,
>>>>> Coleen
>>



More information about the hotspot-dev mailing list