review(M): 7034967: C1: assert(false) failed: error (assembler_sparc.cpp:2043)
Vladimir Kozlov
vladimir.kozlov at oracle.com
Fri Apr 8 16:10:19 PDT 2011
Looks good.
Vladimir
Igor Veresov wrote:
> Thanks!
>
> Webrev updated.
>
> igor
>
> On 4/8/11 3:57 PM, Vladimir Kozlov wrote:
>> Looks good.
>>
>> c1_CodeStubs_x86.cpp: add explanation (as you explained me) why small
>> code is needed here:
>> + // Load without verification to keep code size small. Also, we know
>> it's not null.
>>
>> c1_LIRGenerator.cpp:
>> + // ptr cannot cannot be an object because we use this barrier for array
>> ^ repeated
>>
>> Vladimir
>>
>> Igor Veresov wrote:
>>> The assert is a verification failure originated from
>>> LIR_Assembler::emit_unwind_handler() complaining that the exception
>>> oop is null. The verification code was invalid, because in
>>> C1_MacroAssembler::verify_not_null_oop() we used br_zero() to check
>>> for null, which actually checks only the least significant 32bits. Now
>>> br_notnull is used instead.
>>>
>>> Also, I found that VerifyOops didn't work with 64bit C1 (both x64 and
>>> sparc), which is also fixed.
>>>
>>>
>>> Webrev: http://cr.openjdk.java.net/~iveresov/7034967/webrev.00/
>>>
>>>
>>> Thanks,
>>> igor
>
More information about the hotspot-compiler-dev
mailing list