8152698: Remove obsolete Unsafe.putOrdered{X} methods, usages, runtime and compiler support
authorshade
Fri, 25 Mar 2016 15:34:30 +0300
changeset 36827 53d2d43551d2
parent 36825 6ebe5519b753
child 36828 b955dec9ab84
8152698: Remove obsolete Unsafe.putOrdered{X} methods, usages, runtime and compiler support Reviewed-by: kvn, psandoz
hotspot/src/share/vm/c1/c1_Compiler.cpp
hotspot/src/share/vm/c1/c1_GraphBuilder.cpp
hotspot/src/share/vm/classfile/vmSymbols.cpp
hotspot/src/share/vm/classfile/vmSymbols.hpp
hotspot/src/share/vm/opto/c2compiler.cpp
hotspot/src/share/vm/opto/library_call.cpp
hotspot/src/share/vm/prims/unsafe.cpp
hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestBoolean.java
hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestByte.java
hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestChar.java
hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestDouble.java
hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestFloat.java
hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestInt.java
hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestLong.java
hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestObject.java
hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestShort.java
hotspot/test/compiler/unsafe/SunMiscUnsafeAccessTestBoolean.java
hotspot/test/compiler/unsafe/SunMiscUnsafeAccessTestByte.java
hotspot/test/compiler/unsafe/SunMiscUnsafeAccessTestChar.java
hotspot/test/compiler/unsafe/SunMiscUnsafeAccessTestDouble.java
hotspot/test/compiler/unsafe/SunMiscUnsafeAccessTestFloat.java
hotspot/test/compiler/unsafe/SunMiscUnsafeAccessTestInt.java
hotspot/test/compiler/unsafe/SunMiscUnsafeAccessTestLong.java
hotspot/test/compiler/unsafe/SunMiscUnsafeAccessTestObject.java
hotspot/test/compiler/unsafe/SunMiscUnsafeAccessTestShort.java
hotspot/test/compiler/unsafe/X-UnsafeAccessTest.java.template
--- a/hotspot/src/share/vm/c1/c1_Compiler.cpp	Thu Mar 24 11:48:37 2016 -0700
+++ b/hotspot/src/share/vm/c1/c1_Compiler.cpp	Fri Mar 25 15:34:30 2016 +0300
@@ -209,9 +209,6 @@
   case vmIntrinsics::_putLong_raw:
   case vmIntrinsics::_putFloat_raw:
   case vmIntrinsics::_putDouble_raw:
-  case vmIntrinsics::_putOrderedObject:
-  case vmIntrinsics::_putOrderedInt:
-  case vmIntrinsics::_putOrderedLong:
   case vmIntrinsics::_getShortUnaligned:
   case vmIntrinsics::_getCharUnaligned:
   case vmIntrinsics::_getIntUnaligned:
--- a/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp	Thu Mar 24 11:48:37 2016 -0700
+++ b/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp	Fri Mar 25 15:34:30 2016 +0300
@@ -3450,9 +3450,6 @@
   case vmIntrinsics::_putLong_raw        : append_unsafe_put_raw(callee, T_LONG  ); return;
   case vmIntrinsics::_putFloat_raw       : append_unsafe_put_raw(callee, T_FLOAT ); return;
   case vmIntrinsics::_putDouble_raw      : append_unsafe_put_raw(callee, T_DOUBLE);  return;
-  case vmIntrinsics::_putOrderedObject   : append_unsafe_put_obj(callee, T_OBJECT,  true); return;
-  case vmIntrinsics::_putOrderedInt      : append_unsafe_put_obj(callee, T_INT,     true); return;
-  case vmIntrinsics::_putOrderedLong     : append_unsafe_put_obj(callee, T_LONG,    true); return;
   case vmIntrinsics::_compareAndSwapLong:
   case vmIntrinsics::_compareAndSwapInt:
   case vmIntrinsics::_compareAndSwapObject: append_unsafe_CAS(callee); return;
--- a/hotspot/src/share/vm/classfile/vmSymbols.cpp	Thu Mar 24 11:48:37 2016 -0700
+++ b/hotspot/src/share/vm/classfile/vmSymbols.cpp	Fri Mar 25 15:34:30 2016 +0300
@@ -592,9 +592,6 @@
   case vmIntrinsics::_putLong_raw:
   case vmIntrinsics::_putFloat_raw:
   case vmIntrinsics::_putDouble_raw:
