diff -r e9b91fd07263 -r 2685ea97b89f src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp --- a/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp Fri Dec 09 06:46:57 2011 -0800 +++ b/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp Fri Dec 09 11:29:05 2011 -0800 @@ -2455,7 +2455,7 @@ op->obj()->as_register() == O0 && op->klass()->as_register() == G5, "must be"); if (op->init_check()) { - __ ld(op->klass()->as_register(), + __ ldub(op->klass()->as_register(), instanceKlass::init_state_offset_in_bytes() + sizeof(oopDesc), op->tmp1()->as_register()); add_debug_info_for_null_check_here(op->stub()->info());