Mercurial > hg > truffle
comparison src/share/vm/oops/method.hpp @ 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 | f50418dfb1b7 |
children | 8a9bb7821e28 9428a0b94204 |
comparison
equal
deleted
inserted
replaced
14442:1174c8abbdb6 | 14443:3205e78d8193 |
---|---|
348 MethodData* method_data() const { | 348 MethodData* method_data() const { |
349 return _method_data; | 349 return _method_data; |
350 } | 350 } |
351 | 351 |
352 void set_method_data(MethodData* data) { | 352 void set_method_data(MethodData* data) { |
353 _method_data = data; | 353 // The store into method must be released. On platforms without |
354 // total store order (TSO) the reference may become visible before | |
355 // the initialization of data otherwise. | |
356 OrderAccess::release_store_ptr((volatile void *)&_method_data, data); | |
354 } | 357 } |
355 | 358 |
356 MethodCounters* method_counters() const { | 359 MethodCounters* method_counters() const { |
357 return _method_counters; | 360 return _method_counters; |
358 } | 361 } |
359 | 362 |
360 | |
361 void set_method_counters(MethodCounters* counters) { | 363 void set_method_counters(MethodCounters* counters) { |
362 _method_counters = counters; | 364 // The store into method must be released. On platforms without |
365 // total store order (TSO) the reference may become visible before | |
366 // the initialization of data otherwise. | |
367 OrderAccess::release_store_ptr((volatile void *)&_method_counters, counters); | |
363 } | 368 } |
364 | 369 |
365 #ifdef TIERED | 370 #ifdef TIERED |
366 // We are reusing interpreter_invocation_count as a holder for the previous event count! | 371 // We are reusing interpreter_invocation_count as a holder for the previous event count! |
367 // We can do that since interpreter_invocation_count is not used in tiered. | 372 // We can do that since interpreter_invocation_count is not used in tiered. |