-  case vmIntrinsics::_putOrderedObject:
-  case vmIntrinsics::_putOrderedLong:
-  case vmIntrinsics::_putOrderedInt:
   case vmIntrinsics::_getAndAddInt:
   case vmIntrinsics::_getAndAddLong:
   case vmIntrinsics::_getAndSetInt:
--- a/hotspot/src/share/vm/classfile/vmSymbols.hpp	Thu Mar 24 11:48:37 2016 -0700
+++ b/hotspot/src/share/vm/classfile/vmSymbols.hpp	Fri Mar 25 15:34:30 2016 +0300
@@ -1330,16 +1330,6 @@
   do_intrinsic(_weakCompareAndSwapIntAcquire,     jdk_internal_misc_Unsafe,  weakCompareAndSwapIntAcquire_name,     compareAndSwapInt_signature,        F_R) \
   do_intrinsic(_weakCompareAndSwapIntRelease,     jdk_internal_misc_Unsafe,  weakCompareAndSwapIntRelease_name,     compareAndSwapInt_signature,        F_R) \
                                                                                                                         \
-  do_intrinsic(_putOrderedObject,         jdk_internal_misc_Unsafe,        putOrderedObject_name, putOrderedObject_signature, F_RN) \
-   do_name(     putOrderedObject_name,                           "putOrderedObject")                                    \
-   do_alias(    putOrderedObject_signature,                     /*(LObject;JLObject;)V*/ putObject_signature)           \
-  do_intrinsic(_putOrderedLong,           jdk_internal_misc_Unsafe,        putOrderedLong_name, putOrderedLong_signature, F_RN)  \
-   do_name(     putOrderedLong_name,                             "putOrderedLong")                                      \
-   do_alias(    putOrderedLong_signature,                       /*(Ljava/lang/Object;JJ)V*/ putLong_signature)          \
-  do_intrinsic(_putOrderedInt,            jdk_internal_misc_Unsafe,        putOrderedInt_name, putOrderedInt_signature,   F_RN)  \
-   do_name(     putOrderedInt_name,                              "putOrderedInt")                                       \
-   do_alias(    putOrderedInt_signature,                        /*(Ljava/lang/Object;JI)V*/ putInt_signature)           \
-                                                                                                                        \
   do_intrinsic(_getAndAddInt,             jdk_internal_misc_Unsafe,     getAndAddInt_name, getAndAddInt_signature, F_R)       \
    do_name(     getAndAddInt_name,                                      "getAndAddInt")                                       \
    do_signature(getAndAddInt_signature,                                 "(Ljava/lang/Object;JI)I" )                           \
--- a/hotspot/src/share/vm/opto/c2compiler.cpp	Thu Mar 24 11:48:37 2016 -0700
+++ b/hotspot/src/share/vm/opto/c2compiler.cpp	Fri Mar 25 15:34:30 2016 +0300
@@ -484,9 +484,6 @@
   case vmIntrinsics::_putCharUnaligned:
   case vmIntrinsics::_putIntUnaligned:
   case vmIntrinsics::_putLongUnaligned:
-  case vmIntrinsics::_putOrderedObject:
-  case vmIntrinsics::_putOrderedInt:
-  case vmIntrinsics::_putOrderedLong:
   case vmIntrinsics::_loadFence:
   case vmIntrinsics::_storeFence:
   case vmIntrinsics::_fullFence:
--- a/hotspot/src/share/vm/opto/library_call.cpp	Thu Mar 24 11:48:37 2016 -0700
+++ b/hotspot/src/share/vm/opto/library_call.cpp	Fri Mar 25 15:34:30 2016 +0300
@@ -621,10 +621,6 @@
   case vmIntrinsics::_putIntUnaligned:          return inline_unsafe_access(!is_native_ptr,  is_store, T_INT,      Relaxed, true);
   case vmIntrinsics::_putLongUnaligned:         return inline_unsafe_access(!is_native_ptr,  is_store, T_LONG,     Relaxed, true);
 
