hotspot/src/cpu/x86/vm/c1_CodeStubs_x86.cpp
changeset 9120 3606dd709168
parent 8729 cdb7525d39cb
child 9182 ab3e9e0925ad
equal deleted inserted replaced
9119:6b04b8a49ea8 9120:3606dd709168
   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     Register tmp2 = rbx;
   316     Register tmp2 = rbx;
   317     __ push(tmp);
   317     __ push(tmp);
   318     __ push(tmp2);
   318     __ push(tmp2);
   319     __ load_heap_oop(tmp2, Address(_obj, java_lang_Class::klass_offset_in_bytes()));
   319     // Load without verification to keep code size small. We need it because
       
   320     // begin_initialized_entry_offset has to fit in a byte. Also, we know it's not null.
       
   321     __ load_heap_oop_not_null(tmp2, Address(_obj, java_lang_Class::klass_offset_in_bytes()));
   320     __ get_thread(tmp);
   322     __ get_thread(tmp);
   321     __ cmpptr(tmp, Address(tmp2, instanceKlass::init_thread_offset_in_bytes() + sizeof(klassOopDesc)));
   323     __ cmpptr(tmp, Address(tmp2, instanceKlass::init_thread_offset_in_bytes() + sizeof(klassOopDesc)));
   322     __ pop(tmp2);
   324     __ pop(tmp2);
   323     __ pop(tmp);
   325     __ pop(tmp);
   324     __ jcc(Assembler::notEqual, call_patch);
   326     __ jcc(Assembler::notEqual, call_patch);