src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp
changeset 58407 b14643d898d3
parent 58273 08a5148e7c4e
child 58679 9c3209ff7550
child 58693 3f35a9efd7de
equal deleted inserted replaced
58406:3764371e022f 58407:b14643d898d3
   269 
   269 
   270   bool borrow_reg = (tmp == noreg);
   270   bool borrow_reg = (tmp == noreg);
   271   if (borrow_reg) {
   271   if (borrow_reg) {
   272     // No free registers available. Make one useful.
   272     // No free registers available. Make one useful.
   273     tmp = LP64_ONLY(rscratch1) NOT_LP64(rdx);
   273     tmp = LP64_ONLY(rscratch1) NOT_LP64(rdx);
       
   274     if (tmp == dst) {
       
   275       tmp = LP64_ONLY(rscratch2) NOT_LP64(rcx);
       
   276     }
   274     __ push(tmp);
   277     __ push(tmp);
   275   }
   278   }
       
   279 
       
   280   assert_different_registers(dst, tmp);
   276 
   281 
   277   Label done;
   282   Label done;
   278   __ movptr(tmp, Address(dst, oopDesc::mark_offset_in_bytes()));
   283   __ movptr(tmp, Address(dst, oopDesc::mark_offset_in_bytes()));
   279   __ notptr(tmp);
   284   __ notptr(tmp);
   280   __ testb(tmp, markWord::marked_value);
   285   __ testb(tmp, markWord::marked_value);