equal
deleted
inserted
replaced
311 if (CommentedAssembly) { |
311 if (CommentedAssembly) { |
312 __ block_comment(" being_initialized check"); |
312 __ block_comment(" being_initialized check"); |
313 } |
313 } |
314 assert(_obj != noreg, "must be a valid register"); |
314 assert(_obj != noreg, "must be a valid register"); |
315 Register tmp = rax; |
315 Register tmp = rax; |
316 if (_obj == tmp) tmp = rbx; |
316 Register tmp2 = rbx; |
317 __ push(tmp); |
317 __ push(tmp); |
|
318 __ push(tmp2); |
|
319 __ movptr(tmp2, Address(_obj, java_lang_Class::klass_offset_in_bytes())); |
318 __ get_thread(tmp); |
320 __ get_thread(tmp); |
319 __ cmpptr(tmp, Address(_obj, instanceKlass::init_thread_offset_in_bytes() + sizeof(klassOopDesc))); |
321 __ cmpptr(tmp, Address(tmp2, instanceKlass::init_thread_offset_in_bytes() + sizeof(klassOopDesc))); |
|
322 __ pop(tmp2); |
320 __ pop(tmp); |
323 __ pop(tmp); |
321 __ jcc(Assembler::notEqual, call_patch); |
324 __ jcc(Assembler::notEqual, call_patch); |
322 |
325 |
323 // access_field patches may execute the patched code before it's |
326 // access_field patches may execute the patched code before it's |
324 // copied back into place so we need to jump back into the main |
327 // copied back into place so we need to jump back into the main |