review(M): 7034967: C1: assert(false) failed: error (assembler_sparc.cpp:2043)

Vladimir Kozlov vladimir.kozlov at oracle.com
Fri Apr 8 15:57:43 PDT 2011


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