hotspot/src/share/vm/prims/unsafe.cpp
changeset 40918 4b0a28b0ed28
parent 40664 1ec65b303bb7
child 40923 10fe1c28b9f6
equal deleted inserted replaced
40917:22ce5e78e152 40918:4b0a28b0ed28
   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 {