-  case vmIntrinsics::_putOrderedObject:         return inline_unsafe_access(!is_native_ptr,  is_store, T_OBJECT,   Release, false);
-  case vmIntrinsics::_putOrderedInt:            return inline_unsafe_access(!is_native_ptr,  is_store, T_INT,      Release, false);
-  case vmIntrinsics::_putOrderedLong:           return inline_unsafe_access(!is_native_ptr,  is_store, T_LONG,     Release, false);
-
   case vmIntrinsics::_getObjectAcquire:         return inline_unsafe_access(!is_native_ptr, !is_store, T_OBJECT,   Acquire, false);
   case vmIntrinsics::_getBooleanAcquire:        return inline_unsafe_access(!is_native_ptr, !is_store, T_BOOLEAN,  Acquire, false);
   case vmIntrinsics::_getByteAcquire:           return inline_unsafe_access(!is_native_ptr, !is_store, T_BYTE,     Acquire, false);
--- a/hotspot/src/share/vm/prims/unsafe.cpp	Thu Mar 24 11:48:37 2016 -0700
+++ b/hotspot/src/share/vm/prims/unsafe.cpp	Fri Mar 25 15:34:30 2016 +0300
@@ -378,44 +378,6 @@
 
 #undef DEFINE_GETSETOOP_VOLATILE
 
-// The non-intrinsified versions of setOrdered just use setVolatile
-
-UNSAFE_ENTRY(void, Unsafe_SetOrderedInt(JNIEnv *env, jobject unsafe, jobject obj, jlong offset, jint x)) {
-  SET_FIELD_VOLATILE(obj, offset, jint, x);
-} UNSAFE_END
-
-UNSAFE_ENTRY(void, Unsafe_SetOrderedObject(JNIEnv *env, jobject unsafe, jobject obj, jlong offset, jobject x_h)) {
-  oop x = JNIHandles::resolve(x_h);
-  oop p = JNIHandles::resolve(obj);
-  void* addr = index_oop_from_field_offset_long(p, offset);
-  OrderAccess::release();
-
-  if (UseCompressedOops) {
-    oop_store((narrowOop*)addr, x);
-  } else {
-    oop_store((oop*)addr, x);
-  }
-
-  OrderAccess::fence();
-} UNSAFE_END
-
-UNSAFE_ENTRY(void, Unsafe_SetOrderedLong(JNIEnv *env, jobject unsafe, jobject obj, jlong offset, jlong x)) {
-#ifdef SUPPORTS_NATIVE_CX8
-  SET_FIELD_VOLATILE(obj, offset, jlong, x);
-#else
-
-  // Keep old code for platforms which may not have atomic long (8 bytes) instructions
-  if (VM_Version::supports_cx8()) {
-    SET_FIELD_VOLATILE(obj, offset, jlong, x);
-  } else {
-    Handle p(THREAD, JNIHandles::resolve(obj));
-    jlong* addr = (jlong*)(index_oop_from_field_offset_long(p(), offset));
-    MutexLockerEx mu(UnsafeJlong_lock, Mutex::_no_safepoint_check_flag);
-    Atomic::store(x, addr);
-  }
-#endif
-} UNSAFE_END
-
 UNSAFE_LEAF(void, Unsafe_LoadFence(JNIEnv *env, jobject unsafe)) {
   OrderAccess::acquire();
 } UNSAFE_END
@@ -1230,9 +1192,6 @@
     {CC "compareAndExchangeIntVolatile",  CC "(" OBJ "J""I""I"")I", FN_PTR(Unsafe_CompareAndExchangeInt)},
     {CC "compareAndExchangeLongVolatile", CC "(" OBJ "J""J""J"")J", FN_PTR(Unsafe_CompareAndExchangeLong)},
 
-    {CC "putOrderedObject",   CC "(" OBJ "J" OBJ ")V",   FN_PTR(Unsafe_SetOrderedObject)},
-    {CC "putOrderedInt",      CC "(" OBJ "JI)V",         FN_PTR(Unsafe_SetOrderedInt)},
-    {CC "putOrderedLong",     CC "(" OBJ "JJ)V",         FN_PTR(Unsafe_SetOrderedLong)},
     {CC "park",               CC "(ZJ)V",                FN_PTR(Unsafe_Park)},
     {CC "unpark",             CC "(" OBJ ")V",           FN_PTR(Unsafe_Unpark)},
 
--- a/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestBoolean.java	Thu Mar 24 11:48:37 2016 -0700
+++ b/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestBoolean.java	Fri Mar 25 15:34:30 2016 +0300
@@ -147,3 +147,4 @@
     }
 
 }
+
--- a/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestByte.java	Thu Mar 24 11:48:37 2016 -0700
+++ b/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestByte.java	Fri Mar 25 15:34:30 2016 +0300
@@ -184,3 +184,4 @@
         }
     }
 }
