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.