comparison src/share/vm/prims/unsafe.cpp @ 845:df6caf649ff7

6700789: G1: Enable use of compressed oops with G1 heaps Summary: Modifications to G1 so as to allow the use of compressed oops. Reviewed-by: apetrusenko, coleenp, jmasa, kvn, never, phh, tonyp
author ysr
date Tue, 14 Jul 2009 15:40:39 -0700
parents a45484ea312d
children e392695de029
comparison
equal deleted inserted replaced
839:bb18957ad21e 845:df6caf649ff7
1046 UnsafeWrapper("Unsafe_CompareAndSwapObject"); 1046 UnsafeWrapper("Unsafe_CompareAndSwapObject");
1047 oop x = JNIHandles::resolve(x_h); 1047 oop x = JNIHandles::resolve(x_h);
1048 oop e = JNIHandles::resolve(e_h); 1048 oop e = JNIHandles::resolve(e_h);
1049 oop p = JNIHandles::resolve(obj); 1049 oop p = JNIHandles::resolve(obj);
1050 HeapWord* addr = (HeapWord *)index_oop_from_field_offset_long(p, offset); 1050 HeapWord* addr = (HeapWord *)index_oop_from_field_offset_long(p, offset);
1051 update_barrier_set_pre((void*)addr, e); 1051 if (UseCompressedOops) {
1052 update_barrier_set_pre((narrowOop*)addr, e);
1053 } else {
1054 update_barrier_set_pre((oop*)addr, e);
1055 }
1052 oop res = oopDesc::atomic_compare_exchange_oop(x, addr, e); 1056 oop res = oopDesc::atomic_compare_exchange_oop(x, addr, e);
1053 jboolean success = (res == e); 1057 jboolean success = (res == e);
1054 if (success) 1058 if (success)
1055 update_barrier_set((void*)addr, x); 1059 update_barrier_set((void*)addr, x);
1056 return success; 1060 return success;