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

Igor Veresov igor.veresov at oracle.com
Fri Apr 8 15:47:23 PDT 2011


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