< prev index next >

src/hotspot/cpu/s390/macroAssembler_s390.cpp

Print this page
@@ -3264,13 +3264,14 @@
    Register monitor_tagged = displacedHeader; // Tagged with markWord::monitor_value.
    // The object's monitor m is unlocked iff m->owner is null,
    // otherwise m->owner may contain a thread or a stack address.
  
    // Try to CAS m->owner from null to current thread.
-   // If m->owner is null, then csg succeeds and sets m->owner=THREAD and CR=EQ.
+   // If m->owner is null, then csg succeeds and sets m->owner=THREAD_ID and CR=EQ.
    // Otherwise, register zero is filled with the current owner.
    z_lghi(zero, 0);
+   z_csg(zero, Z_R1_scratch, OM_OFFSET_NO_MONITOR_VALUE_TAG(owner), monitor_tagged);
    z_csg(zero, Z_thread, OM_OFFSET_NO_MONITOR_VALUE_TAG(owner), monitor_tagged);
    if (LockingMode != LM_LIGHTWEIGHT) {
      // Store a non-null value into the box.
      z_stg(box, BasicLock::displaced_header_offset_in_bytes(), box);
    }
< prev index next >