RFR: 8133951: Zero interpreter asserts in stubRoutines.cpp

Vladimir Kozlov vladimir.kozlov at oracle.com
Wed Aug 19 18:15:33 UTC 2015


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