3348 //__ sll(Roffset, LogBytesPerWord, Roffset); // executed in delay slot |
3348 //__ sll(Roffset, LogBytesPerWord, Roffset); // executed in delay slot |
3349 __ add(Roffset, sizeof(constantPoolOopDesc), Roffset); |
3349 __ add(Roffset, sizeof(constantPoolOopDesc), Roffset); |
3350 __ ld_ptr(Rscratch, Roffset, RinstanceKlass); |
3350 __ ld_ptr(Rscratch, Roffset, RinstanceKlass); |
3351 |
3351 |
3352 // make sure klass is fully initialized: |
3352 // make sure klass is fully initialized: |
3353 __ ld(RinstanceKlass, instanceKlass::init_state_offset_in_bytes() + sizeof(oopDesc), G3_scratch); |
3353 __ ldub(RinstanceKlass, instanceKlass::init_state_offset_in_bytes() + sizeof(oopDesc), G3_scratch); |
3354 __ cmp(G3_scratch, instanceKlass::fully_initialized); |
3354 __ cmp(G3_scratch, instanceKlass::fully_initialized); |
3355 __ br(Assembler::notEqual, false, Assembler::pn, slow_case); |
3355 __ br(Assembler::notEqual, false, Assembler::pn, slow_case); |
3356 __ delayed()->ld(RinstanceKlass, Klass::layout_helper_offset_in_bytes() + sizeof(oopDesc), Roffset); |
3356 __ delayed()->ld(RinstanceKlass, Klass::layout_helper_offset_in_bytes() + sizeof(oopDesc), Roffset); |
3357 |
3357 |
3358 // get instance_size in instanceKlass (already aligned) |
3358 // get instance_size in instanceKlass (already aligned) |