Mercurial > hg > graal-jvmci-8
comparison src/share/vm/runtime/biasedLocking.cpp @ 14443:3205e78d8193
8029396: PPC64 (part 212): Several memory ordering fixes in C-code.
Summary: memory ordering fixes in GC and other runtime code showing on PPC64.
Reviewed-by: kvn, coleenp
author | goetz |
---|---|
date | Mon, 02 Dec 2013 10:26:14 +0100 |
parents | 190899198332 |
children | 3df21373e577 |
comparison
equal
deleted
inserted
replaced
14442:1174c8abbdb6 | 14443:3205e78d8193 |
---|---|
231 } | 231 } |
232 if (highest_lock != NULL) { | 232 if (highest_lock != NULL) { |
233 // Fix up highest lock to contain displaced header and point | 233 // Fix up highest lock to contain displaced header and point |
234 // object at it | 234 // object at it |
235 highest_lock->set_displaced_header(unbiased_prototype); | 235 highest_lock->set_displaced_header(unbiased_prototype); |
236 // Reset object header to point to displaced mark | 236 // Reset object header to point to displaced mark. |
237 obj->set_mark(markOopDesc::encode(highest_lock)); | 237 // Must release storing the lock address for platforms without TSO |
238 // ordering (e.g. ppc). | |
239 obj->release_set_mark(markOopDesc::encode(highest_lock)); | |
238 assert(!obj->mark()->has_bias_pattern(), "illegal mark state: stack lock used bias bit"); | 240 assert(!obj->mark()->has_bias_pattern(), "illegal mark state: stack lock used bias bit"); |
239 if (TraceBiasedLocking && (Verbose || !is_bulk)) { | 241 if (TraceBiasedLocking && (Verbose || !is_bulk)) { |
240 tty->print_cr(" Revoked bias of currently-locked object"); | 242 tty->print_cr(" Revoked bias of currently-locked object"); |
241 } | 243 } |
242 } else { | 244 } else { |