equal
deleted
inserted
replaced
299 // initializer is being run so we emit a test which can be used to |
299 // initializer is being run so we emit a test which can be used to |
300 // check that this code is being executed by the initializing |
300 // check that this code is being executed by the initializing |
301 // thread. |
301 // thread. |
302 assert(_obj != noreg, "must be a valid register"); |
302 assert(_obj != noreg, "must be a valid register"); |
303 assert(_oop_index >= 0, "must have oop index"); |
303 assert(_oop_index >= 0, "must have oop index"); |
304 __ ld_ptr(_obj, java_lang_Class::klass_offset_in_bytes(), G3); |
304 __ load_heap_oop(_obj, java_lang_Class::klass_offset_in_bytes(), G3); |
305 __ ld_ptr(G3, instanceKlass::init_thread_offset_in_bytes() + sizeof(klassOopDesc), G3); |
305 __ ld_ptr(G3, instanceKlass::init_thread_offset_in_bytes() + sizeof(klassOopDesc), G3); |
306 __ cmp(G2_thread, G3); |
306 __ cmp(G2_thread, G3); |
307 __ br(Assembler::notEqual, false, Assembler::pn, call_patch); |
307 __ br(Assembler::notEqual, false, Assembler::pn, call_patch); |
308 __ delayed()->nop(); |
308 __ delayed()->nop(); |
309 |
309 |