+
--- a/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestChar.java	Thu Mar 24 11:48:37 2016 -0700
+++ b/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestChar.java	Fri Mar 25 15:34:30 2016 +0300
@@ -202,3 +202,4 @@
         }
     }
 }
+
--- a/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestDouble.java	Thu Mar 24 11:48:37 2016 -0700
+++ b/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestDouble.java	Fri Mar 25 15:34:30 2016 +0300
@@ -184,3 +184,4 @@
         }
     }
 }
+
--- a/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestFloat.java	Thu Mar 24 11:48:37 2016 -0700
+++ b/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestFloat.java	Fri Mar 25 15:34:30 2016 +0300
@@ -184,3 +184,4 @@
         }
     }
 }
+
--- a/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestInt.java	Thu Mar 24 11:48:37 2016 -0700
+++ b/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestInt.java	Fri Mar 25 15:34:30 2016 +0300
@@ -156,12 +156,6 @@
             assertEquals(x, 2, "putVolatile int value");
         }
 
-        // Lazy
-        {
-            UNSAFE.putOrderedInt(base, offset, 1);
-            int x = UNSAFE.getIntVolatile(base, offset);
-            assertEquals(x, 1, "putRelease int value");
-        }
 
         // Lazy
         {
@@ -305,3 +299,4 @@
         }
     }
 }
+
--- a/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestLong.java	Thu Mar 24 11:48:37 2016 -0700
+++ b/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestLong.java	Fri Mar 25 15:34:30 2016 +0300
@@ -156,12 +156,6 @@
             assertEquals(x, 2L, "putVolatile long value");
         }
 
-        // Lazy
-        {
-            UNSAFE.putOrderedLong(base, offset, 1L);
-            long x = UNSAFE.getLongVolatile(base, offset);
-            assertEquals(x, 1L, "putRelease long value");
-        }
 
         // Lazy
         {
@@ -305,3 +299,4 @@
         }
     }
 }
+
--- a/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestObject.java	Thu Mar 24 11:48:37 2016 -0700
+++ b/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestObject.java	Fri Mar 25 15:34:30 2016 +0300
@@ -127,12 +127,6 @@
             assertEquals(x, "bar", "putVolatile Object value");
         }
 
-        // Lazy
-        {
-            UNSAFE.putOrderedObject(base, offset, "foo");
-            Object x = UNSAFE.getObjectVolatile(base, offset);
-            assertEquals(x, "foo", "putRelease Object value");
-        }
 
         // Lazy
         {
@@ -241,3 +235,4 @@
     }
 
 }
+
--- a/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestShort.java	Thu Mar 24 11:48:37 2016 -0700
+++ b/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestShort.java	Fri Mar 25 15:34:30 2016 +0300
@@ -202,3 +202,4 @@
         }
     }
 }
+
--- a/hotspot/test/compiler/unsafe/SunMiscUnsafeAccessTestBoolean.java	Thu Mar 24 11:48:37 2016 -0700
+++ b/hotspot/test/compiler/unsafe/SunMiscUnsafeAccessTestBoolean.java	Fri Mar 25 15:34:30 2016 +0300
@@ -130,6 +130,8 @@
 
 
 
+
     }
 
 }
+
--- a/hotspot/test/compiler/unsafe/SunMiscUnsafeAccessTestByte.java	Thu Mar 24 11:48:37 2016 -0700
+++ b/hotspot/test/compiler/unsafe/SunMiscUnsafeAccessTestByte.java	Fri Mar 25 15:34:30 2016 +0300
@@ -159,6 +159,7 @@
 
 
 
+
     }
 
     static void testAccess(long address) {
@@ -170,3 +171,4 @@
         }
     }
 }
+
--- a/hotspot/test/compiler/unsafe/SunMiscUnsafeAccessTestChar.java	Thu Mar 24 11:48:37 2016 -0700
+++ b/hotspot/test/compiler/unsafe/SunMiscUnsafeAccessTestChar.java	Fri Mar 25 15:34:30 2016 +0300
@@ -159,6 +159,7 @@
 
 
 
+
     }
 
     static void testAccess(long address) {
@@ -170,3 +171,4 @@
         }
     }
 }
