comparison src/share/vm/prims/unsafe.cpp @ 17794:3514ee402842

8029101: PPC64 (part 211): ordering of Independent Reads of Independent Writes Reviewed-by: dholmes, kvn Contributed-by: martin.doerr@sap.com
author goetz
date Thu, 16 Jan 2014 14:25:51 +0100
parents 190899198332
children 28f281e8de1d 62c54fcc0a35
comparison
equal deleted inserted replaced
17793:c668f307a4c0 17794:3514ee402842
160 oop p = JNIHandles::resolve(obj); \ 160 oop p = JNIHandles::resolve(obj); \
161 *(type_name*)index_oop_from_field_offset_long(p, offset) = x 161 *(type_name*)index_oop_from_field_offset_long(p, offset) = x
162 162
163 #define GET_FIELD_VOLATILE(obj, offset, type_name, v) \ 163 #define GET_FIELD_VOLATILE(obj, offset, type_name, v) \
164 oop p = JNIHandles::resolve(obj); \ 164 oop p = JNIHandles::resolve(obj); \
165 if (support_IRIW_for_not_multiple_copy_atomic_cpu) { \
166 OrderAccess::fence(); \
167 } \
165 volatile type_name v = OrderAccess::load_acquire((volatile type_name*)index_oop_from_field_offset_long(p, offset)); 168 volatile type_name v = OrderAccess::load_acquire((volatile type_name*)index_oop_from_field_offset_long(p, offset));
166 169
167 #define SET_FIELD_VOLATILE(obj, offset, type_name, x) \ 170 #define SET_FIELD_VOLATILE(obj, offset, type_name, x) \
168 oop p = JNIHandles::resolve(obj); \ 171 oop p = JNIHandles::resolve(obj); \
169 OrderAccess::release_store_fence((volatile type_name*)index_oop_from_field_offset_long(p, offset), x); 172 OrderAccess::release_store_fence((volatile type_name*)index_oop_from_field_offset_long(p, offset), x);