equal
deleted
inserted
replaced
321 UNSAFE_ENTRY(jobject, Unsafe_GetObjectVolatile(JNIEnv *env, jobject unsafe, jobject obj, jlong offset)) { |
321 UNSAFE_ENTRY(jobject, Unsafe_GetObjectVolatile(JNIEnv *env, jobject unsafe, jobject obj, jlong offset)) { |
322 oop p = JNIHandles::resolve(obj); |
322 oop p = JNIHandles::resolve(obj); |
323 void* addr = index_oop_from_field_offset_long(p, offset); |
323 void* addr = index_oop_from_field_offset_long(p, offset); |
324 |
324 |
325 volatile oop v; |
325 volatile oop v; |
|
326 |
|
327 if (support_IRIW_for_not_multiple_copy_atomic_cpu) { |
|
328 OrderAccess::fence(); |
|
329 } |
326 |
330 |
327 if (UseCompressedOops) { |
331 if (UseCompressedOops) { |
328 volatile narrowOop n = *(volatile narrowOop*) addr; |
332 volatile narrowOop n = *(volatile narrowOop*) addr; |
329 (void)const_cast<oop&>(v = oopDesc::decode_heap_oop(n)); |
333 (void)const_cast<oop&>(v = oopDesc::decode_heap_oop(n)); |
330 } else { |
334 } else { |