+
--- a/hotspot/test/compiler/unsafe/SunMiscUnsafeAccessTestDouble.java	Thu Mar 24 11:48:37 2016 -0700
+++ b/hotspot/test/compiler/unsafe/SunMiscUnsafeAccessTestDouble.java	Fri Mar 25 15:34:30 2016 +0300
@@ -159,6 +159,7 @@
 
 
 
+
     }
 
     static void testAccess(long address) {
@@ -170,3 +171,4 @@
         }
     }
 }
+
--- a/hotspot/test/compiler/unsafe/SunMiscUnsafeAccessTestFloat.java	Thu Mar 24 11:48:37 2016 -0700
+++ b/hotspot/test/compiler/unsafe/SunMiscUnsafeAccessTestFloat.java	Fri Mar 25 15:34:30 2016 +0300
@@ -159,6 +159,7 @@
 
 
 
+
     }
 
     static void testAccess(long address) {
@@ -170,3 +171,4 @@
         }
     }
 }
+
--- a/hotspot/test/compiler/unsafe/SunMiscUnsafeAccessTestInt.java	Thu Mar 24 11:48:37 2016 -0700
+++ b/hotspot/test/compiler/unsafe/SunMiscUnsafeAccessTestInt.java	Fri Mar 25 15:34:30 2016 +0300
@@ -164,6 +164,7 @@
         }
 
 
+
         UNSAFE.putInt(base, offset, 1);
 
         // Compare
@@ -181,6 +182,7 @@
             assertEquals(x, 2, "failing compareAndSwap int value");
         }
 
+
         // Compare set and get
         {
             int o = UNSAFE.getAndSetInt(base, offset, 1);
@@ -209,3 +211,4 @@
         }
     }
 }
+
--- a/hotspot/test/compiler/unsafe/SunMiscUnsafeAccessTestLong.java	Thu Mar 24 11:48:37 2016 -0700
+++ b/hotspot/test/compiler/unsafe/SunMiscUnsafeAccessTestLong.java	Fri Mar 25 15:34:30 2016 +0300
@@ -164,6 +164,7 @@
         }
 
 
+
         UNSAFE.putLong(base, offset, 1L);
 
         // Compare
@@ -181,6 +182,7 @@
             assertEquals(x, 2L, "failing compareAndSwap long value");
         }
 
+
         // Compare set and get
         {
             long o = UNSAFE.getAndSetLong(base, offset, 1L);
@@ -209,3 +211,4 @@
         }
     }
 }
+
--- a/hotspot/test/compiler/unsafe/SunMiscUnsafeAccessTestObject.java	Thu Mar 24 11:48:37 2016 -0700
+++ b/hotspot/test/compiler/unsafe/SunMiscUnsafeAccessTestObject.java	Fri Mar 25 15:34:30 2016 +0300
@@ -135,6 +135,7 @@
         }
 
 
+
         UNSAFE.putObject(base, offset, "foo");
 
         // Compare
@@ -152,6 +153,7 @@
             assertEquals(x, "bar", "failing compareAndSwap Object value");
         }
 
+
         // Compare set and get
         {
             Object o = UNSAFE.getAndSetObject(base, offset, "foo");
@@ -163,3 +165,4 @@
     }
 
 }
+
--- a/hotspot/test/compiler/unsafe/SunMiscUnsafeAccessTestShort.java	Thu Mar 24 11:48:37 2016 -0700
+++ b/hotspot/test/compiler/unsafe/SunMiscUnsafeAccessTestShort.java	Fri Mar 25 15:34:30 2016 +0300
@@ -159,6 +159,7 @@
 
 
 
+
     }
 
     static void testAccess(long address) {
@@ -170,3 +171,4 @@
         }
     }
 }
+
--- a/hotspot/test/compiler/unsafe/X-UnsafeAccessTest.java.template	Thu Mar 24 11:48:37 2016 -0700
+++ b/hotspot/test/compiler/unsafe/X-UnsafeAccessTest.java.template	Fri Mar 25 15:34:30 2016 +0300
@@ -160,6 +160,7 @@
             assertEquals(x, $value2$, "putVolatile $type$ value");
         }
 
+#if[!JdkInternalMisc]
 #if[Ordered]
         // Lazy
         {
@@ -168,6 +169,7 @@
             assertEquals(x, $value1$, "putRelease $type$ value");
         }
 #end[Ordered]
+#end[!JdkInternalMisc]
 
 #if[JdkInternalMisc]
         // Lazy