changeset 52220:9c260a6b6471

8207146: Rename jdk.internal.misc.Unsafe::xxxObject to xxxReference Reviewed-by: dholmes, thartmann
author mchung
date Mon, 22 Oct 2018 17:00:04 -0700
parents 151b990e3764
children 27ba7cc31f9f
files make/gensrc/GensrcVarHandles.gmk src/hotspot/share/c1/c1_Compiler.cpp src/hotspot/share/c1/c1_GraphBuilder.cpp src/hotspot/share/c1/c1_LIRGenerator.cpp src/hotspot/share/classfile/vmSymbols.cpp src/hotspot/share/classfile/vmSymbols.hpp src/hotspot/share/gc/g1/c2/g1BarrierSetC2.hpp src/hotspot/share/opto/c2compiler.cpp src/hotspot/share/opto/library_call.cpp src/hotspot/share/prims/unsafe.cpp src/java.base/share/classes/java/io/BufferedInputStream.java src/java.base/share/classes/java/io/File.java src/java.base/share/classes/java/io/ObjectStreamClass.java src/java.base/share/classes/java/lang/Class.java src/java.base/share/classes/java/lang/ClassLoader.java src/java.base/share/classes/java/lang/invoke/CallSite.java src/java.base/share/classes/java/lang/invoke/ClassSpecializer.java src/java.base/share/classes/java/lang/invoke/DirectMethodHandle.java src/java.base/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java src/java.base/share/classes/java/lang/invoke/LambdaForm.java src/java.base/share/classes/java/lang/invoke/MethodHandle.java src/java.base/share/classes/java/lang/invoke/MethodType.java src/java.base/share/classes/java/lang/invoke/VarHandle.java src/java.base/share/classes/java/lang/invoke/VarHandles.java src/java.base/share/classes/java/lang/invoke/X-VarHandleByteArrayView.java.template src/java.base/share/classes/java/math/BigDecimal.java src/java.base/share/classes/java/math/BigInteger.java src/java.base/share/classes/java/net/Inet6Address.java src/java.base/share/classes/java/net/InetAddress.java src/java.base/share/classes/java/net/InetSocketAddress.java src/java.base/share/classes/java/util/Random.java src/java.base/share/classes/java/util/concurrent/ConcurrentHashMap.java src/java.base/share/classes/java/util/concurrent/ThreadLocalRandom.java src/java.base/share/classes/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java src/java.base/share/classes/java/util/concurrent/locks/LockSupport.java src/java.base/share/classes/java/util/zip/ZipUtils.java src/java.base/share/classes/jdk/internal/misc/InnocuousThread.java src/java.base/share/classes/jdk/internal/misc/Unsafe.java src/java.base/share/classes/jdk/internal/reflect/UnsafeObjectFieldAccessorImpl.java src/java.base/share/classes/jdk/internal/reflect/UnsafeQualifiedObjectFieldAccessorImpl.java src/java.base/share/classes/jdk/internal/reflect/UnsafeQualifiedStaticObjectFieldAccessorImpl.java src/java.base/share/classes/jdk/internal/reflect/UnsafeStaticObjectFieldAccessorImpl.java src/java.base/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java src/java.security.jgss/share/classes/sun/security/krb5/PrincipalName.java src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/SafeThread.java src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl.java src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/CheckGraalIntrinsics.java src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.aarch64/src/org/graalvm/compiler/replacements/aarch64/AArch64GraphBuilderPlugins.java src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.amd64/src/org/graalvm/compiler/replacements/amd64/AMD64GraphBuilderPlugins.java src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.jdk9.test/src/org/graalvm/compiler/replacements/jdk9/UnsafeReplacementsTest.java src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/StandardGraphBuilderPlugins.java src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.serviceprovider/src/org/graalvm/compiler/serviceprovider/GraalServices.java src/jdk.unsupported/share/classes/sun/misc/Unsafe.java test/hotspot/jtreg/compiler/c2/Test7190310_unsafe.java test/hotspot/jtreg/compiler/c2/aarch64/TestUnsafeVolatileCAS.java test/hotspot/jtreg/compiler/c2/aarch64/TestUnsafeVolatileLoad.java test/hotspot/jtreg/compiler/c2/aarch64/TestUnsafeVolatileStore.java test/hotspot/jtreg/compiler/gcbarriers/UnsafeIntrinsicsTest.java test/hotspot/jtreg/compiler/intrinsics/unsafe/TestCAEAntiDep.java test/hotspot/jtreg/compiler/intrinsics/unsafe/TestUnsafeMismatchedArrayFieldAccess.java test/hotspot/jtreg/compiler/profiling/UnsafeAccess.java test/hotspot/jtreg/compiler/regalloc/C1ObjectSpillInLogicOp.java test/hotspot/jtreg/compiler/unsafe/GetUnsafeObjectG1PreBarrier.java test/hotspot/jtreg/compiler/unsafe/JdkInternalMiscUnsafeAccessTestObject.java test/hotspot/jtreg/compiler/unsafe/MixedUnsafeStoreObject.java test/hotspot/jtreg/compiler/unsafe/OpaqueAccesses.java test/hotspot/jtreg/compiler/unsafe/UnsafeGetConstantField.java test/hotspot/jtreg/compiler/unsafe/UnsafeGetStableArrayElement.java test/hotspot/jtreg/runtime/Unsafe/GetPutObject.java test/hotspot/jtreg/runtime/Unsafe/RangeCheck.java
diffstat 70 files changed, 644 insertions(+), 604 deletions(-) [+]
line wrap: on
line diff
--- a/make/gensrc/GensrcVarHandles.gmk	Mon Oct 22 14:41:51 2018 -0700
+++ b/make/gensrc/GensrcVarHandles.gmk	Mon Oct 22 17:00:04 2018 -0700
@@ -53,8 +53,8 @@
   endif
 
   $$($1_FILENAME): $(VARHANDLES_SRC_DIR)/X-VarHandle.java.template $(BUILD_TOOLS_JDK)
-        ifeq ($$($1_Type), Object)
-	  $$(eval $1_type := $$($1_Type))
+        ifeq ($$($1_Type), Reference)
+	  $$(eval $1_type := Object)
         else
 	  $$(eval $1_type := $$$$(shell $(TR) '[:upper:]' '[:lower:]' <<< $$$$($1_Type)))
         endif
@@ -158,7 +158,7 @@
 ################################################################################
 
 # List the types to generate source for, with capitalized first letter
-VARHANDLES_TYPES := Boolean Byte Short Char Int Long Float Double Object
+VARHANDLES_TYPES := Boolean Byte Short Char Int Long Float Double Reference
 $(foreach t, $(VARHANDLES_TYPES), \
   $(eval $(call GenerateVarHandle,VAR_HANDLE_$t,$t)))
 
--- a/src/hotspot/share/c1/c1_Compiler.cpp	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/hotspot/share/c1/c1_Compiler.cpp	Mon Oct 22 17:00:04 2018 -0700
@@ -126,7 +126,7 @@
   case vmIntrinsics::_getAndSetLong:
     if (!VM_Version::supports_atomic_getset8()) return false;
     break;
-  case vmIntrinsics::_getAndSetObject:
+  case vmIntrinsics::_getAndSetReference:
 #ifdef _LP64
     if (!UseCompressedOops && !VM_Version::supports_atomic_getset8()) return false;
     if (UseCompressedOops && !VM_Version::supports_atomic_getset4()) return false;
@@ -167,7 +167,7 @@
   case vmIntrinsics::_dpow:
   case vmIntrinsics::_fmaD:
   case vmIntrinsics::_fmaF:
-  case vmIntrinsics::_getObject:
+  case vmIntrinsics::_getReference:
   case vmIntrinsics::_getBoolean:
   case vmIntrinsics::_getByte:
   case vmIntrinsics::_getShort:
@@ -176,7 +176,7 @@
   case vmIntrinsics::_getLong:
   case vmIntrinsics::_getFloat:
   case vmIntrinsics::_getDouble:
-  case vmIntrinsics::_putObject:
+  case vmIntrinsics::_putReference:
   case vmIntrinsics::_putBoolean:
   case vmIntrinsics::_putByte:
   case vmIntrinsics::_putShort:
@@ -185,7 +185,7 @@
   case vmIntrinsics::_putLong:
   case vmIntrinsics::_putFloat:
   case vmIntrinsics::_putDouble:
-  case vmIntrinsics::_getObjectVolatile:
+  case vmIntrinsics::_getReferenceVolatile:
   case vmIntrinsics::_getBooleanVolatile:
   case vmIntrinsics::_getByteVolatile:
   case vmIntrinsics::_getShortVolatile:
@@ -194,7 +194,7 @@
   case vmIntrinsics::_getLongVolatile:
   case vmIntrinsics::_getFloatVolatile:
   case vmIntrinsics::_getDoubleVolatile:
-  case vmIntrinsics::_putObjectVolatile:
+  case vmIntrinsics::_putReferenceVolatile:
   case vmIntrinsics::_putBooleanVolatile:
   case vmIntrinsics::_putByteVolatile:
   case vmIntrinsics::_putShortVolatile:
@@ -221,7 +221,7 @@
 #endif
   case vmIntrinsics::_vectorizedMismatch:
   case vmIntrinsics::_compareAndSetInt:
-  case vmIntrinsics::_compareAndSetObject:
+  case vmIntrinsics::_compareAndSetReference:
   case vmIntrinsics::_getCharStringU:
   case vmIntrinsics::_putCharStringU:
 #ifdef JFR_HAVE_INTRINSICS
--- a/src/hotspot/share/c1/c1_GraphBuilder.cpp	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/hotspot/share/c1/c1_GraphBuilder.cpp	Mon Oct 22 17:00:04 2018 -0700
@@ -3471,7 +3471,7 @@
 
   // Some intrinsics need special IR nodes.
   switch(id) {
-  case vmIntrinsics::_getObject          : append_unsafe_get_obj(callee, T_OBJECT,  false); return;
+  case vmIntrinsics::_getReference       : append_unsafe_get_obj(callee, T_OBJECT,  false); return;
   case vmIntrinsics::_getBoolean         : append_unsafe_get_obj(callee, T_BOOLEAN, false); return;
   case vmIntrinsics::_getByte            : append_unsafe_get_obj(callee, T_BYTE,    false); return;
   case vmIntrinsics::_getShort           : append_unsafe_get_obj(callee, T_SHORT,   false); return;
@@ -3480,7 +3480,7 @@
   case vmIntrinsics::_getLong            : append_unsafe_get_obj(callee, T_LONG,    false); return;
   case vmIntrinsics::_getFloat           : append_unsafe_get_obj(callee, T_FLOAT,   false); return;
   case vmIntrinsics::_getDouble          : append_unsafe_get_obj(callee, T_DOUBLE,  false); return;
-  case vmIntrinsics::_putObject          : append_unsafe_put_obj(callee, T_OBJECT,  false); return;
+  case vmIntrinsics::_putReference       : append_unsafe_put_obj(callee, T_OBJECT,  false); return;
   case vmIntrinsics::_putBoolean         : append_unsafe_put_obj(callee, T_BOOLEAN, false); return;
   case vmIntrinsics::_putByte            : append_unsafe_put_obj(callee, T_BYTE,    false); return;
   case vmIntrinsics::_putShort           : append_unsafe_put_obj(callee, T_SHORT,   false); return;
@@ -3497,7 +3497,7 @@
   case vmIntrinsics::_putCharUnaligned   : append_unsafe_put_obj(callee, T_CHAR,    false); return;
   case vmIntrinsics::_putIntUnaligned    : append_unsafe_put_obj(callee, T_INT,     false); return;
   case vmIntrinsics::_putLongUnaligned   : append_unsafe_put_obj(callee, T_LONG,    false); return;
-  case vmIntrinsics::_getObjectVolatile  : append_unsafe_get_obj(callee, T_OBJECT,  true); return;
+  case vmIntrinsics::_getReferenceVolatile  : append_unsafe_get_obj(callee, T_OBJECT,  true); return;
   case vmIntrinsics::_getBooleanVolatile : append_unsafe_get_obj(callee, T_BOOLEAN, true); return;
   case vmIntrinsics::_getByteVolatile    : append_unsafe_get_obj(callee, T_BYTE,    true); return;
   case vmIntrinsics::_getShortVolatile   : append_unsafe_get_obj(callee, T_SHORT,   true); return;
@@ -3506,7 +3506,7 @@
   case vmIntrinsics::_getLongVolatile    : append_unsafe_get_obj(callee, T_LONG,    true); return;
   case vmIntrinsics::_getFloatVolatile   : append_unsafe_get_obj(callee, T_FLOAT,   true); return;
   case vmIntrinsics::_getDoubleVolatile  : append_unsafe_get_obj(callee, T_DOUBLE,  true); return;
-  case vmIntrinsics::_putObjectVolatile  : append_unsafe_put_obj(callee, T_OBJECT,  true); return;
+  case vmIntrinsics::_putReferenceVolatile : append_unsafe_put_obj(callee, T_OBJECT,  true); return;
   case vmIntrinsics::_putBooleanVolatile : append_unsafe_put_obj(callee, T_BOOLEAN, true); return;
   case vmIntrinsics::_putByteVolatile    : append_unsafe_put_obj(callee, T_BYTE,    true); return;
   case vmIntrinsics::_putShortVolatile   : append_unsafe_put_obj(callee, T_SHORT,   true); return;
@@ -3517,12 +3517,12 @@
   case vmIntrinsics::_putDoubleVolatile  : append_unsafe_put_obj(callee, T_DOUBLE,  true); return;
   case vmIntrinsics::_compareAndSetLong:
   case vmIntrinsics::_compareAndSetInt:
-  case vmIntrinsics::_compareAndSetObject: append_unsafe_CAS(callee); return;
+  case vmIntrinsics::_compareAndSetReference : append_unsafe_CAS(callee); return;
   case vmIntrinsics::_getAndAddInt:
   case vmIntrinsics::_getAndAddLong      : append_unsafe_get_and_set_obj(callee, true); return;
   case vmIntrinsics::_getAndSetInt       :
   case vmIntrinsics::_getAndSetLong      :
-  case vmIntrinsics::_getAndSetObject    : append_unsafe_get_and_set_obj(callee, false); return;
+  case vmIntrinsics::_getAndSetReference : append_unsafe_get_and_set_obj(callee, false); return;
   case vmIntrinsics::_getCharStringU     : append_char_access(callee, false); return;
   case vmIntrinsics::_putCharStringU     : append_char_access(callee, true); return;
   default:
--- a/src/hotspot/share/c1/c1_LIRGenerator.cpp	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/hotspot/share/c1/c1_LIRGenerator.cpp	Mon Oct 22 17:00:04 2018 -0700
@@ -3057,7 +3057,7 @@
   // java.nio.Buffer.checkIndex
   case vmIntrinsics::_checkIndex:     do_NIOCheckIndex(x); break;
 
-  case vmIntrinsics::_compareAndSetObject:
+  case vmIntrinsics::_compareAndSetReference:
     do_CompareAndSwap(x, objectType);
     break;
   case vmIntrinsics::_compareAndSetInt:
--- a/src/hotspot/share/classfile/vmSymbols.cpp	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/hotspot/share/classfile/vmSymbols.cpp	Mon Oct 22 17:00:04 2018 -0700
@@ -527,7 +527,7 @@
     case vmIntrinsics::_getAndAddLong:
     case vmIntrinsics::_getAndSetInt:
     case vmIntrinsics::_getAndSetLong:
-    case vmIntrinsics::_getAndSetObject:
+    case vmIntrinsics::_getAndSetReference:
     case vmIntrinsics::_loadFence:
     case vmIntrinsics::_storeFence:
     case vmIntrinsics::_fullFence:
@@ -589,7 +589,7 @@
   case vmIntrinsics::_updateByteBufferCRC32:
     if (!UseCRC32Intrinsics) return true;
     break;
-  case vmIntrinsics::_getObject:
+  case vmIntrinsics::_getReference:
   case vmIntrinsics::_getBoolean:
   case vmIntrinsics::_getByte:
   case vmIntrinsics::_getShort:
@@ -598,7 +598,7 @@
   case vmIntrinsics::_getLong:
   case vmIntrinsics::_getFloat:
   case vmIntrinsics::_getDouble:
-  case vmIntrinsics::_putObject:
+  case vmIntrinsics::_putReference:
   case vmIntrinsics::_putBoolean:
   case vmIntrinsics::_putByte:
   case vmIntrinsics::_putShort:
@@ -607,7 +607,7 @@
   case vmIntrinsics::_putLong:
   case vmIntrinsics::_putFloat:
   case vmIntrinsics::_putDouble:
-  case vmIntrinsics::_getObjectVolatile:
+  case vmIntrinsics::_getReferenceVolatile:
   case vmIntrinsics::_getBooleanVolatile:
   case vmIntrinsics::_getByteVolatile:
   case vmIntrinsics::_getShortVolatile:
@@ -616,7 +616,7 @@
   case vmIntrinsics::_getLongVolatile:
   case vmIntrinsics::_getFloatVolatile:
   case vmIntrinsics::_getDoubleVolatile:
-  case vmIntrinsics::_putObjectVolatile:
+  case vmIntrinsics::_putReferenceVolatile:
   case vmIntrinsics::_putBooleanVolatile:
   case vmIntrinsics::_putByteVolatile:
   case vmIntrinsics::_putShortVolatile:
@@ -625,7 +625,7 @@
   case vmIntrinsics::_putLongVolatile:
   case vmIntrinsics::_putFloatVolatile:
   case vmIntrinsics::_putDoubleVolatile:
-  case vmIntrinsics::_getObjectAcquire:
+  case vmIntrinsics::_getReferenceAcquire:
   case vmIntrinsics::_getBooleanAcquire:
   case vmIntrinsics::_getByteAcquire:
   case vmIntrinsics::_getShortAcquire:
@@ -634,7 +634,7 @@
   case vmIntrinsics::_getLongAcquire:
   case vmIntrinsics::_getFloatAcquire:
   case vmIntrinsics::_getDoubleAcquire:
-  case vmIntrinsics::_putObjectRelease:
+  case vmIntrinsics::_putReferenceRelease:
   case vmIntrinsics::_putBooleanRelease:
   case vmIntrinsics::_putByteRelease:
   case vmIntrinsics::_putShortRelease:
@@ -643,7 +643,7 @@
   case vmIntrinsics::_putLongRelease:
   case vmIntrinsics::_putFloatRelease:
   case vmIntrinsics::_putDoubleRelease:
-  case vmIntrinsics::_getObjectOpaque:
+  case vmIntrinsics::_getReferenceOpaque:
   case vmIntrinsics::_getBooleanOpaque:
   case vmIntrinsics::_getByteOpaque:
   case vmIntrinsics::_getShortOpaque:
@@ -652,7 +652,7 @@
   case vmIntrinsics::_getLongOpaque:
   case vmIntrinsics::_getFloatOpaque:
   case vmIntrinsics::_getDoubleOpaque:
-  case vmIntrinsics::_putObjectOpaque:
+  case vmIntrinsics::_putReferenceOpaque:
   case vmIntrinsics::_putBooleanOpaque:
   case vmIntrinsics::_putByteOpaque:
   case vmIntrinsics::_putShortOpaque:
@@ -665,7 +665,7 @@
   case vmIntrinsics::_getAndAddLong:
   case vmIntrinsics::_getAndSetInt:
   case vmIntrinsics::_getAndSetLong:
-  case vmIntrinsics::_getAndSetObject:
+  case vmIntrinsics::_getAndSetReference:
   case vmIntrinsics::_loadFence:
   case vmIntrinsics::_storeFence:
   case vmIntrinsics::_fullFence:
@@ -679,20 +679,20 @@
   case vmIntrinsics::_weakCompareAndSetIntPlain:
   case vmIntrinsics::_weakCompareAndSetIntAcquire:
   case vmIntrinsics::_weakCompareAndSetIntRelease:
-  case vmIntrinsics::_compareAndSetObject:
-  case vmIntrinsics::_weakCompareAndSetObject:
-  case vmIntrinsics::_weakCompareAndSetObjectPlain:
-  case vmIntrinsics::_weakCompareAndSetObjectAcquire:
-  case vmIntrinsics::_weakCompareAndSetObjectRelease:
+  case vmIntrinsics::_compareAndSetReference:
+  case vmIntrinsics::_weakCompareAndSetReference:
+  case vmIntrinsics::_weakCompareAndSetReferencePlain:
+  case vmIntrinsics::_weakCompareAndSetReferenceAcquire:
+  case vmIntrinsics::_weakCompareAndSetReferenceRelease:
   case vmIntrinsics::_compareAndExchangeInt:
   case vmIntrinsics::_compareAndExchangeIntAcquire:
   case vmIntrinsics::_compareAndExchangeIntRelease:
   case vmIntrinsics::_compareAndExchangeLong:
   case vmIntrinsics::_compareAndExchangeLongAcquire:
   case vmIntrinsics::_compareAndExchangeLongRelease:
-  case vmIntrinsics::_compareAndExchangeObject:
-  case vmIntrinsics::_compareAndExchangeObjectAcquire:
-  case vmIntrinsics::_compareAndExchangeObjectRelease:
+  case vmIntrinsics::_compareAndExchangeReference:
+  case vmIntrinsics::_compareAndExchangeReferenceAcquire:
+  case vmIntrinsics::_compareAndExchangeReferenceRelease:
     if (!InlineUnsafeOps) return true;
     break;
   case vmIntrinsics::_getShortUnaligned:
--- a/src/hotspot/share/classfile/vmSymbols.hpp	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/hotspot/share/classfile/vmSymbols.hpp	Mon Oct 22 17:00:04 2018 -0700
@@ -1084,8 +1084,8 @@
    do_alias(    isCompileConstant_signature,                      object_boolean_signature)                             \
                                                                                                                         \
   /* unsafe memory references (there are a lot of them...) */                                                           \
-  do_signature(getObject_signature,       "(Ljava/lang/Object;J)Ljava/lang/Object;")                                    \
-  do_signature(putObject_signature,       "(Ljava/lang/Object;JLjava/lang/Object;)V")                                   \
+  do_signature(getReference_signature,    "(Ljava/lang/Object;J)Ljava/lang/Object;")                                    \
+  do_signature(putReference_signature,    "(Ljava/lang/Object;JLjava/lang/Object;)V")                                   \
   do_signature(getBoolean_signature,      "(Ljava/lang/Object;J)Z")                                                     \
   do_signature(putBoolean_signature,      "(Ljava/lang/Object;JZ)V")                                                    \
   do_signature(getByte_signature,         "(Ljava/lang/Object;J)B")                                                     \
@@ -1103,7 +1103,7 @@
   do_signature(getDouble_signature,       "(Ljava/lang/Object;J)D")                                                     \
   do_signature(putDouble_signature,       "(Ljava/lang/Object;JD)V")                                                    \
                                                                                                                         \
-  do_name(getObject_name,"getObject")           do_name(putObject_name,"putObject")                                     \
+  do_name(getReference_name,"getReference")     do_name(putReference_name,"putReference")                               \
   do_name(getBoolean_name,"getBoolean")         do_name(putBoolean_name,"putBoolean")                                   \
   do_name(getByte_name,"getByte")               do_name(putByte_name,"putByte")                                         \
   do_name(getShort_name,"getShort")             do_name(putShort_name,"putShort")                                       \
@@ -1113,7 +1113,7 @@
   do_name(getFloat_name,"getFloat")             do_name(putFloat_name,"putFloat")                                       \
   do_name(getDouble_name,"getDouble")           do_name(putDouble_name,"putDouble")                                     \
                                                                                                                         \
-  do_intrinsic(_getObject,          jdk_internal_misc_Unsafe,     getObject_name, getObject_signature,           F_RN)  \
+  do_intrinsic(_getReference,       jdk_internal_misc_Unsafe,     getReference_name, getReference_signature,     F_RN)  \
   do_intrinsic(_getBoolean,         jdk_internal_misc_Unsafe,     getBoolean_name, getBoolean_signature,         F_RN)  \
   do_intrinsic(_getByte,            jdk_internal_misc_Unsafe,     getByte_name, getByte_signature,               F_RN)  \
   do_intrinsic(_getShort,           jdk_internal_misc_Unsafe,     getShort_name, getShort_signature,             F_RN)  \
@@ -1122,7 +1122,7 @@
   do_intrinsic(_getLong,            jdk_internal_misc_Unsafe,     getLong_name, getLong_signature,               F_RN)  \
   do_intrinsic(_getFloat,           jdk_internal_misc_Unsafe,     getFloat_name, getFloat_signature,             F_RN)  \
   do_intrinsic(_getDouble,          jdk_internal_misc_Unsafe,     getDouble_name, getDouble_signature,           F_RN)  \
-  do_intrinsic(_putObject,          jdk_internal_misc_Unsafe,     putObject_name, putObject_signature,           F_RN)  \
+  do_intrinsic(_putReference,       jdk_internal_misc_Unsafe,     putReference_name, putReference_signature,     F_RN)  \
   do_intrinsic(_putBoolean,         jdk_internal_misc_Unsafe,     putBoolean_name, putBoolean_signature,         F_RN)  \
   do_intrinsic(_putByte,            jdk_internal_misc_Unsafe,     putByte_name, putByte_signature,               F_RN)  \
   do_intrinsic(_putShort,           jdk_internal_misc_Unsafe,     putShort_name, putShort_signature,             F_RN)  \
@@ -1132,92 +1132,92 @@
   do_intrinsic(_putFloat,           jdk_internal_misc_Unsafe,     putFloat_name, putFloat_signature,             F_RN)  \
   do_intrinsic(_putDouble,          jdk_internal_misc_Unsafe,     putDouble_name, putDouble_signature,           F_RN)  \
                                                                                                                         \
-  do_name(getObjectVolatile_name,"getObjectVolatile")   do_name(putObjectVolatile_name,"putObjectVolatile")             \
-  do_name(getBooleanVolatile_name,"getBooleanVolatile") do_name(putBooleanVolatile_name,"putBooleanVolatile")           \
-  do_name(getByteVolatile_name,"getByteVolatile")       do_name(putByteVolatile_name,"putByteVolatile")                 \
-  do_name(getShortVolatile_name,"getShortVolatile")     do_name(putShortVolatile_name,"putShortVolatile")               \
-  do_name(getCharVolatile_name,"getCharVolatile")       do_name(putCharVolatile_name,"putCharVolatile")                 \
-  do_name(getIntVolatile_name,"getIntVolatile")         do_name(putIntVolatile_name,"putIntVolatile")                   \
-  do_name(getLongVolatile_name,"getLongVolatile")       do_name(putLongVolatile_name,"putLongVolatile")                 \
-  do_name(getFloatVolatile_name,"getFloatVolatile")     do_name(putFloatVolatile_name,"putFloatVolatile")               \
-  do_name(getDoubleVolatile_name,"getDoubleVolatile")   do_name(putDoubleVolatile_name,"putDoubleVolatile")             \
+  do_name(getReferenceVolatile_name,"getReferenceVolatile")   do_name(putReferenceVolatile_name,"putReferenceVolatile") \
+  do_name(getBooleanVolatile_name,"getBooleanVolatile")       do_name(putBooleanVolatile_name,"putBooleanVolatile")     \
+  do_name(getByteVolatile_name,"getByteVolatile")             do_name(putByteVolatile_name,"putByteVolatile")           \
+  do_name(getShortVolatile_name,"getShortVolatile")           do_name(putShortVolatile_name,"putShortVolatile")         \
+  do_name(getCharVolatile_name,"getCharVolatile")             do_name(putCharVolatile_name,"putCharVolatile")           \
+  do_name(getIntVolatile_name,"getIntVolatile")               do_name(putIntVolatile_name,"putIntVolatile")             \
+  do_name(getLongVolatile_name,"getLongVolatile")             do_name(putLongVolatile_name,"putLongVolatile")           \
+  do_name(getFloatVolatile_name,"getFloatVolatile")           do_name(putFloatVolatile_name,"putFloatVolatile")         \
+  do_name(getDoubleVolatile_name,"getDoubleVolatile")         do_name(putDoubleVolatile_name,"putDoubleVolatile")       \
                                                                                                                         \
-  do_intrinsic(_getObjectVolatile,        jdk_internal_misc_Unsafe,     getObjectVolatile_name, getObject_signature,   F_RN)  \
-  do_intrinsic(_getBooleanVolatile,       jdk_internal_misc_Unsafe,     getBooleanVolatile_name, getBoolean_signature, F_RN)  \
-  do_intrinsic(_getByteVolatile,          jdk_internal_misc_Unsafe,     getByteVolatile_name, getByte_signature,       F_RN)  \
-  do_intrinsic(_getShortVolatile,         jdk_internal_misc_Unsafe,     getShortVolatile_name, getShort_signature,     F_RN)  \
-  do_intrinsic(_getCharVolatile,          jdk_internal_misc_Unsafe,     getCharVolatile_name, getChar_signature,       F_RN)  \
-  do_intrinsic(_getIntVolatile,           jdk_internal_misc_Unsafe,     getIntVolatile_name, getInt_signature,         F_RN)  \
-  do_intrinsic(_getLongVolatile,          jdk_internal_misc_Unsafe,     getLongVolatile_name, getLong_signature,       F_RN)  \
-  do_intrinsic(_getFloatVolatile,         jdk_internal_misc_Unsafe,     getFloatVolatile_name, getFloat_signature,     F_RN)  \
-  do_intrinsic(_getDoubleVolatile,        jdk_internal_misc_Unsafe,     getDoubleVolatile_name, getDouble_signature,   F_RN)  \
-  do_intrinsic(_putObjectVolatile,        jdk_internal_misc_Unsafe,     putObjectVolatile_name, putObject_signature,   F_RN)  \
-  do_intrinsic(_putBooleanVolatile,       jdk_internal_misc_Unsafe,     putBooleanVolatile_name, putBoolean_signature, F_RN)  \
-  do_intrinsic(_putByteVolatile,          jdk_internal_misc_Unsafe,     putByteVolatile_name, putByte_signature,       F_RN)  \
-  do_intrinsic(_putShortVolatile,         jdk_internal_misc_Unsafe,     putShortVolatile_name, putShort_signature,     F_RN)  \
-  do_intrinsic(_putCharVolatile,          jdk_internal_misc_Unsafe,     putCharVolatile_name, putChar_signature,       F_RN)  \
-  do_intrinsic(_putIntVolatile,           jdk_internal_misc_Unsafe,     putIntVolatile_name, putInt_signature,         F_RN)  \
-  do_intrinsic(_putLongVolatile,          jdk_internal_misc_Unsafe,     putLongVolatile_name, putLong_signature,       F_RN)  \
-  do_intrinsic(_putFloatVolatile,         jdk_internal_misc_Unsafe,     putFloatVolatile_name, putFloat_signature,     F_RN)  \
-  do_intrinsic(_putDoubleVolatile,        jdk_internal_misc_Unsafe,     putDoubleVolatile_name, putDouble_signature,   F_RN)  \
+  do_intrinsic(_getReferenceVolatile,     jdk_internal_misc_Unsafe,     getReferenceVolatile_name, getReference_signature, F_RN)  \
+  do_intrinsic(_getBooleanVolatile,       jdk_internal_misc_Unsafe,     getBooleanVolatile_name, getBoolean_signature,     F_RN)  \
+  do_intrinsic(_getByteVolatile,          jdk_internal_misc_Unsafe,     getByteVolatile_name, getByte_signature,           F_RN)  \
+  do_intrinsic(_getShortVolatile,         jdk_internal_misc_Unsafe,     getShortVolatile_name, getShort_signature,         F_RN)  \
+  do_intrinsic(_getCharVolatile,          jdk_internal_misc_Unsafe,     getCharVolatile_name, getChar_signature,           F_RN)  \
+  do_intrinsic(_getIntVolatile,           jdk_internal_misc_Unsafe,     getIntVolatile_name, getInt_signature,             F_RN)  \
+  do_intrinsic(_getLongVolatile,          jdk_internal_misc_Unsafe,     getLongVolatile_name, getLong_signature,           F_RN)  \
+  do_intrinsic(_getFloatVolatile,         jdk_internal_misc_Unsafe,     getFloatVolatile_name, getFloat_signature,         F_RN)  \
+  do_intrinsic(_getDoubleVolatile,        jdk_internal_misc_Unsafe,     getDoubleVolatile_name, getDouble_signature,       F_RN)  \
+  do_intrinsic(_putReferenceVolatile,     jdk_internal_misc_Unsafe,     putReferenceVolatile_name, putReference_signature, F_RN)  \
+  do_intrinsic(_putBooleanVolatile,       jdk_internal_misc_Unsafe,     putBooleanVolatile_name, putBoolean_signature,     F_RN)  \
+  do_intrinsic(_putByteVolatile,          jdk_internal_misc_Unsafe,     putByteVolatile_name, putByte_signature,           F_RN)  \
+  do_intrinsic(_putShortVolatile,         jdk_internal_misc_Unsafe,     putShortVolatile_name, putShort_signature,         F_RN)  \
+  do_intrinsic(_putCharVolatile,          jdk_internal_misc_Unsafe,     putCharVolatile_name, putChar_signature,           F_RN)  \
+  do_intrinsic(_putIntVolatile,           jdk_internal_misc_Unsafe,     putIntVolatile_name, putInt_signature,             F_RN)  \
+  do_intrinsic(_putLongVolatile,          jdk_internal_misc_Unsafe,     putLongVolatile_name, putLong_signature,           F_RN)  \
+  do_intrinsic(_putFloatVolatile,         jdk_internal_misc_Unsafe,     putFloatVolatile_name, putFloat_signature,         F_RN)  \
+  do_intrinsic(_putDoubleVolatile,        jdk_internal_misc_Unsafe,     putDoubleVolatile_name, putDouble_signature,       F_RN)  \
                                                                                                                         \
-  do_name(getObjectOpaque_name,"getObjectOpaque")     do_name(putObjectOpaque_name,"putObjectOpaque")                   \
-  do_name(getBooleanOpaque_name,"getBooleanOpaque")   do_name(putBooleanOpaque_name,"putBooleanOpaque")                 \
-  do_name(getByteOpaque_name,"getByteOpaque")         do_name(putByteOpaque_name,"putByteOpaque")                       \
-  do_name(getShortOpaque_name,"getShortOpaque")       do_name(putShortOpaque_name,"putShortOpaque")                     \
-  do_name(getCharOpaque_name,"getCharOpaque")         do_name(putCharOpaque_name,"putCharOpaque")                       \
-  do_name(getIntOpaque_name,"getIntOpaque")           do_name(putIntOpaque_name,"putIntOpaque")                         \
-  do_name(getLongOpaque_name,"getLongOpaque")         do_name(putLongOpaque_name,"putLongOpaque")                       \
-  do_name(getFloatOpaque_name,"getFloatOpaque")       do_name(putFloatOpaque_name,"putFloatOpaque")                     \
-  do_name(getDoubleOpaque_name,"getDoubleOpaque")     do_name(putDoubleOpaque_name,"putDoubleOpaque")                   \
+  do_name(getReferenceOpaque_name,"getReferenceOpaque") do_name(putReferenceOpaque_name,"putReferenceOpaque")           \
+  do_name(getBooleanOpaque_name,"getBooleanOpaque")     do_name(putBooleanOpaque_name,"putBooleanOpaque")               \
+  do_name(getByteOpaque_name,"getByteOpaque")           do_name(putByteOpaque_name,"putByteOpaque")                     \
+  do_name(getShortOpaque_name,"getShortOpaque")         do_name(putShortOpaque_name,"putShortOpaque")                   \
+  do_name(getCharOpaque_name,"getCharOpaque")           do_name(putCharOpaque_name,"putCharOpaque")                     \
+  do_name(getIntOpaque_name,"getIntOpaque")             do_name(putIntOpaque_name,"putIntOpaque")                       \
+  do_name(getLongOpaque_name,"getLongOpaque")           do_name(putLongOpaque_name,"putLongOpaque")                     \
+  do_name(getFloatOpaque_name,"getFloatOpaque")         do_name(putFloatOpaque_name,"putFloatOpaque")                   \
+  do_name(getDoubleOpaque_name,"getDoubleOpaque")       do_name(putDoubleOpaque_name,"putDoubleOpaque")                 \
                                                                                                                         \
-  do_intrinsic(_getObjectOpaque,          jdk_internal_misc_Unsafe,        getObjectOpaque_name, getObject_signature,   F_R)  \
-  do_intrinsic(_getBooleanOpaque,         jdk_internal_misc_Unsafe,        getBooleanOpaque_name, getBoolean_signature, F_R)  \
-  do_intrinsic(_getByteOpaque,            jdk_internal_misc_Unsafe,        getByteOpaque_name, getByte_signature,       F_R)  \
-  do_intrinsic(_getShortOpaque,           jdk_internal_misc_Unsafe,        getShortOpaque_name, getShort_signature,     F_R)  \
-  do_intrinsic(_getCharOpaque,            jdk_internal_misc_Unsafe,        getCharOpaque_name, getChar_signature,       F_R)  \
-  do_intrinsic(_getIntOpaque,             jdk_internal_misc_Unsafe,        getIntOpaque_name, getInt_signature,         F_R)  \
-  do_intrinsic(_getLongOpaque,            jdk_internal_misc_Unsafe,        getLongOpaque_name, getLong_signature,       F_R)  \
-  do_intrinsic(_getFloatOpaque,           jdk_internal_misc_Unsafe,        getFloatOpaque_name, getFloat_signature,     F_R)  \
-  do_intrinsic(_getDoubleOpaque,          jdk_internal_misc_Unsafe,        getDoubleOpaque_name, getDouble_signature,   F_R)  \
-  do_intrinsic(_putObjectOpaque,          jdk_internal_misc_Unsafe,        putObjectOpaque_name, putObject_signature,   F_R)  \
-  do_intrinsic(_putBooleanOpaque,         jdk_internal_misc_Unsafe,        putBooleanOpaque_name, putBoolean_signature, F_R)  \
-  do_intrinsic(_putByteOpaque,            jdk_internal_misc_Unsafe,        putByteOpaque_name, putByte_signature,       F_R)  \
-  do_intrinsic(_putShortOpaque,           jdk_internal_misc_Unsafe,        putShortOpaque_name, putShort_signature,     F_R)  \
-  do_intrinsic(_putCharOpaque,            jdk_internal_misc_Unsafe,        putCharOpaque_name, putChar_signature,       F_R)  \
-  do_intrinsic(_putIntOpaque,             jdk_internal_misc_Unsafe,        putIntOpaque_name, putInt_signature,         F_R)  \
-  do_intrinsic(_putLongOpaque,            jdk_internal_misc_Unsafe,        putLongOpaque_name, putLong_signature,       F_R)  \
-  do_intrinsic(_putFloatOpaque,           jdk_internal_misc_Unsafe,        putFloatOpaque_name, putFloat_signature,     F_R)  \
-  do_intrinsic(_putDoubleOpaque,          jdk_internal_misc_Unsafe,        putDoubleOpaque_name, putDouble_signature,   F_R)  \
+  do_intrinsic(_getReferenceOpaque,       jdk_internal_misc_Unsafe,        getReferenceOpaque_name, getReference_signature, F_R)  \
+  do_intrinsic(_getBooleanOpaque,         jdk_internal_misc_Unsafe,        getBooleanOpaque_name, getBoolean_signature,     F_R)  \
+  do_intrinsic(_getByteOpaque,            jdk_internal_misc_Unsafe,        getByteOpaque_name, getByte_signature,           F_R)  \
+  do_intrinsic(_getShortOpaque,           jdk_internal_misc_Unsafe,        getShortOpaque_name, getShort_signature,         F_R)  \
+  do_intrinsic(_getCharOpaque,            jdk_internal_misc_Unsafe,        getCharOpaque_name, getChar_signature,           F_R)  \
+  do_intrinsic(_getIntOpaque,             jdk_internal_misc_Unsafe,        getIntOpaque_name, getInt_signature,             F_R)  \
+  do_intrinsic(_getLongOpaque,            jdk_internal_misc_Unsafe,        getLongOpaque_name, getLong_signature,           F_R)  \
+  do_intrinsic(_getFloatOpaque,           jdk_internal_misc_Unsafe,        getFloatOpaque_name, getFloat_signature,         F_R)  \
+  do_intrinsic(_getDoubleOpaque,          jdk_internal_misc_Unsafe,        getDoubleOpaque_name, getDouble_signature,       F_R)  \
+  do_intrinsic(_putReferenceOpaque,       jdk_internal_misc_Unsafe,        putReferenceOpaque_name, putReference_signature, F_R)  \
+  do_intrinsic(_putBooleanOpaque,         jdk_internal_misc_Unsafe,        putBooleanOpaque_name, putBoolean_signature,     F_R)  \
+  do_intrinsic(_putByteOpaque,            jdk_internal_misc_Unsafe,        putByteOpaque_name, putByte_signature,           F_R)  \
+  do_intrinsic(_putShortOpaque,           jdk_internal_misc_Unsafe,        putShortOpaque_name, putShort_signature,         F_R)  \
+  do_intrinsic(_putCharOpaque,            jdk_internal_misc_Unsafe,        putCharOpaque_name, putChar_signature,           F_R)  \
+  do_intrinsic(_putIntOpaque,             jdk_internal_misc_Unsafe,        putIntOpaque_name, putInt_signature,             F_R)  \
+  do_intrinsic(_putLongOpaque,            jdk_internal_misc_Unsafe,        putLongOpaque_name, putLong_signature,           F_R)  \
+  do_intrinsic(_putFloatOpaque,           jdk_internal_misc_Unsafe,        putFloatOpaque_name, putFloat_signature,         F_R)  \
+  do_intrinsic(_putDoubleOpaque,          jdk_internal_misc_Unsafe,        putDoubleOpaque_name, putDouble_signature,       F_R)  \
                                                                                                                         \
-  do_name(getObjectAcquire_name,  "getObjectAcquire")    do_name(putObjectRelease_name,  "putObjectRelease")            \
-  do_name(getBooleanAcquire_name, "getBooleanAcquire")   do_name(putBooleanRelease_name, "putBooleanRelease")           \
-  do_name(getByteAcquire_name,    "getByteAcquire")      do_name(putByteRelease_name,    "putByteRelease")              \
-  do_name(getShortAcquire_name,   "getShortAcquire")     do_name(putShortRelease_name,   "putShortRelease")             \
-  do_name(getCharAcquire_name,    "getCharAcquire")      do_name(putCharRelease_name,    "putCharRelease")              \
-  do_name(getIntAcquire_name,     "getIntAcquire")       do_name(putIntRelease_name,     "putIntRelease")               \
-  do_name(getLongAcquire_name,    "getLongAcquire")      do_name(putLongRelease_name,    "putLongRelease")              \
-  do_name(getFloatAcquire_name,   "getFloatAcquire")     do_name(putFloatRelease_name,   "putFloatRelease")             \
-  do_name(getDoubleAcquire_name,  "getDoubleAcquire")    do_name(putDoubleRelease_name,  "putDoubleRelease")            \
+  do_name(getReferenceAcquire_name,  "getReferenceAcquire") do_name(putReferenceRelease_name,  "putReferenceRelease")   \
+  do_name(getBooleanAcquire_name, "getBooleanAcquire")      do_name(putBooleanRelease_name, "putBooleanRelease")        \
+  do_name(getByteAcquire_name,    "getByteAcquire")         do_name(putByteRelease_name,    "putByteRelease")           \
+  do_name(getShortAcquire_name,   "getShortAcquire")        do_name(putShortRelease_name,   "putShortRelease")          \
+  do_name(getCharAcquire_name,    "getCharAcquire")         do_name(putCharRelease_name,    "putCharRelease")           \
+  do_name(getIntAcquire_name,     "getIntAcquire")          do_name(putIntRelease_name,     "putIntRelease")            \
+  do_name(getLongAcquire_name,    "getLongAcquire")         do_name(putLongRelease_name,    "putLongRelease")           \
+  do_name(getFloatAcquire_name,   "getFloatAcquire")        do_name(putFloatRelease_name,   "putFloatRelease")          \
+  do_name(getDoubleAcquire_name,  "getDoubleAcquire")       do_name(putDoubleRelease_name,  "putDoubleRelease")         \
                                                                                                                         \
-  do_intrinsic(_getObjectAcquire,        jdk_internal_misc_Unsafe,        getObjectAcquire_name, getObject_signature,   F_R)  \
-  do_intrinsic(_getBooleanAcquire,       jdk_internal_misc_Unsafe,        getBooleanAcquire_name, getBoolean_signature, F_R)  \
-  do_intrinsic(_getByteAcquire,          jdk_internal_misc_Unsafe,        getByteAcquire_name, getByte_signature,       F_R)  \
-  do_intrinsic(_getShortAcquire,         jdk_internal_misc_Unsafe,        getShortAcquire_name, getShort_signature,     F_R)  \
-  do_intrinsic(_getCharAcquire,          jdk_internal_misc_Unsafe,        getCharAcquire_name, getChar_signature,       F_R)  \
-  do_intrinsic(_getIntAcquire,           jdk_internal_misc_Unsafe,        getIntAcquire_name, getInt_signature,         F_R)  \
-  do_intrinsic(_getLongAcquire,          jdk_internal_misc_Unsafe,        getLongAcquire_name, getLong_signature,       F_R)  \
-  do_intrinsic(_getFloatAcquire,         jdk_internal_misc_Unsafe,        getFloatAcquire_name, getFloat_signature,     F_R)  \
-  do_intrinsic(_getDoubleAcquire,        jdk_internal_misc_Unsafe,        getDoubleAcquire_name, getDouble_signature,   F_R)  \
-  do_intrinsic(_putObjectRelease,        jdk_internal_misc_Unsafe,        putObjectRelease_name, putObject_signature,   F_R)  \
-  do_intrinsic(_putBooleanRelease,       jdk_internal_misc_Unsafe,        putBooleanRelease_name, putBoolean_signature, F_R)  \
-  do_intrinsic(_putByteRelease,          jdk_internal_misc_Unsafe,        putByteRelease_name, putByte_signature,       F_R)  \
-  do_intrinsic(_putShortRelease,         jdk_internal_misc_Unsafe,        putShortRelease_name, putShort_signature,     F_R)  \
-  do_intrinsic(_putCharRelease,          jdk_internal_misc_Unsafe,        putCharRelease_name, putChar_signature,       F_R)  \
-  do_intrinsic(_putIntRelease,           jdk_internal_misc_Unsafe,        putIntRelease_name, putInt_signature,         F_R)  \
-  do_intrinsic(_putLongRelease,          jdk_internal_misc_Unsafe,        putLongRelease_name, putLong_signature,       F_R)  \
-  do_intrinsic(_putFloatRelease,         jdk_internal_misc_Unsafe,        putFloatRelease_name, putFloat_signature,     F_R)  \
-  do_intrinsic(_putDoubleRelease,        jdk_internal_misc_Unsafe,        putDoubleRelease_name, putDouble_signature,   F_R)  \
+  do_intrinsic(_getReferenceAcquire,     jdk_internal_misc_Unsafe,        getReferenceAcquire_name, getReference_signature, F_R)  \
+  do_intrinsic(_getBooleanAcquire,       jdk_internal_misc_Unsafe,        getBooleanAcquire_name, getBoolean_signature,     F_R)  \
+  do_intrinsic(_getByteAcquire,          jdk_internal_misc_Unsafe,        getByteAcquire_name, getByte_signature,           F_R)  \
+  do_intrinsic(_getShortAcquire,         jdk_internal_misc_Unsafe,        getShortAcquire_name, getShort_signature,         F_R)  \
+  do_intrinsic(_getCharAcquire,          jdk_internal_misc_Unsafe,        getCharAcquire_name, getChar_signature,           F_R)  \
+  do_intrinsic(_getIntAcquire,           jdk_internal_misc_Unsafe,        getIntAcquire_name, getInt_signature,             F_R)  \
+  do_intrinsic(_getLongAcquire,          jdk_internal_misc_Unsafe,        getLongAcquire_name, getLong_signature,           F_R)  \
+  do_intrinsic(_getFloatAcquire,         jdk_internal_misc_Unsafe,        getFloatAcquire_name, getFloat_signature,         F_R)  \
+  do_intrinsic(_getDoubleAcquire,        jdk_internal_misc_Unsafe,        getDoubleAcquire_name, getDouble_signature,       F_R)  \
+  do_intrinsic(_putReferenceRelease,     jdk_internal_misc_Unsafe,        putReferenceRelease_name, putReference_signature, F_R)  \
+  do_intrinsic(_putBooleanRelease,       jdk_internal_misc_Unsafe,        putBooleanRelease_name, putBoolean_signature,     F_R)  \
+  do_intrinsic(_putByteRelease,          jdk_internal_misc_Unsafe,        putByteRelease_name, putByte_signature,           F_R)  \
+  do_intrinsic(_putShortRelease,         jdk_internal_misc_Unsafe,        putShortRelease_name, putShort_signature,         F_R)  \
+  do_intrinsic(_putCharRelease,          jdk_internal_misc_Unsafe,        putCharRelease_name, putChar_signature,           F_R)  \
+  do_intrinsic(_putIntRelease,           jdk_internal_misc_Unsafe,        putIntRelease_name, putInt_signature,             F_R)  \
+  do_intrinsic(_putLongRelease,          jdk_internal_misc_Unsafe,        putLongRelease_name, putLong_signature,           F_R)  \
+  do_intrinsic(_putFloatRelease,         jdk_internal_misc_Unsafe,        putFloatRelease_name, putFloat_signature,         F_R)  \
+  do_intrinsic(_putDoubleRelease,        jdk_internal_misc_Unsafe,        putDoubleRelease_name, putDouble_signature,       F_R)  \
                                                                                                                         \
   do_name(getShortUnaligned_name,"getShortUnaligned")     do_name(putShortUnaligned_name,"putShortUnaligned")           \
   do_name(getCharUnaligned_name,"getCharUnaligned")       do_name(putCharUnaligned_name,"putCharUnaligned")             \
@@ -1233,8 +1233,8 @@
   do_intrinsic(_putIntUnaligned,           jdk_internal_misc_Unsafe,    putIntUnaligned_name, putInt_signature,         F_R)  \
   do_intrinsic(_putLongUnaligned,          jdk_internal_misc_Unsafe,    putLongUnaligned_name, putLong_signature,       F_R)  \
                                                                                                                         \
-  do_signature(compareAndSetObject_signature,      "(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z")        \
-  do_signature(compareAndExchangeObject_signature, "(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;") \
+  do_signature(compareAndSetReference_signature,      "(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z")        \
+  do_signature(compareAndExchangeReference_signature, "(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;") \
   do_signature(compareAndSetLong_signature,        "(Ljava/lang/Object;JJJ)Z")                                          \
   do_signature(compareAndExchangeLong_signature,   "(Ljava/lang/Object;JJJ)J")                                          \
   do_signature(compareAndSetInt_signature,         "(Ljava/lang/Object;JII)Z")                                          \
@@ -1244,52 +1244,52 @@
   do_signature(compareAndSetShort_signature,       "(Ljava/lang/Object;JSS)Z")                                          \
   do_signature(compareAndExchangeShort_signature,  "(Ljava/lang/Object;JSS)S")                                          \
                                                                                                                         \
-  do_name(compareAndSetObject_name,              "compareAndSetObject")                                                 \
-  do_name(compareAndExchangeObject_name,         "compareAndExchangeObject")                                            \
-  do_name(compareAndExchangeObjectAcquire_name,  "compareAndExchangeObjectAcquire")                                     \
-  do_name(compareAndExchangeObjectRelease_name,  "compareAndExchangeObjectRelease")                                     \
-  do_name(compareAndSetLong_name,                "compareAndSetLong")                                                   \
-  do_name(compareAndExchangeLong_name,           "compareAndExchangeLong")                                              \
-  do_name(compareAndExchangeLongAcquire_name,    "compareAndExchangeLongAcquire")                                       \
-  do_name(compareAndExchangeLongRelease_name,    "compareAndExchangeLongRelease")                                       \
-  do_name(compareAndSetInt_name,                 "compareAndSetInt")                                                    \
-  do_name(compareAndExchangeInt_name,            "compareAndExchangeInt")                                               \
-  do_name(compareAndExchangeIntAcquire_name,     "compareAndExchangeIntAcquire")                                        \
-  do_name(compareAndExchangeIntRelease_name,     "compareAndExchangeIntRelease")                                        \
-  do_name(compareAndSetByte_name,                "compareAndSetByte")                                                   \
-  do_name(compareAndExchangeByte_name,           "compareAndExchangeByte")                                              \
-  do_name(compareAndExchangeByteAcquire_name,    "compareAndExchangeByteAcquire")                                       \
-  do_name(compareAndExchangeByteRelease_name,    "compareAndExchangeByteRelease")                                       \
-  do_name(compareAndSetShort_name,               "compareAndSetShort")                                                  \
-  do_name(compareAndExchangeShort_name,          "compareAndExchangeShort")                                             \
-  do_name(compareAndExchangeShortAcquire_name,   "compareAndExchangeShortAcquire")                                      \
-  do_name(compareAndExchangeShortRelease_name,   "compareAndExchangeShortRelease")                                      \
+  do_name(compareAndSetReference_name,              "compareAndSetReference")                                           \
+  do_name(compareAndExchangeReference_name,         "compareAndExchangeReference")                                      \
+  do_name(compareAndExchangeReferenceAcquire_name,  "compareAndExchangeReferenceAcquire")                               \
+  do_name(compareAndExchangeReferenceRelease_name,  "compareAndExchangeReferenceRelease")                               \
+  do_name(compareAndSetLong_name,                   "compareAndSetLong")                                                \
+  do_name(compareAndExchangeLong_name,              "compareAndExchangeLong")                                           \
+  do_name(compareAndExchangeLongAcquire_name,       "compareAndExchangeLongAcquire")                                    \
+  do_name(compareAndExchangeLongRelease_name,       "compareAndExchangeLongRelease")                                    \
+  do_name(compareAndSetInt_name,                    "compareAndSetInt")                                                 \
+  do_name(compareAndExchangeInt_name,               "compareAndExchangeInt")                                            \
+  do_name(compareAndExchangeIntAcquire_name,        "compareAndExchangeIntAcquire")                                     \
+  do_name(compareAndExchangeIntRelease_name,        "compareAndExchangeIntRelease")                                     \
+  do_name(compareAndSetByte_name,                   "compareAndSetByte")                                                \
+  do_name(compareAndExchangeByte_name,              "compareAndExchangeByte")                                           \
+  do_name(compareAndExchangeByteAcquire_name,       "compareAndExchangeByteAcquire")                                    \
+  do_name(compareAndExchangeByteRelease_name,       "compareAndExchangeByteRelease")                                    \
+  do_name(compareAndSetShort_name,                  "compareAndSetShort")                                               \
+  do_name(compareAndExchangeShort_name,             "compareAndExchangeShort")                                          \
+  do_name(compareAndExchangeShortAcquire_name,      "compareAndExchangeShortAcquire")                                   \
+  do_name(compareAndExchangeShortRelease_name,      "compareAndExchangeShortRelease")                                   \
                                                                                                                         \
-  do_name(weakCompareAndSetObjectPlain_name,     "weakCompareAndSetObjectPlain")                                        \
-  do_name(weakCompareAndSetObjectAcquire_name,   "weakCompareAndSetObjectAcquire")                                      \
-  do_name(weakCompareAndSetObjectRelease_name,   "weakCompareAndSetObjectRelease")                                      \
-  do_name(weakCompareAndSetObject_name,          "weakCompareAndSetObject")                                             \
-  do_name(weakCompareAndSetLongPlain_name,       "weakCompareAndSetLongPlain")                                          \
-  do_name(weakCompareAndSetLongAcquire_name,     "weakCompareAndSetLongAcquire")                                        \
-  do_name(weakCompareAndSetLongRelease_name,     "weakCompareAndSetLongRelease")                                        \
-  do_name(weakCompareAndSetLong_name,            "weakCompareAndSetLong")                                               \
-  do_name(weakCompareAndSetIntPlain_name,        "weakCompareAndSetIntPlain")                                           \
-  do_name(weakCompareAndSetIntAcquire_name,      "weakCompareAndSetIntAcquire")                                         \
-  do_name(weakCompareAndSetIntRelease_name,      "weakCompareAndSetIntRelease")                                         \
-  do_name(weakCompareAndSetInt_name,             "weakCompareAndSetInt")                                                \
-  do_name(weakCompareAndSetBytePlain_name,       "weakCompareAndSetBytePlain")                                          \
-  do_name(weakCompareAndSetByteAcquire_name,     "weakCompareAndSetByteAcquire")                                        \
-  do_name(weakCompareAndSetByteRelease_name,     "weakCompareAndSetByteRelease")                                        \
-  do_name(weakCompareAndSetByte_name,            "weakCompareAndSetByte")                                               \
-  do_name(weakCompareAndSetShortPlain_name,      "weakCompareAndSetShortPlain")                                         \
-  do_name(weakCompareAndSetShortAcquire_name,    "weakCompareAndSetShortAcquire")                                       \
-  do_name(weakCompareAndSetShortRelease_name,    "weakCompareAndSetShortRelease")                                       \
-  do_name(weakCompareAndSetShort_name,           "weakCompareAndSetShort")                                              \
+  do_name(weakCompareAndSetReferencePlain_name,     "weakCompareAndSetReferencePlain")                                  \
+  do_name(weakCompareAndSetReferenceAcquire_name,   "weakCompareAndSetReferenceAcquire")                                \
+  do_name(weakCompareAndSetReferenceRelease_name,   "weakCompareAndSetReferenceRelease")                                \
+  do_name(weakCompareAndSetReference_name,          "weakCompareAndSetReference")                                       \
+  do_name(weakCompareAndSetLongPlain_name,          "weakCompareAndSetLongPlain")                                       \
+  do_name(weakCompareAndSetLongAcquire_name,        "weakCompareAndSetLongAcquire")                                     \
+  do_name(weakCompareAndSetLongRelease_name,        "weakCompareAndSetLongRelease")                                     \
+  do_name(weakCompareAndSetLong_name,               "weakCompareAndSetLong")                                            \
+  do_name(weakCompareAndSetIntPlain_name,           "weakCompareAndSetIntPlain")                                        \
+  do_name(weakCompareAndSetIntAcquire_name,         "weakCompareAndSetIntAcquire")                                      \
+  do_name(weakCompareAndSetIntRelease_name,         "weakCompareAndSetIntRelease")                                      \
+  do_name(weakCompareAndSetInt_name,                "weakCompareAndSetInt")                                             \
+  do_name(weakCompareAndSetBytePlain_name,          "weakCompareAndSetBytePlain")                                       \
+  do_name(weakCompareAndSetByteAcquire_name,        "weakCompareAndSetByteAcquire")                                     \
+  do_name(weakCompareAndSetByteRelease_name,        "weakCompareAndSetByteRelease")                                     \
+  do_name(weakCompareAndSetByte_name,               "weakCompareAndSetByte")                                            \
+  do_name(weakCompareAndSetShortPlain_name,         "weakCompareAndSetShortPlain")                                      \
+  do_name(weakCompareAndSetShortAcquire_name,       "weakCompareAndSetShortAcquire")                                    \
+  do_name(weakCompareAndSetShortRelease_name,       "weakCompareAndSetShortRelease")                                    \
+  do_name(weakCompareAndSetShort_name,              "weakCompareAndSetShort")                                           \
                                                                                                                         \
-  do_intrinsic(_compareAndSetObject,              jdk_internal_misc_Unsafe,  compareAndSetObject_name,              compareAndSetObject_signature,      F_RN) \
-  do_intrinsic(_compareAndExchangeObject,         jdk_internal_misc_Unsafe,  compareAndExchangeObject_name,         compareAndExchangeObject_signature, F_RN) \
-  do_intrinsic(_compareAndExchangeObjectAcquire,  jdk_internal_misc_Unsafe,  compareAndExchangeObjectAcquire_name,  compareAndExchangeObject_signature, F_R)  \
-  do_intrinsic(_compareAndExchangeObjectRelease,  jdk_internal_misc_Unsafe,  compareAndExchangeObjectRelease_name,  compareAndExchangeObject_signature, F_R)  \
+  do_intrinsic(_compareAndSetReference,              jdk_internal_misc_Unsafe,  compareAndSetReference_name,              compareAndSetReference_signature,      F_RN) \
+  do_intrinsic(_compareAndExchangeReference,         jdk_internal_misc_Unsafe,  compareAndExchangeReference_name,         compareAndExchangeReference_signature, F_RN) \
+  do_intrinsic(_compareAndExchangeReferenceAcquire,  jdk_internal_misc_Unsafe,  compareAndExchangeReferenceAcquire_name,  compareAndExchangeReference_signature, F_R)  \
+  do_intrinsic(_compareAndExchangeReferenceRelease,  jdk_internal_misc_Unsafe,  compareAndExchangeReferenceRelease_name,  compareAndExchangeReference_signature, F_R)  \
   do_intrinsic(_compareAndSetLong,                jdk_internal_misc_Unsafe,  compareAndSetLong_name,                compareAndSetLong_signature,        F_RN) \
   do_intrinsic(_compareAndExchangeLong,           jdk_internal_misc_Unsafe,  compareAndExchangeLong_name,           compareAndExchangeLong_signature,   F_RN) \
   do_intrinsic(_compareAndExchangeLongAcquire,    jdk_internal_misc_Unsafe,  compareAndExchangeLongAcquire_name,    compareAndExchangeLong_signature,   F_R)  \
@@ -1307,10 +1307,10 @@
   do_intrinsic(_compareAndExchangeShortAcquire,   jdk_internal_misc_Unsafe,  compareAndExchangeShortAcquire_name,   compareAndExchangeShort_signature,  F_R)  \
   do_intrinsic(_compareAndExchangeShortRelease,   jdk_internal_misc_Unsafe,  compareAndExchangeShortRelease_name,   compareAndExchangeShort_signature,  F_R)  \
                                                                                                                                                              \
-  do_intrinsic(_weakCompareAndSetObjectPlain,     jdk_internal_misc_Unsafe,  weakCompareAndSetObjectPlain_name,     compareAndSetObject_signature,      F_R) \
-  do_intrinsic(_weakCompareAndSetObjectAcquire,   jdk_internal_misc_Unsafe,  weakCompareAndSetObjectAcquire_name,   compareAndSetObject_signature,      F_R) \
-  do_intrinsic(_weakCompareAndSetObjectRelease,   jdk_internal_misc_Unsafe,  weakCompareAndSetObjectRelease_name,   compareAndSetObject_signature,      F_R) \
-  do_intrinsic(_weakCompareAndSetObject,          jdk_internal_misc_Unsafe,  weakCompareAndSetObject_name,          compareAndSetObject_signature,      F_R) \
+  do_intrinsic(_weakCompareAndSetReferencePlain,  jdk_internal_misc_Unsafe,  weakCompareAndSetReferencePlain_name,     compareAndSetReference_signature,      F_R) \
+  do_intrinsic(_weakCompareAndSetReferenceAcquire,jdk_internal_misc_Unsafe,  weakCompareAndSetReferenceAcquire_name,   compareAndSetReference_signature,      F_R) \
+  do_intrinsic(_weakCompareAndSetReferenceRelease,jdk_internal_misc_Unsafe,  weakCompareAndSetReferenceRelease_name,   compareAndSetReference_signature,      F_R) \
+  do_intrinsic(_weakCompareAndSetReference,       jdk_internal_misc_Unsafe,  weakCompareAndSetReference_name,          compareAndSetReference_signature,      F_R) \
   do_intrinsic(_weakCompareAndSetLongPlain,       jdk_internal_misc_Unsafe,  weakCompareAndSetLongPlain_name,       compareAndSetLong_signature,        F_R) \
   do_intrinsic(_weakCompareAndSetLongAcquire,     jdk_internal_misc_Unsafe,  weakCompareAndSetLongAcquire_name,     compareAndSetLong_signature,        F_R) \
   do_intrinsic(_weakCompareAndSetLongRelease,     jdk_internal_misc_Unsafe,  weakCompareAndSetLongRelease_name,     compareAndSetLong_signature,        F_R) \
@@ -1352,9 +1352,9 @@
   do_intrinsic(_getAndSetShort,           jdk_internal_misc_Unsafe,     getAndSetShort_name, getAndSetShort_signature, F_R)   \
    do_name(     getAndSetShort_name,                                    "getAndSetShort")                                     \
    do_alias(    getAndSetShort_signature,                               /*"(Ljava/lang/Object;JS)S"*/ getAndAddShort_signature) \
-  do_intrinsic(_getAndSetObject,          jdk_internal_misc_Unsafe,     getAndSetObject_name, getAndSetObject_signature,  F_R)\
-   do_name(     getAndSetObject_name,                                   "getAndSetObject")                                    \
-   do_signature(getAndSetObject_signature,                              "(Ljava/lang/Object;JLjava/lang/Object;)Ljava/lang/Object;" ) \
+  do_intrinsic(_getAndSetReference,       jdk_internal_misc_Unsafe,     getAndSetReference_name, getAndSetReference_signature, F_R) \
+   do_name(     getAndSetReference_name,                                "getAndSetReference")                                  \
+   do_signature(getAndSetReference_signature,                           "(Ljava/lang/Object;JLjava/lang/Object;)Ljava/lang/Object;" ) \
                                                                                                                                \
    /* (2) Bytecode intrinsics                                                                        */                        \
                                                                                                                                \
@@ -1541,7 +1541,7 @@
     #undef VM_INTRINSIC_ENUM
 
     ID_LIMIT,
-    LAST_COMPILER_INLINE = _getAndSetObject,
+    LAST_COMPILER_INLINE = _getAndSetReference,
     FIRST_MH_SIG_POLY    = _invokeGeneric,
     FIRST_MH_STATIC      = _linkToVirtual,
     LAST_MH_SIG_POLY     = _linkToInterface,
--- a/src/hotspot/share/gc/g1/c2/g1BarrierSetC2.hpp	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/hotspot/share/gc/g1/c2/g1BarrierSetC2.hpp	Mon Oct 22 17:00:04 2018 -0700
@@ -76,7 +76,7 @@
 
   // Helper for unsafe accesses, that may or may not be on the referent field.
   // Generates the guards that check whether the result of
-  // Unsafe.getObject should be recorded in an SATB log buffer.
+  // Unsafe.getReference should be recorded in an SATB log buffer.
   void insert_pre_barrier(GraphKit* kit, Node* base_oop, Node* offset, Node* pre_val, bool need_mem_bar) const;
 
   static const TypeFunc* write_ref_field_pre_entry_Type();
--- a/src/hotspot/share/opto/c2compiler.cpp	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/hotspot/share/opto/c2compiler.cpp	Mon Oct 22 17:00:04 2018 -0700
@@ -248,7 +248,7 @@
     break;
 
   /* CompareAndSet, Object: */
-  case vmIntrinsics::_compareAndSetObject:
+  case vmIntrinsics::_compareAndSetReference:
 #ifdef _LP64
     if ( UseCompressedOops && !Matcher::match_rule_supported(Op_CompareAndSwapN)) return false;
     if (!UseCompressedOops && !Matcher::match_rule_supported(Op_CompareAndSwapP)) return false;
@@ -256,10 +256,10 @@
     if (!Matcher::match_rule_supported(Op_CompareAndSwapP)) return false;
 #endif
     break;
-  case vmIntrinsics::_weakCompareAndSetObjectPlain:
-  case vmIntrinsics::_weakCompareAndSetObjectAcquire:
-  case vmIntrinsics::_weakCompareAndSetObjectRelease:
-  case vmIntrinsics::_weakCompareAndSetObject:
+  case vmIntrinsics::_weakCompareAndSetReferencePlain:
+  case vmIntrinsics::_weakCompareAndSetReferenceAcquire:
+  case vmIntrinsics::_weakCompareAndSetReferenceRelease:
+  case vmIntrinsics::_weakCompareAndSetReference:
 #ifdef _LP64
     if ( UseCompressedOops && !Matcher::match_rule_supported(Op_WeakCompareAndSwapN)) return false;
     if (!UseCompressedOops && !Matcher::match_rule_supported(Op_WeakCompareAndSwapP)) return false;
@@ -312,9 +312,9 @@
     break;
 
   /* CompareAndExchange, Object: */
-  case vmIntrinsics::_compareAndExchangeObject:
-  case vmIntrinsics::_compareAndExchangeObjectAcquire:
-  case vmIntrinsics::_compareAndExchangeObjectRelease:
+  case vmIntrinsics::_compareAndExchangeReference:
+  case vmIntrinsics::_compareAndExchangeReferenceAcquire:
+  case vmIntrinsics::_compareAndExchangeReferenceRelease:
 #ifdef _LP64
     if ( UseCompressedOops && !Matcher::match_rule_supported(Op_CompareAndExchangeN)) return false;
     if (!UseCompressedOops && !Matcher::match_rule_supported(Op_CompareAndExchangeP)) return false;
@@ -376,7 +376,7 @@
   case vmIntrinsics::_getAndSetLong:
     if (!Matcher::match_rule_supported(Op_GetAndSetL)) return false;
     break;
-  case vmIntrinsics::_getAndSetObject:
+  case vmIntrinsics::_getAndSetReference:
 #ifdef _LP64
     if (!UseCompressedOops && !Matcher::match_rule_supported(Op_GetAndSetP)) return false;
     if (UseCompressedOops && !Matcher::match_rule_supported(Op_GetAndSetN)) return false;
@@ -455,7 +455,7 @@
   case vmIntrinsics::_getCharsStringU:
   case vmIntrinsics::_getCharStringU:
   case vmIntrinsics::_putCharStringU:
-  case vmIntrinsics::_getObject:
+  case vmIntrinsics::_getReference:
   case vmIntrinsics::_getBoolean:
   case vmIntrinsics::_getByte:
   case vmIntrinsics::_getShort:
@@ -464,7 +464,7 @@
   case vmIntrinsics::_getLong:
   case vmIntrinsics::_getFloat:
   case vmIntrinsics::_getDouble:
-  case vmIntrinsics::_putObject:
+  case vmIntrinsics::_putReference:
   case vmIntrinsics::_putBoolean:
   case vmIntrinsics::_putByte:
   case vmIntrinsics::_putShort:
@@ -473,7 +473,7 @@
   case vmIntrinsics::_putLong:
   case vmIntrinsics::_putFloat:
   case vmIntrinsics::_putDouble:
-  case vmIntrinsics::_getObjectVolatile:
+  case vmIntrinsics::_getReferenceVolatile:
   case vmIntrinsics::_getBooleanVolatile:
   case vmIntrinsics::_getByteVolatile:
   case vmIntrinsics::_getShortVolatile:
@@ -482,7 +482,7 @@
   case vmIntrinsics::_getLongVolatile:
   case vmIntrinsics::_getFloatVolatile:
   case vmIntrinsics::_getDoubleVolatile:
-  case vmIntrinsics::_putObjectVolatile:
+  case vmIntrinsics::_putReferenceVolatile:
   case vmIntrinsics::_putBooleanVolatile:
   case vmIntrinsics::_putByteVolatile:
   case vmIntrinsics::_putShortVolatile:
@@ -491,7 +491,7 @@
   case vmIntrinsics::_putLongVolatile:
   case vmIntrinsics::_putFloatVolatile:
   case vmIntrinsics::_putDoubleVolatile:
-  case vmIntrinsics::_getObjectAcquire:
+  case vmIntrinsics::_getReferenceAcquire:
   case vmIntrinsics::_getBooleanAcquire:
   case vmIntrinsics::_getByteAcquire:
   case vmIntrinsics::_getShortAcquire:
@@ -500,7 +500,7 @@
   case vmIntrinsics::_getLongAcquire:
   case vmIntrinsics::_getFloatAcquire:
   case vmIntrinsics::_getDoubleAcquire:
-  case vmIntrinsics::_putObjectRelease:
+  case vmIntrinsics::_putReferenceRelease:
   case vmIntrinsics::_putBooleanRelease:
   case vmIntrinsics::_putByteRelease:
   case vmIntrinsics::_putShortRelease:
@@ -509,7 +509,7 @@
   case vmIntrinsics::_putLongRelease:
   case vmIntrinsics::_putFloatRelease:
   case vmIntrinsics::_putDoubleRelease:
-  case vmIntrinsics::_getObjectOpaque:
+  case vmIntrinsics::_getReferenceOpaque:
   case vmIntrinsics::_getBooleanOpaque:
   case vmIntrinsics::_getByteOpaque:
   case vmIntrinsics::_getShortOpaque:
@@ -518,7 +518,7 @@
   case vmIntrinsics::_getLongOpaque:
   case vmIntrinsics::_getFloatOpaque:
   case vmIntrinsics::_getDoubleOpaque:
-  case vmIntrinsics::_putObjectOpaque:
+  case vmIntrinsics::_putReferenceOpaque:
   case vmIntrinsics::_putBooleanOpaque:
   case vmIntrinsics::_putByteOpaque:
   case vmIntrinsics::_putShortOpaque:
--- a/src/hotspot/share/opto/library_call.cpp	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/hotspot/share/opto/library_call.cpp	Mon Oct 22 17:00:04 2018 -0700
@@ -587,7 +587,7 @@
   case vmIntrinsics::_inflateStringC:
   case vmIntrinsics::_inflateStringB:           return inline_string_copy(!is_compress);
 
-  case vmIntrinsics::_getObject:                return inline_unsafe_access(!is_store, T_OBJECT,   Relaxed, false);
+  case vmIntrinsics::_getReference:             return inline_unsafe_access(!is_store, T_OBJECT,   Relaxed, false);
   case vmIntrinsics::_getBoolean:               return inline_unsafe_access(!is_store, T_BOOLEAN,  Relaxed, false);
   case vmIntrinsics::_getByte:                  return inline_unsafe_access(!is_store, T_BYTE,     Relaxed, false);
   case vmIntrinsics::_getShort:                 return inline_unsafe_access(!is_store, T_SHORT,    Relaxed, false);
@@ -597,7 +597,7 @@
   case vmIntrinsics::_getFloat:                 return inline_unsafe_access(!is_store, T_FLOAT,    Relaxed, false);
   case vmIntrinsics::_getDouble:                return inline_unsafe_access(!is_store, T_DOUBLE,   Relaxed, false);
 
-  case vmIntrinsics::_putObject:                return inline_unsafe_access( is_store, T_OBJECT,   Relaxed, false);
+  case vmIntrinsics::_putReference:             return inline_unsafe_access( is_store, T_OBJECT,   Relaxed, false);
   case vmIntrinsics::_putBoolean:               return inline_unsafe_access( is_store, T_BOOLEAN,  Relaxed, false);
   case vmIntrinsics::_putByte:                  return inline_unsafe_access( is_store, T_BYTE,     Relaxed, false);
   case vmIntrinsics::_putShort:                 return inline_unsafe_access( is_store, T_SHORT,    Relaxed, false);
@@ -607,7 +607,7 @@
   case vmIntrinsics::_putFloat:                 return inline_unsafe_access( is_store, T_FLOAT,    Relaxed, false);
   case vmIntrinsics::_putDouble:                return inline_unsafe_access( is_store, T_DOUBLE,   Relaxed, false);
 
-  case vmIntrinsics::_getObjectVolatile:        return inline_unsafe_access(!is_store, T_OBJECT,   Volatile, false);
+  case vmIntrinsics::_getReferenceVolatile:     return inline_unsafe_access(!is_store, T_OBJECT,   Volatile, false);
   case vmIntrinsics::_getBooleanVolatile:       return inline_unsafe_access(!is_store, T_BOOLEAN,  Volatile, false);
   case vmIntrinsics::_getByteVolatile:          return inline_unsafe_access(!is_store, T_BYTE,     Volatile, false);
   case vmIntrinsics::_getShortVolatile:         return inline_unsafe_access(!is_store, T_SHORT,    Volatile, false);
@@ -617,7 +617,7 @@
   case vmIntrinsics::_getFloatVolatile:         return inline_unsafe_access(!is_store, T_FLOAT,    Volatile, false);
   case vmIntrinsics::_getDoubleVolatile:        return inline_unsafe_access(!is_store, T_DOUBLE,   Volatile, false);
 
-  case vmIntrinsics::_putObjectVolatile:        return inline_unsafe_access( is_store, T_OBJECT,   Volatile, false);
+  case vmIntrinsics::_putReferenceVolatile:     return inline_unsafe_access( is_store, T_OBJECT,   Volatile, false);
   case vmIntrinsics::_putBooleanVolatile:       return inline_unsafe_access( is_store, T_BOOLEAN,  Volatile, false);
   case vmIntrinsics::_putByteVolatile:          return inline_unsafe_access( is_store, T_BYTE,     Volatile, false);
   case vmIntrinsics::_putShortVolatile:         return inline_unsafe_access( is_store, T_SHORT,    Volatile, false);
@@ -637,7 +637,7 @@
   case vmIntrinsics::_putIntUnaligned:          return inline_unsafe_access( is_store, T_INT,      Relaxed, true);
   case vmIntrinsics::_putLongUnaligned:         return inline_unsafe_access( is_store, T_LONG,     Relaxed, true);
 
-  case vmIntrinsics::_getObjectAcquire:         return inline_unsafe_access(!is_store, T_OBJECT,   Acquire, false);
+  case vmIntrinsics::_getReferenceAcquire:      return inline_unsafe_access(!is_store, T_OBJECT,   Acquire, false);
   case vmIntrinsics::_getBooleanAcquire:        return inline_unsafe_access(!is_store, T_BOOLEAN,  Acquire, false);
   case vmIntrinsics::_getByteAcquire:           return inline_unsafe_access(!is_store, T_BYTE,     Acquire, false);
   case vmIntrinsics::_getShortAcquire:          return inline_unsafe_access(!is_store, T_SHORT,    Acquire, false);
@@ -647,7 +647,7 @@
   case vmIntrinsics::_getFloatAcquire:          return inline_unsafe_access(!is_store, T_FLOAT,    Acquire, false);
   case vmIntrinsics::_getDoubleAcquire:         return inline_unsafe_access(!is_store, T_DOUBLE,   Acquire, false);
 
-  case vmIntrinsics::_putObjectRelease:         return inline_unsafe_access( is_store, T_OBJECT,   Release, false);
+  case vmIntrinsics::_putReferenceRelease:      return inline_unsafe_access( is_store, T_OBJECT,   Release, false);
   case vmIntrinsics::_putBooleanRelease:        return inline_unsafe_access( is_store, T_BOOLEAN,  Release, false);
   case vmIntrinsics::_putByteRelease:           return inline_unsafe_access( is_store, T_BYTE,     Release, false);
   case vmIntrinsics::_putShortRelease:          return inline_unsafe_access( is_store, T_SHORT,    Release, false);
@@ -657,7 +657,7 @@
   case vmIntrinsics::_putFloatRelease:          return inline_unsafe_access( is_store, T_FLOAT,    Release, false);
   case vmIntrinsics::_putDoubleRelease:         return inline_unsafe_access( is_store, T_DOUBLE,   Release, false);
 
-  case vmIntrinsics::_getObjectOpaque:          return inline_unsafe_access(!is_store, T_OBJECT,   Opaque, false);
+  case vmIntrinsics::_getReferenceOpaque:       return inline_unsafe_access(!is_store, T_OBJECT,   Opaque, false);
   case vmIntrinsics::_getBooleanOpaque:         return inline_unsafe_access(!is_store, T_BOOLEAN,  Opaque, false);
   case vmIntrinsics::_getByteOpaque:            return inline_unsafe_access(!is_store, T_BYTE,     Opaque, false);
   case vmIntrinsics::_getShortOpaque:           return inline_unsafe_access(!is_store, T_SHORT,    Opaque, false);
@@ -667,7 +667,7 @@
   case vmIntrinsics::_getFloatOpaque:           return inline_unsafe_access(!is_store, T_FLOAT,    Opaque, false);
   case vmIntrinsics::_getDoubleOpaque:          return inline_unsafe_access(!is_store, T_DOUBLE,   Opaque, false);
 
-  case vmIntrinsics::_putObjectOpaque:          return inline_unsafe_access( is_store, T_OBJECT,   Opaque, false);
+  case vmIntrinsics::_putReferenceOpaque:       return inline_unsafe_access( is_store, T_OBJECT,   Opaque, false);
   case vmIntrinsics::_putBooleanOpaque:         return inline_unsafe_access( is_store, T_BOOLEAN,  Opaque, false);
   case vmIntrinsics::_putByteOpaque:            return inline_unsafe_access( is_store, T_BYTE,     Opaque, false);
   case vmIntrinsics::_putShortOpaque:           return inline_unsafe_access( is_store, T_SHORT,    Opaque, false);
@@ -677,48 +677,48 @@
   case vmIntrinsics::_putFloatOpaque:           return inline_unsafe_access( is_store, T_FLOAT,    Opaque, false);
   case vmIntrinsics::_putDoubleOpaque:          return inline_unsafe_access( is_store, T_DOUBLE,   Opaque, false);
 
-  case vmIntrinsics::_compareAndSetObject:              return inline_unsafe_load_store(T_OBJECT, LS_cmp_swap,      Volatile);
-  case vmIntrinsics::_compareAndSetByte:                return inline_unsafe_load_store(T_BYTE,   LS_cmp_swap,      Volatile);
-  case vmIntrinsics::_compareAndSetShort:               return inline_unsafe_load_store(T_SHORT,  LS_cmp_swap,      Volatile);
-  case vmIntrinsics::_compareAndSetInt:                 return inline_unsafe_load_store(T_INT,    LS_cmp_swap,      Volatile);
-  case vmIntrinsics::_compareAndSetLong:                return inline_unsafe_load_store(T_LONG,   LS_cmp_swap,      Volatile);
-
-  case vmIntrinsics::_weakCompareAndSetObjectPlain:     return inline_unsafe_load_store(T_OBJECT, LS_cmp_swap_weak, Relaxed);
-  case vmIntrinsics::_weakCompareAndSetObjectAcquire:   return inline_unsafe_load_store(T_OBJECT, LS_cmp_swap_weak, Acquire);
-  case vmIntrinsics::_weakCompareAndSetObjectRelease:   return inline_unsafe_load_store(T_OBJECT, LS_cmp_swap_weak, Release);
-  case vmIntrinsics::_weakCompareAndSetObject:          return inline_unsafe_load_store(T_OBJECT, LS_cmp_swap_weak, Volatile);
-  case vmIntrinsics::_weakCompareAndSetBytePlain:       return inline_unsafe_load_store(T_BYTE,   LS_cmp_swap_weak, Relaxed);
-  case vmIntrinsics::_weakCompareAndSetByteAcquire:     return inline_unsafe_load_store(T_BYTE,   LS_cmp_swap_weak, Acquire);
-  case vmIntrinsics::_weakCompareAndSetByteRelease:     return inline_unsafe_load_store(T_BYTE,   LS_cmp_swap_weak, Release);
-  case vmIntrinsics::_weakCompareAndSetByte:            return inline_unsafe_load_store(T_BYTE,   LS_cmp_swap_weak, Volatile);
-  case vmIntrinsics::_weakCompareAndSetShortPlain:      return inline_unsafe_load_store(T_SHORT,  LS_cmp_swap_weak, Relaxed);
-  case vmIntrinsics::_weakCompareAndSetShortAcquire:    return inline_unsafe_load_store(T_SHORT,  LS_cmp_swap_weak, Acquire);
-  case vmIntrinsics::_weakCompareAndSetShortRelease:    return inline_unsafe_load_store(T_SHORT,  LS_cmp_swap_weak, Release);
-  case vmIntrinsics::_weakCompareAndSetShort:           return inline_unsafe_load_store(T_SHORT,  LS_cmp_swap_weak, Volatile);
-  case vmIntrinsics::_weakCompareAndSetIntPlain:        return inline_unsafe_load_store(T_INT,    LS_cmp_swap_weak, Relaxed);
-  case vmIntrinsics::_weakCompareAndSetIntAcquire:      return inline_unsafe_load_store(T_INT,    LS_cmp_swap_weak, Acquire);
-  case vmIntrinsics::_weakCompareAndSetIntRelease:      return inline_unsafe_load_store(T_INT,    LS_cmp_swap_weak, Release);
-  case vmIntrinsics::_weakCompareAndSetInt:             return inline_unsafe_load_store(T_INT,    LS_cmp_swap_weak, Volatile);
-  case vmIntrinsics::_weakCompareAndSetLongPlain:       return inline_unsafe_load_store(T_LONG,   LS_cmp_swap_weak, Relaxed);
-  case vmIntrinsics::_weakCompareAndSetLongAcquire:     return inline_unsafe_load_store(T_LONG,   LS_cmp_swap_weak, Acquire);
-  case vmIntrinsics::_weakCompareAndSetLongRelease:     return inline_unsafe_load_store(T_LONG,   LS_cmp_swap_weak, Release);
-  case vmIntrinsics::_weakCompareAndSetLong:            return inline_unsafe_load_store(T_LONG,   LS_cmp_swap_weak, Volatile);
-
-  case vmIntrinsics::_compareAndExchangeObject:         return inline_unsafe_load_store(T_OBJECT, LS_cmp_exchange,  Volatile);
-  case vmIntrinsics::_compareAndExchangeObjectAcquire:  return inline_unsafe_load_store(T_OBJECT, LS_cmp_exchange,  Acquire);
-  case vmIntrinsics::_compareAndExchangeObjectRelease:  return inline_unsafe_load_store(T_OBJECT, LS_cmp_exchange,  Release);
-  case vmIntrinsics::_compareAndExchangeByte:           return inline_unsafe_load_store(T_BYTE,   LS_cmp_exchange,  Volatile);
-  case vmIntrinsics::_compareAndExchangeByteAcquire:    return inline_unsafe_load_store(T_BYTE,   LS_cmp_exchange,  Acquire);
-  case vmIntrinsics::_compareAndExchangeByteRelease:    return inline_unsafe_load_store(T_BYTE,   LS_cmp_exchange,  Release);
-  case vmIntrinsics::_compareAndExchangeShort:          return inline_unsafe_load_store(T_SHORT,  LS_cmp_exchange,  Volatile);
-  case vmIntrinsics::_compareAndExchangeShortAcquire:   return inline_unsafe_load_store(T_SHORT,  LS_cmp_exchange,  Acquire);
-  case vmIntrinsics::_compareAndExchangeShortRelease:   return inline_unsafe_load_store(T_SHORT,  LS_cmp_exchange,  Release);
-  case vmIntrinsics::_compareAndExchangeInt:            return inline_unsafe_load_store(T_INT,    LS_cmp_exchange,  Volatile);
-  case vmIntrinsics::_compareAndExchangeIntAcquire:     return inline_unsafe_load_store(T_INT,    LS_cmp_exchange,  Acquire);
-  case vmIntrinsics::_compareAndExchangeIntRelease:     return inline_unsafe_load_store(T_INT,    LS_cmp_exchange,  Release);
-  case vmIntrinsics::_compareAndExchangeLong:           return inline_unsafe_load_store(T_LONG,   LS_cmp_exchange,  Volatile);
-  case vmIntrinsics::_compareAndExchangeLongAcquire:    return inline_unsafe_load_store(T_LONG,   LS_cmp_exchange,  Acquire);
-  case vmIntrinsics::_compareAndExchangeLongRelease:    return inline_unsafe_load_store(T_LONG,   LS_cmp_exchange,  Release);
+  case vmIntrinsics::_compareAndSetReference:   return inline_unsafe_load_store(T_OBJECT, LS_cmp_swap,      Volatile);
+  case vmIntrinsics::_compareAndSetByte:        return inline_unsafe_load_store(T_BYTE,   LS_cmp_swap,      Volatile);
+  case vmIntrinsics::_compareAndSetShort:       return inline_unsafe_load_store(T_SHORT,  LS_cmp_swap,      Volatile);
+  case vmIntrinsics::_compareAndSetInt:         return inline_unsafe_load_store(T_INT,    LS_cmp_swap,      Volatile);
+  case vmIntrinsics::_compareAndSetLong:        return inline_unsafe_load_store(T_LONG,   LS_cmp_swap,      Volatile);
+
+  case vmIntrinsics::_weakCompareAndSetReferencePlain:     return inline_unsafe_load_store(T_OBJECT, LS_cmp_swap_weak, Relaxed);
+  case vmIntrinsics::_weakCompareAndSetReferenceAcquire:   return inline_unsafe_load_store(T_OBJECT, LS_cmp_swap_weak, Acquire);
+  case vmIntrinsics::_weakCompareAndSetReferenceRelease:   return inline_unsafe_load_store(T_OBJECT, LS_cmp_swap_weak, Release);
+  case vmIntrinsics::_weakCompareAndSetReference:          return inline_unsafe_load_store(T_OBJECT, LS_cmp_swap_weak, Volatile);
+  case vmIntrinsics::_weakCompareAndSetBytePlain:          return inline_unsafe_load_store(T_BYTE,   LS_cmp_swap_weak, Relaxed);
+  case vmIntrinsics::_weakCompareAndSetByteAcquire:        return inline_unsafe_load_store(T_BYTE,   LS_cmp_swap_weak, Acquire);
+  case vmIntrinsics::_weakCompareAndSetByteRelease:        return inline_unsafe_load_store(T_BYTE,   LS_cmp_swap_weak, Release);
+  case vmIntrinsics::_weakCompareAndSetByte:               return inline_unsafe_load_store(T_BYTE,   LS_cmp_swap_weak, Volatile);
+  case vmIntrinsics::_weakCompareAndSetShortPlain:         return inline_unsafe_load_store(T_SHORT,  LS_cmp_swap_weak, Relaxed);
+  case vmIntrinsics::_weakCompareAndSetShortAcquire:       return inline_unsafe_load_store(T_SHORT,  LS_cmp_swap_weak, Acquire);
+  case vmIntrinsics::_weakCompareAndSetShortRelease:       return inline_unsafe_load_store(T_SHORT,  LS_cmp_swap_weak, Release);
+  case vmIntrinsics::_weakCompareAndSetShort:              return inline_unsafe_load_store(T_SHORT,  LS_cmp_swap_weak, Volatile);
+  case vmIntrinsics::_weakCompareAndSetIntPlain:           return inline_unsafe_load_store(T_INT,    LS_cmp_swap_weak, Relaxed);
+  case vmIntrinsics::_weakCompareAndSetIntAcquire:         return inline_unsafe_load_store(T_INT,    LS_cmp_swap_weak, Acquire);
+  case vmIntrinsics::_weakCompareAndSetIntRelease:         return inline_unsafe_load_store(T_INT,    LS_cmp_swap_weak, Release);
+  case vmIntrinsics::_weakCompareAndSetInt:                return inline_unsafe_load_store(T_INT,    LS_cmp_swap_weak, Volatile);
+  case vmIntrinsics::_weakCompareAndSetLongPlain:          return inline_unsafe_load_store(T_LONG,   LS_cmp_swap_weak, Relaxed);
+  case vmIntrinsics::_weakCompareAndSetLongAcquire:        return inline_unsafe_load_store(T_LONG,   LS_cmp_swap_weak, Acquire);
+  case vmIntrinsics::_weakCompareAndSetLongRelease:        return inline_unsafe_load_store(T_LONG,   LS_cmp_swap_weak, Release);
+  case vmIntrinsics::_weakCompareAndSetLong:               return inline_unsafe_load_store(T_LONG,   LS_cmp_swap_weak, Volatile);
+
+  case vmIntrinsics::_compareAndExchangeReference:         return inline_unsafe_load_store(T_OBJECT, LS_cmp_exchange,  Volatile);
+  case vmIntrinsics::_compareAndExchangeReferenceAcquire:  return inline_unsafe_load_store(T_OBJECT, LS_cmp_exchange,  Acquire);
+  case vmIntrinsics::_compareAndExchangeReferenceRelease:  return inline_unsafe_load_store(T_OBJECT, LS_cmp_exchange,  Release);
+  case vmIntrinsics::_compareAndExchangeByte:              return inline_unsafe_load_store(T_BYTE,   LS_cmp_exchange,  Volatile);
+  case vmIntrinsics::_compareAndExchangeByteAcquire:       return inline_unsafe_load_store(T_BYTE,   LS_cmp_exchange,  Acquire);
+  case vmIntrinsics::_compareAndExchangeByteRelease:       return inline_unsafe_load_store(T_BYTE,   LS_cmp_exchange,  Release);
+  case vmIntrinsics::_compareAndExchangeShort:             return inline_unsafe_load_store(T_SHORT,  LS_cmp_exchange,  Volatile);
+  case vmIntrinsics::_compareAndExchangeShortAcquire:      return inline_unsafe_load_store(T_SHORT,  LS_cmp_exchange,  Acquire);
+  case vmIntrinsics::_compareAndExchangeShortRelease:      return inline_unsafe_load_store(T_SHORT,  LS_cmp_exchange,  Release);
+  case vmIntrinsics::_compareAndExchangeInt:               return inline_unsafe_load_store(T_INT,    LS_cmp_exchange,  Volatile);
+  case vmIntrinsics::_compareAndExchangeIntAcquire:        return inline_unsafe_load_store(T_INT,    LS_cmp_exchange,  Acquire);
+  case vmIntrinsics::_compareAndExchangeIntRelease:        return inline_unsafe_load_store(T_INT,    LS_cmp_exchange,  Release);
+  case vmIntrinsics::_compareAndExchangeLong:              return inline_unsafe_load_store(T_LONG,   LS_cmp_exchange,  Volatile);
+  case vmIntrinsics::_compareAndExchangeLongAcquire:       return inline_unsafe_load_store(T_LONG,   LS_cmp_exchange,  Acquire);
+  case vmIntrinsics::_compareAndExchangeLongRelease:       return inline_unsafe_load_store(T_LONG,   LS_cmp_exchange,  Release);
 
   case vmIntrinsics::_getAndAddByte:                    return inline_unsafe_load_store(T_BYTE,   LS_get_add,       Volatile);
   case vmIntrinsics::_getAndAddShort:                   return inline_unsafe_load_store(T_SHORT,  LS_get_add,       Volatile);
@@ -729,7 +729,7 @@
   case vmIntrinsics::_getAndSetShort:                   return inline_unsafe_load_store(T_SHORT,  LS_get_set,       Volatile);
   case vmIntrinsics::_getAndSetInt:                     return inline_unsafe_load_store(T_INT,    LS_get_set,       Volatile);
   case vmIntrinsics::_getAndSetLong:                    return inline_unsafe_load_store(T_LONG,   LS_get_set,       Volatile);
-  case vmIntrinsics::_getAndSetObject:                  return inline_unsafe_load_store(T_OBJECT, LS_get_set,       Volatile);
+  case vmIntrinsics::_getAndSetReference:               return inline_unsafe_load_store(T_OBJECT, LS_get_set,       Volatile);
 
   case vmIntrinsics::_loadFence:
   case vmIntrinsics::_storeFence:
@@ -2344,14 +2344,14 @@
     ciSignature* sig = callee()->signature();
 #ifdef ASSERT
     if (!is_store) {
-      // Object getObject(Object base, int/long offset), etc.
+      // Object getReference(Object base, int/long offset), etc.
       BasicType rtype = sig->return_type()->basic_type();
       assert(rtype == type, "getter must return the expected value");
       assert(sig->count() == 2, "oop getter has 2 arguments");
       assert(sig->type_at(0)->basic_type() == T_OBJECT, "getter base is object");
       assert(sig->type_at(1)->basic_type() == T_LONG, "getter offset is correct");
     } else {
-      // void putObject(Object base, int/long offset, Object x), etc.
+      // void putReference(Object base, int/long offset, Object x), etc.
       assert(sig->return_type()->basic_type() == T_VOID, "putter must not return a value");
       assert(sig->count() == 3, "oop putter has 3 arguments");
       assert(sig->type_at(0)->basic_type() == T_OBJECT, "putter base is object");
@@ -2422,7 +2422,7 @@
       bt = adr_type->is_aryptr()->elem()->array_element_basic_type();
     }
     if (bt == T_ARRAY || bt == T_NARROWOOP) {
-      // accessing an array field with getObject is not a mismatch
+      // accessing an array field with getReference is not a mismatch
       bt = T_OBJECT;
     }
     if ((bt == T_OBJECT) != (type == T_OBJECT)) {
@@ -2521,16 +2521,16 @@
 //
 // LS_cmp_swap:
 //
-//   boolean compareAndSetObject(Object o, long offset, Object expected, Object x);
+//   boolean compareAndSetReference(Object o, long offset, Object expected, Object x);
 //   boolean compareAndSetInt(   Object o, long offset, int    expected, int    x);
 //   boolean compareAndSetLong(  Object o, long offset, long   expected, long   x);
 //
 // LS_cmp_swap_weak:
 //
-//   boolean weakCompareAndSetObject(       Object o, long offset, Object expected, Object x);
-//   boolean weakCompareAndSetObjectPlain(  Object o, long offset, Object expected, Object x);
-//   boolean weakCompareAndSetObjectAcquire(Object o, long offset, Object expected, Object x);
-//   boolean weakCompareAndSetObjectRelease(Object o, long offset, Object expected, Object x);
+//   boolean weakCompareAndSetReference(       Object o, long offset, Object expected, Object x);
+//   boolean weakCompareAndSetReferencePlain(  Object o, long offset, Object expected, Object x);
+//   boolean weakCompareAndSetReferenceAcquire(Object o, long offset, Object expected, Object x);
+//   boolean weakCompareAndSetReferenceRelease(Object o, long offset, Object expected, Object x);
 //
 //   boolean weakCompareAndSetInt(          Object o, long offset, int    expected, int    x);
 //   boolean weakCompareAndSetIntPlain(     Object o, long offset, int    expected, int    x);
@@ -2544,9 +2544,9 @@
 //
 // LS_cmp_exchange:
 //
-//   Object compareAndExchangeObjectVolatile(Object o, long offset, Object expected, Object x);
-//   Object compareAndExchangeObjectAcquire( Object o, long offset, Object expected, Object x);
-//   Object compareAndExchangeObjectRelease( Object o, long offset, Object expected, Object x);
+//   Object compareAndExchangeReferenceVolatile(Object o, long offset, Object expected, Object x);
+//   Object compareAndExchangeReferenceAcquire( Object o, long offset, Object expected, Object x);
+//   Object compareAndExchangeReferenceRelease( Object o, long offset, Object expected, Object x);
 //
 //   Object compareAndExchangeIntVolatile(   Object o, long offset, Object expected, Object x);
 //   Object compareAndExchangeIntAcquire(    Object o, long offset, Object expected, Object x);
--- a/src/hotspot/share/prims/unsafe.cpp	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/hotspot/share/prims/unsafe.cpp	Mon Oct 22 17:00:04 2018 -0700
@@ -257,28 +257,28 @@
 // These functions allow a null base pointer with an arbitrary address.
 // But if the base pointer is non-null, the offset should make some sense.
 // That is, it should be in the range [0, MAX_OBJECT_SIZE].
-UNSAFE_ENTRY(jobject, Unsafe_GetObject(JNIEnv *env, jobject unsafe, jobject obj, jlong offset)) {
+UNSAFE_ENTRY(jobject, Unsafe_GetReference(JNIEnv *env, jobject unsafe, jobject obj, jlong offset)) {
   oop p = JNIHandles::resolve(obj);
   assert_field_offset_sane(p, offset);
   oop v = HeapAccess<ON_UNKNOWN_OOP_REF>::oop_load_at(p, offset);
   return JNIHandles::make_local(env, v);
 } UNSAFE_END
 
-UNSAFE_ENTRY(void, Unsafe_PutObject(JNIEnv *env, jobject unsafe, jobject obj, jlong offset, jobject x_h)) {
+UNSAFE_ENTRY(void, Unsafe_PutReference(JNIEnv *env, jobject unsafe, jobject obj, jlong offset, jobject x_h)) {
   oop x = JNIHandles::resolve(x_h);
   oop p = JNIHandles::resolve(obj);
   assert_field_offset_sane(p, offset);
   HeapAccess<ON_UNKNOWN_OOP_REF>::oop_store_at(p, offset, x);
 } UNSAFE_END
 
-UNSAFE_ENTRY(jobject, Unsafe_GetObjectVolatile(JNIEnv *env, jobject unsafe, jobject obj, jlong offset)) {
+UNSAFE_ENTRY(jobject, Unsafe_GetReferenceVolatile(JNIEnv *env, jobject unsafe, jobject obj, jlong offset)) {
   oop p = JNIHandles::resolve(obj);
   assert_field_offset_sane(p, offset);
   oop v = HeapAccess<MO_SEQ_CST | ON_UNKNOWN_OOP_REF>::oop_load_at(p, offset);
   return JNIHandles::make_local(env, v);
 } UNSAFE_END
 
-UNSAFE_ENTRY(void, Unsafe_PutObjectVolatile(JNIEnv *env, jobject unsafe, jobject obj, jlong offset, jobject x_h)) {
+UNSAFE_ENTRY(void, Unsafe_PutReferenceVolatile(JNIEnv *env, jobject unsafe, jobject obj, jlong offset, jobject x_h)) {
   oop x = JNIHandles::resolve(x_h);
   oop p = JNIHandles::resolve(obj);
   assert_field_offset_sane(p, offset);
@@ -864,7 +864,7 @@
 
 // JSR166 ------------------------------------------------------------------
 
-UNSAFE_ENTRY(jobject, Unsafe_CompareAndExchangeObject(JNIEnv *env, jobject unsafe, jobject obj, jlong offset, jobject e_h, jobject x_h)) {
+UNSAFE_ENTRY(jobject, Unsafe_CompareAndExchangeReference(JNIEnv *env, jobject unsafe, jobject obj, jlong offset, jobject e_h, jobject x_h)) {
   oop x = JNIHandles::resolve(x_h);
   oop e = JNIHandles::resolve(e_h);
   oop p = JNIHandles::resolve(obj);
@@ -895,7 +895,7 @@
   }
 } UNSAFE_END
 
-UNSAFE_ENTRY(jboolean, Unsafe_CompareAndSetObject(JNIEnv *env, jobject unsafe, jobject obj, jlong offset, jobject e_h, jobject x_h)) {
+UNSAFE_ENTRY(jboolean, Unsafe_CompareAndSetReference(JNIEnv *env, jobject unsafe, jobject obj, jlong offset, jobject e_h, jobject x_h)) {
   oop x = JNIHandles::resolve(x_h);
   oop e = JNIHandles::resolve(e_h);
   oop p = JNIHandles::resolve(obj);
@@ -1034,10 +1034,10 @@
 
 
 static JNINativeMethod jdk_internal_misc_Unsafe_methods[] = {
-    {CC "getObject",        CC "(" OBJ "J)" OBJ "",   FN_PTR(Unsafe_GetObject)},
-    {CC "putObject",        CC "(" OBJ "J" OBJ ")V",  FN_PTR(Unsafe_PutObject)},
-    {CC "getObjectVolatile",CC "(" OBJ "J)" OBJ "",   FN_PTR(Unsafe_GetObjectVolatile)},
-    {CC "putObjectVolatile",CC "(" OBJ "J" OBJ ")V",  FN_PTR(Unsafe_PutObjectVolatile)},
+    {CC "getReference",         CC "(" OBJ "J)" OBJ "",   FN_PTR(Unsafe_GetReference)},
+    {CC "putReference",         CC "(" OBJ "J" OBJ ")V",  FN_PTR(Unsafe_PutReference)},
+    {CC "getReferenceVolatile", CC "(" OBJ "J)" OBJ,      FN_PTR(Unsafe_GetReferenceVolatile)},
+    {CC "putReferenceVolatile", CC "(" OBJ "J" OBJ ")V",  FN_PTR(Unsafe_PutReferenceVolatile)},
 
     {CC "getUncompressedObject", CC "(" ADR ")" OBJ,  FN_PTR(Unsafe_GetUncompressedObject)},
 
@@ -1067,10 +1067,10 @@
     {CC "defineClass0",       CC "(" DC_Args ")" CLS,    FN_PTR(Unsafe_DefineClass0)},
     {CC "allocateInstance",   CC "(" CLS ")" OBJ,        FN_PTR(Unsafe_AllocateInstance)},
     {CC "throwException",     CC "(" THR ")V",           FN_PTR(Unsafe_ThrowException)},
-    {CC "compareAndSetObject",CC "(" OBJ "J" OBJ "" OBJ ")Z", FN_PTR(Unsafe_CompareAndSetObject)},
+    {CC "compareAndSetReference",CC "(" OBJ "J" OBJ "" OBJ ")Z", FN_PTR(Unsafe_CompareAndSetReference)},
     {CC "compareAndSetInt",   CC "(" OBJ "J""I""I"")Z",  FN_PTR(Unsafe_CompareAndSetInt)},
     {CC "compareAndSetLong",  CC "(" OBJ "J""J""J"")Z",  FN_PTR(Unsafe_CompareAndSetLong)},
-    {CC "compareAndExchangeObject", CC "(" OBJ "J" OBJ "" OBJ ")" OBJ, FN_PTR(Unsafe_CompareAndExchangeObject)},
+    {CC "compareAndExchangeReference", CC "(" OBJ "J" OBJ "" OBJ ")" OBJ, FN_PTR(Unsafe_CompareAndExchangeReference)},
     {CC "compareAndExchangeInt",  CC "(" OBJ "J""I""I"")I", FN_PTR(Unsafe_CompareAndExchangeInt)},
     {CC "compareAndExchangeLong", CC "(" OBJ "J""J""J"")J", FN_PTR(Unsafe_CompareAndExchangeLong)},
 
--- a/src/java.base/share/classes/java/io/BufferedInputStream.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/java.base/share/classes/java/io/BufferedInputStream.java	Mon Oct 22 17:00:04 2018 -0700
@@ -238,7 +238,7 @@
                     nsz = marklimit;
                 byte[] nbuf = new byte[nsz];
                 System.arraycopy(buffer, 0, nbuf, 0, pos);
-                if (!U.compareAndSetObject(this, BUF_OFFSET, buffer, nbuf)) {
+                if (!U.compareAndSetReference(this, BUF_OFFSET, buffer, nbuf)) {
                     // Can't replace buf if there was an async close.
                     // Note: This would need to be changed if fill()
                     // is ever made accessible to multiple threads.
@@ -482,7 +482,7 @@
     public void close() throws IOException {
         byte[] buffer;
         while ( (buffer = buf) != null) {
-            if (U.compareAndSetObject(this, BUF_OFFSET, buffer, null)) {
+            if (U.compareAndSetReference(this, BUF_OFFSET, buffer, null)) {
                 InputStream input = in;
                 in = null;
                 if (input != null)
--- a/src/java.base/share/classes/java/io/File.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/java.base/share/classes/java/io/File.java	Mon Oct 22 17:00:04 2018 -0700
@@ -2237,7 +2237,7 @@
         if (sep != separatorChar)
             pathField = pathField.replace(sep, separatorChar);
         String path = fs.normalize(pathField);
-        UNSAFE.putObject(this, PATH_OFFSET, path);
+        UNSAFE.putReference(this, PATH_OFFSET, path);
         UNSAFE.putIntVolatile(this, PREFIX_LENGTH_OFFSET, fs.prefixLength(path));
     }
 
--- a/src/java.base/share/classes/java/io/ObjectStreamClass.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/java.base/share/classes/java/io/ObjectStreamClass.java	Mon Oct 22 17:00:04 2018 -0700
@@ -2135,7 +2135,7 @@
                 switch (typeCodes[i]) {
                     case 'L':
                     case '[':
-                        vals[offsets[i]] = unsafe.getObject(obj, readKeys[i]);
+                        vals[offsets[i]] = unsafe.getReference(obj, readKeys[i]);
                         break;
 
                     default:
@@ -2190,7 +2190,7 @@
                                 obj.getClass().getName());
                         }
                         if (!dryRun)
-                            unsafe.putObject(obj, key, val);
+                            unsafe.putReference(obj, key, val);
                         break;
 
                     default:
--- a/src/java.base/share/classes/java/lang/Class.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/java.base/share/classes/java/lang/Class.java	Mon Oct 22 17:00:04 2018 -0700
@@ -2904,19 +2904,19 @@
         static <T> boolean casReflectionData(Class<?> clazz,
                                              SoftReference<ReflectionData<T>> oldData,
                                              SoftReference<ReflectionData<T>> newData) {
-            return unsafe.compareAndSetObject(clazz, reflectionDataOffset, oldData, newData);
+            return unsafe.compareAndSetReference(clazz, reflectionDataOffset, oldData, newData);
         }
 
         static <T> boolean casAnnotationType(Class<?> clazz,
                                              AnnotationType oldType,
                                              AnnotationType newType) {
-            return unsafe.compareAndSetObject(clazz, annotationTypeOffset, oldType, newType);
+            return unsafe.compareAndSetReference(clazz, annotationTypeOffset, oldType, newType);
         }
 
         static <T> boolean casAnnotationData(Class<?> clazz,
                                              AnnotationData oldData,
                                              AnnotationData newData) {
-            return unsafe.compareAndSetObject(clazz, annotationDataOffset, oldData, newData);
+            return unsafe.compareAndSetReference(clazz, annotationDataOffset, oldData, newData);
         }
     }
 
--- a/src/java.base/share/classes/java/lang/ClassLoader.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/java.base/share/classes/java/lang/ClassLoader.java	Mon Oct 22 17:00:04 2018 -0700
@@ -3002,7 +3002,7 @@
         Class<?> k = ClassLoader.class;
         long offset;
         offset = unsafe.objectFieldOffset(k, name);
-        return unsafe.compareAndSetObject(this, offset, null, obj);
+        return unsafe.compareAndSetReference(this, offset, null, obj);
     }
 }
 
--- a/src/java.base/share/classes/java/lang/invoke/CallSite.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/java.base/share/classes/java/lang/invoke/CallSite.java	Mon Oct 22 17:00:04 2018 -0700
@@ -287,7 +287,7 @@
     }
     /*package-private*/
     MethodHandle getTargetVolatile() {
-        return (MethodHandle) UNSAFE.getObjectVolatile(this, getTargetOffset());
+        return (MethodHandle) UNSAFE.getReferenceVolatile(this, getTargetOffset());
     }
     /*package-private*/
     void setTargetVolatile(MethodHandle newTarget) {
--- a/src/java.base/share/classes/java/lang/invoke/ClassSpecializer.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/java.base/share/classes/java/lang/invoke/ClassSpecializer.java	Mon Oct 22 17:00:04 2018 -0700
@@ -940,7 +940,7 @@
                 Object base = MethodHandleNatives.staticFieldBase(sdField);
                 long offset = MethodHandleNatives.staticFieldOffset(sdField);
                 UNSAFE.loadFence();
-                return metaType.cast(UNSAFE.getObject(base, offset));
+                return metaType.cast(UNSAFE.getReference(base, offset));
             } catch (Error err) {
                 throw err;
             } catch (Exception ex) {
@@ -970,7 +970,7 @@
                 Object base = MethodHandleNatives.staticFieldBase(sdField);
                 long offset = MethodHandleNatives.staticFieldOffset(sdField);
                 UNSAFE.storeFence();
-                UNSAFE.putObject(base, offset, speciesData);
+                UNSAFE.putReference(base, offset, speciesData);
                 UNSAFE.storeFence();
             } catch (Error err) {
                 throw err;
--- a/src/java.base/share/classes/java/lang/invoke/DirectMethodHandle.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/java.base/share/classes/java/lang/invoke/DirectMethodHandle.java	Mon Oct 22 17:00:04 2018 -0700
@@ -655,7 +655,7 @@
                     case LONG:    return GET_LONG_VOLATILE;
                     case FLOAT:   return GET_FLOAT_VOLATILE;
                     case DOUBLE:  return GET_DOUBLE_VOLATILE;
-                    case OBJECT:  return GET_OBJECT_VOLATILE;
+                    case OBJECT:  return GET_REFERENCE_VOLATILE;
                 }
             } else {
                 switch (wrapper) {
@@ -667,7 +667,7 @@
                     case LONG:    return GET_LONG;
                     case FLOAT:   return GET_FLOAT;
                     case DOUBLE:  return GET_DOUBLE;
-                    case OBJECT:  return GET_OBJECT;
+                    case OBJECT:  return GET_REFERENCE;
                 }
             }
         } else {
@@ -681,7 +681,7 @@
                     case LONG:    return PUT_LONG_VOLATILE;
                     case FLOAT:   return PUT_FLOAT_VOLATILE;
                     case DOUBLE:  return PUT_DOUBLE_VOLATILE;
-                    case OBJECT:  return PUT_OBJECT_VOLATILE;
+                    case OBJECT:  return PUT_REFERENCE_VOLATILE;
                 }
             } else {
                 switch (wrapper) {
@@ -693,7 +693,7 @@
                     case LONG:    return PUT_LONG;
                     case FLOAT:   return PUT_FLOAT;
                     case DOUBLE:  return PUT_DOUBLE;
-                    case OBJECT:  return PUT_OBJECT;
+                    case OBJECT:  return PUT_REFERENCE;
                 }
             }
         }
--- a/src/java.base/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/java.base/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java	Mon Oct 22 17:00:04 2018 -0700
@@ -653,7 +653,7 @@
             case LINK_TO_TARGET_METHOD:     // fall-through
             case GENERIC_INVOKER:           // fall-through
             case GENERIC_LINKER:            return resolveFrom(name, invokerType.basicType(), Invokers.Holder.class);
-            case GET_OBJECT:                // fall-through
+            case GET_REFERENCE:             // fall-through
             case GET_BOOLEAN:               // fall-through
             case GET_BYTE:                  // fall-through
             case GET_CHAR:                  // fall-through
@@ -662,7 +662,7 @@
             case GET_LONG:                  // fall-through
             case GET_FLOAT:                 // fall-through
             case GET_DOUBLE:                // fall-through
-            case PUT_OBJECT:                // fall-through
+            case PUT_REFERENCE:             // fall-through
             case PUT_BOOLEAN:               // fall-through
             case PUT_BYTE:                  // fall-through
             case PUT_CHAR:                  // fall-through
--- a/src/java.base/share/classes/java/lang/invoke/LambdaForm.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/java.base/share/classes/java/lang/invoke/LambdaForm.java	Mon Oct 22 17:00:04 2018 -0700
@@ -296,10 +296,10 @@
         DIRECT_NEW_INVOKE_SPECIAL("DMH.newInvokeSpecial", "newInvokeSpecial"),
         DIRECT_INVOKE_INTERFACE("DMH.invokeInterface", "invokeInterface"),
         DIRECT_INVOKE_STATIC_INIT("DMH.invokeStaticInit", "invokeStaticInit"),
-        GET_OBJECT("getObject"),
-        PUT_OBJECT("putObject"),
-        GET_OBJECT_VOLATILE("getObjectVolatile"),
-        PUT_OBJECT_VOLATILE("putObjectVolatile"),
+        GET_REFERENCE("getReference"),
+        PUT_REFERENCE("putReference"),
+        GET_REFERENCE_VOLATILE("getReferenceVolatile"),
+        PUT_REFERENCE_VOLATILE("putReferenceVolatile"),
         GET_INT("getInt"),
         PUT_INT("putInt"),
         GET_INT_VOLATILE("getIntVolatile"),
--- a/src/java.base/share/classes/java/lang/invoke/MethodHandle.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/java.base/share/classes/java/lang/invoke/MethodHandle.java	Mon Oct 22 17:00:04 2018 -0700
@@ -1663,7 +1663,7 @@
         assert(newForm.customized == null || newForm.customized == this);
         if (form == newForm)  return;
         newForm.prepare();  // as in MethodHandle.<init>
-        UNSAFE.putObject(this, FORM_OFFSET, newForm);
+        UNSAFE.putReference(this, FORM_OFFSET, newForm);
         UNSAFE.fullFence();
     }
 
--- a/src/java.base/share/classes/java/lang/invoke/MethodType.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/java.base/share/classes/java/lang/invoke/MethodType.java	Mon Oct 22 17:00:04 2018 -0700
@@ -1245,8 +1245,8 @@
         // store them into the implementation-specific final fields.
         checkRtype(rtype);
         checkPtypes(ptypes);
-        UNSAFE.putObject(this, OffsetHolder.rtypeOffset, rtype);
-        UNSAFE.putObject(this, OffsetHolder.ptypesOffset, ptypes);
+        UNSAFE.putReference(this, OffsetHolder.rtypeOffset, rtype);
+        UNSAFE.putReference(this, OffsetHolder.ptypesOffset, ptypes);
     }
 
     // Support for resetting final fields while deserializing. Implement Holder
--- a/src/java.base/share/classes/java/lang/invoke/VarHandle.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/java.base/share/classes/java/lang/invoke/VarHandle.java	Mon Oct 22 17:00:04 2018 -0700
@@ -1999,7 +1999,7 @@
     /*non-public*/
     final void updateVarForm(VarForm newVForm) {
         if (vform == newVForm) return;
-        UNSAFE.putObject(this, VFORM_OFFSET, newVForm);
+        UNSAFE.putReference(this, VFORM_OFFSET, newVForm);
         UNSAFE.fullFence();
     }
 
--- a/src/java.base/share/classes/java/lang/invoke/VarHandles.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/java.base/share/classes/java/lang/invoke/VarHandles.java	Mon Oct 22 17:00:04 2018 -0700
@@ -34,8 +34,8 @@
             long foffset = MethodHandleNatives.objectFieldOffset(f);
             if (!type.isPrimitive()) {
                 return f.isFinal() && !isWriteAllowedOnFinalFields
-                       ? new VarHandleObjects.FieldInstanceReadOnly(refc, foffset, type)
-                       : new VarHandleObjects.FieldInstanceReadWrite(refc, foffset, type);
+                       ? new VarHandleReferences.FieldInstanceReadOnly(refc, foffset, type)
+                       : new VarHandleReferences.FieldInstanceReadWrite(refc, foffset, type);
             }
             else if (type == boolean.class) {
                 return f.isFinal() && !isWriteAllowedOnFinalFields
@@ -95,8 +95,8 @@
             long foffset = MethodHandleNatives.staticFieldOffset(f);
             if (!type.isPrimitive()) {
                 return f.isFinal() && !isWriteAllowedOnFinalFields
-                       ? new VarHandleObjects.FieldStaticReadOnly(base, foffset, type)
-                       : new VarHandleObjects.FieldStaticReadWrite(base, foffset, type);
+                       ? new VarHandleReferences.FieldStaticReadOnly(base, foffset, type)
+                       : new VarHandleReferences.FieldStaticReadWrite(base, foffset, type);
             }
             else if (type == boolean.class) {
                 return f.isFinal() && !isWriteAllowedOnFinalFields
@@ -155,7 +155,7 @@
         int ashift = 31 - Integer.numberOfLeadingZeros(ascale);
 
         if (!componentType.isPrimitive()) {
-            return new VarHandleObjects.Array(aoffset, ashift, arrayClass);
+            return new VarHandleReferences.Array(aoffset, ashift, arrayClass);
         }
         else if (componentType == boolean.class) {
             return new VarHandleBooleans.Array(aoffset, ashift);
--- a/src/java.base/share/classes/java/lang/invoke/X-VarHandleByteArrayView.java.template	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/java.base/share/classes/java/lang/invoke/X-VarHandleByteArrayView.java.template	Mon Oct 22 17:00:04 2018 -0700
@@ -186,10 +186,17 @@
         @ForceInline
         static boolean compareAndSet(ArrayHandle handle, Object oba, int index, $type$ expected, $type$ value) {
             byte[] ba = (byte[]) oba;
+#if[Object]
+            return UNSAFE.compareAndSetReference(
+                    ba,
+                    address(ba, index(ba, index)),
+                    convEndian(handle.be, expected), convEndian(handle.be, value));
+#else[Object]
             return UNSAFE.compareAndSet$RawType$(
                     ba,
                     address(ba, index(ba, index)),
                     convEndian(handle.be, expected), convEndian(handle.be, value));
+#end[Object]
         }
 
         @ForceInline
@@ -261,11 +268,19 @@
         @ForceInline
         static $type$ getAndSet(ArrayHandle handle, Object oba, int index, $type$ value) {
             byte[] ba = (byte[]) oba;
+#if[Object]
+            return convEndian(handle.be,
+                              UNSAFE.getAndSetReference(
+                                      ba,
+                                      address(ba, index(ba, index)),
+                                      convEndian(handle.be, value)));
+#else[Object]
             return convEndian(handle.be,
                               UNSAFE.getAndSet$RawType$(
                                       ba,
                                       address(ba, index(ba, index)),
                                       convEndian(handle.be, value)));
+#end[Object]
         }
 
         @ForceInline
@@ -537,13 +552,13 @@
             ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
 #if[floatingPoint]
             $rawType$ rawValue = UNSAFE.get$RawType$Unaligned(
-                    UNSAFE.getObject(bb, BYTE_BUFFER_HB),
+                    UNSAFE.getReference(bb, BYTE_BUFFER_HB),
                     ((long) index(bb, index)) + UNSAFE.getLong(bb, BUFFER_ADDRESS),
                     handle.be);
             return $Type$.$rawType$BitsTo$Type$(rawValue);
 #else[floatingPoint]
             return UNSAFE.get$Type$Unaligned(
-                    UNSAFE.getObject(bb, BYTE_BUFFER_HB),
+                    UNSAFE.getReference(bb, BYTE_BUFFER_HB),
                     ((long) index(bb, index)) + UNSAFE.getLong(bb, BUFFER_ADDRESS),
                     handle.be);
 #end[floatingPoint]
@@ -554,13 +569,13 @@
             ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
 #if[floatingPoint]
             UNSAFE.put$RawType$Unaligned(
-                    UNSAFE.getObject(bb, BYTE_BUFFER_HB),
+                    UNSAFE.getReference(bb, BYTE_BUFFER_HB),
                     ((long) indexRO(bb, index)) + UNSAFE.getLong(bb, BUFFER_ADDRESS),
                     $Type$.$type$ToRaw$RawType$Bits(value),
                     handle.be);
 #else[floatingPoint]
             UNSAFE.put$Type$Unaligned(
-                    UNSAFE.getObject(bb, BYTE_BUFFER_HB),
+                    UNSAFE.getReference(bb, BYTE_BUFFER_HB),
                     ((long) indexRO(bb, index)) + UNSAFE.getLong(bb, BUFFER_ADDRESS),
                     value,
                     handle.be);
@@ -572,7 +587,7 @@
             ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             return convEndian(handle.be,
                               UNSAFE.get$RawType$Volatile(
-                                      UNSAFE.getObject(bb, BYTE_BUFFER_HB),
+                                      UNSAFE.getReference(bb, BYTE_BUFFER_HB),
                                       address(bb, index(bb, index))));
         }
 
@@ -580,7 +595,7 @@
         static void setVolatile(ByteBufferHandle handle, Object obb, int index, $type$ value) {
             ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             UNSAFE.put$RawType$Volatile(
-                    UNSAFE.getObject(bb, BYTE_BUFFER_HB),
+                    UNSAFE.getReference(bb, BYTE_BUFFER_HB),
                     address(bb, indexRO(bb, index)),
                     convEndian(handle.be, value));
         }
@@ -590,7 +605,7 @@
             ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             return convEndian(handle.be,
                               UNSAFE.get$RawType$Acquire(
-                                      UNSAFE.getObject(bb, BYTE_BUFFER_HB),
+                                      UNSAFE.getReference(bb, BYTE_BUFFER_HB),
                                       address(bb, index(bb, index))));
         }
 
@@ -598,7 +613,7 @@
         static void setRelease(ByteBufferHandle handle, Object obb, int index, $type$ value) {
             ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             UNSAFE.put$RawType$Release(
-                    UNSAFE.getObject(bb, BYTE_BUFFER_HB),
+                    UNSAFE.getReference(bb, BYTE_BUFFER_HB),
                     address(bb, indexRO(bb, index)),
                     convEndian(handle.be, value));
         }
@@ -608,7 +623,7 @@
             ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             return convEndian(handle.be,
                               UNSAFE.get$RawType$Opaque(
-                                      UNSAFE.getObject(bb, BYTE_BUFFER_HB),
+                                      UNSAFE.getReference(bb, BYTE_BUFFER_HB),
                                       address(bb, index(bb, index))));
         }
 
@@ -616,7 +631,7 @@
         static void setOpaque(ByteBufferHandle handle, Object obb, int index, $type$ value) {
             ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             UNSAFE.put$RawType$Opaque(
-                    UNSAFE.getObject(bb, BYTE_BUFFER_HB),
+                    UNSAFE.getReference(bb, BYTE_BUFFER_HB),
                     address(bb, indexRO(bb, index)),
                     convEndian(handle.be, value));
         }
@@ -625,10 +640,17 @@
         @ForceInline
         static boolean compareAndSet(ByteBufferHandle handle, Object obb, int index, $type$ expected, $type$ value) {
             ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
-            return UNSAFE.compareAndSet$RawType$(
-                    UNSAFE.getObject(bb, BYTE_BUFFER_HB),
+#if[Object]
+            return UNSAFE.compareAndSetReference(
+                    UNSAFE.getReference(bb, BYTE_BUFFER_HB),
                     address(bb, indexRO(bb, index)),
                     convEndian(handle.be, expected), convEndian(handle.be, value));
+#else[Object]
+            return UNSAFE.compareAndSet$RawType$(
+                    UNSAFE.getReference(bb, BYTE_BUFFER_HB),
+                    address(bb, indexRO(bb, index)),
+                    convEndian(handle.be, expected), convEndian(handle.be, value));
+#end[Object]
         }
 
         @ForceInline
@@ -636,7 +658,7 @@
             ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             return convEndian(handle.be,
                               UNSAFE.compareAndExchange$RawType$(
-                                      UNSAFE.getObject(bb, BYTE_BUFFER_HB),
+                                      UNSAFE.getReference(bb, BYTE_BUFFER_HB),
                                       address(bb, indexRO(bb, index)),
                                       convEndian(handle.be, expected), convEndian(handle.be, value)));
         }
@@ -646,7 +668,7 @@
             ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             return convEndian(handle.be,
                               UNSAFE.compareAndExchange$RawType$Acquire(
-                                      UNSAFE.getObject(bb, BYTE_BUFFER_HB),
+                                      UNSAFE.getReference(bb, BYTE_BUFFER_HB),
                                       address(bb, indexRO(bb, index)),
                                       convEndian(handle.be, expected), convEndian(handle.be, value)));
         }
@@ -656,7 +678,7 @@
             ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             return convEndian(handle.be,
                               UNSAFE.compareAndExchange$RawType$Release(
-                                      UNSAFE.getObject(bb, BYTE_BUFFER_HB),
+                                      UNSAFE.getReference(bb, BYTE_BUFFER_HB),
                                       address(bb, indexRO(bb, index)),
                                       convEndian(handle.be, expected), convEndian(handle.be, value)));
         }
@@ -665,7 +687,7 @@
         static boolean weakCompareAndSetPlain(ByteBufferHandle handle, Object obb, int index, $type$ expected, $type$ value) {
             ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             return UNSAFE.weakCompareAndSet$RawType$Plain(
-                    UNSAFE.getObject(bb, BYTE_BUFFER_HB),
+                    UNSAFE.getReference(bb, BYTE_BUFFER_HB),
                     address(bb, indexRO(bb, index)),
                     convEndian(handle.be, expected), convEndian(handle.be, value));
         }
@@ -674,7 +696,7 @@
         static boolean weakCompareAndSet(ByteBufferHandle handle, Object obb, int index, $type$ expected, $type$ value) {
             ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             return UNSAFE.weakCompareAndSet$RawType$(
-                    UNSAFE.getObject(bb, BYTE_BUFFER_HB),
+                    UNSAFE.getReference(bb, BYTE_BUFFER_HB),
                     address(bb, indexRO(bb, index)),
                     convEndian(handle.be, expected), convEndian(handle.be, value));
         }
@@ -683,7 +705,7 @@
         static boolean weakCompareAndSetAcquire(ByteBufferHandle handle, Object obb, int index, $type$ expected, $type$ value) {
             ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             return UNSAFE.weakCompareAndSet$RawType$Acquire(
-                    UNSAFE.getObject(bb, BYTE_BUFFER_HB),
+                    UNSAFE.getReference(bb, BYTE_BUFFER_HB),
                     address(bb, indexRO(bb, index)),
                     convEndian(handle.be, expected), convEndian(handle.be, value));
         }
@@ -692,7 +714,7 @@
         static boolean weakCompareAndSetRelease(ByteBufferHandle handle, Object obb, int index, $type$ expected, $type$ value) {
             ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             return UNSAFE.weakCompareAndSet$RawType$Release(
-                    UNSAFE.getObject(bb, BYTE_BUFFER_HB),
+                    UNSAFE.getReference(bb, BYTE_BUFFER_HB),
                     address(bb, indexRO(bb, index)),
                     convEndian(handle.be, expected), convEndian(handle.be, value));
         }
@@ -700,11 +722,19 @@
         @ForceInline
         static $type$ getAndSet(ByteBufferHandle handle, Object obb, int index, $type$ value) {
             ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
+#if[Object]
+            return convEndian(handle.be,
+                              UNSAFE.getAndSetReference(
+                                      UNSAFE.getReference(bb, BYTE_BUFFER_HB),
+                                      address(bb, indexRO(bb, index)),
+                                      convEndian(handle.be, value)));
+#else[Object]
             return convEndian(handle.be,
                               UNSAFE.getAndSet$RawType$(
-                                      UNSAFE.getObject(bb, BYTE_BUFFER_HB),
+                                      UNSAFE.getReference(bb, BYTE_BUFFER_HB),
                                       address(bb, indexRO(bb, index)),
                                       convEndian(handle.be, value)));
+#end[Object]
         }
 
         @ForceInline
@@ -712,7 +742,7 @@
             ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             return convEndian(handle.be,
                               UNSAFE.getAndSet$RawType$Acquire(
-                                      UNSAFE.getObject(bb, BYTE_BUFFER_HB),
+                                      UNSAFE.getReference(bb, BYTE_BUFFER_HB),
                                       address(bb, indexRO(bb, index)),
                                       convEndian(handle.be, value)));
         }
@@ -722,7 +752,7 @@
             ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             return convEndian(handle.be,
                               UNSAFE.getAndSet$RawType$Release(
-                                      UNSAFE.getObject(bb, BYTE_BUFFER_HB),
+                                      UNSAFE.getReference(bb, BYTE_BUFFER_HB),
                                       address(bb, indexRO(bb, index)),
                                       convEndian(handle.be, value)));
         }
@@ -734,7 +764,7 @@
             ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             if (handle.be == BE) {
                 return UNSAFE.getAndAdd$RawType$(
-                        UNSAFE.getObject(bb, BYTE_BUFFER_HB),
+                        UNSAFE.getReference(bb, BYTE_BUFFER_HB),
                         address(bb, indexRO(bb, index)),
                         delta);
             } else {
@@ -747,7 +777,7 @@
             ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             if (handle.be == BE) {
                 return UNSAFE.getAndAdd$RawType$Acquire(
-                        UNSAFE.getObject(bb, BYTE_BUFFER_HB),
+                        UNSAFE.getReference(bb, BYTE_BUFFER_HB),
                         address(bb, indexRO(bb, index)),
                         delta);
             } else {
@@ -760,7 +790,7 @@
             ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             if (handle.be == BE) {
                 return UNSAFE.getAndAdd$RawType$Release(
-                        UNSAFE.getObject(bb, BYTE_BUFFER_HB),
+                        UNSAFE.getReference(bb, BYTE_BUFFER_HB),
                         address(bb, indexRO(bb, index)),
                         delta);
             } else {
@@ -771,7 +801,7 @@
         @ForceInline
         static $type$ getAndAddConvEndianWithCAS(ByteBuffer bb, int index, $type$ delta) {
             $type$ nativeExpectedValue, expectedValue;
-            Object base = UNSAFE.getObject(bb, BYTE_BUFFER_HB);
+            Object base = UNSAFE.getReference(bb, BYTE_BUFFER_HB);
             long offset = address(bb, indexRO(bb, index));
             do {
                 nativeExpectedValue = UNSAFE.get$RawType$Volatile(base, offset);
@@ -788,7 +818,7 @@
             ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             if (handle.be == BE) {
                 return UNSAFE.getAndBitwiseOr$RawType$(
-                        UNSAFE.getObject(bb, BYTE_BUFFER_HB),
+                        UNSAFE.getReference(bb, BYTE_BUFFER_HB),
                         address(bb, indexRO(bb, index)),
                         value);
             } else {
@@ -801,7 +831,7 @@
             ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             if (handle.be == BE) {
                 return UNSAFE.getAndBitwiseOr$RawType$Release(
-                        UNSAFE.getObject(bb, BYTE_BUFFER_HB),
+                        UNSAFE.getReference(bb, BYTE_BUFFER_HB),
                         address(bb, indexRO(bb, index)),
                         value);
             } else {
@@ -814,7 +844,7 @@
             ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             if (handle.be == BE) {
                 return UNSAFE.getAndBitwiseOr$RawType$Acquire(
-                        UNSAFE.getObject(bb, BYTE_BUFFER_HB),
+                        UNSAFE.getReference(bb, BYTE_BUFFER_HB),
                         address(bb, indexRO(bb, index)),
                         value);
             } else {
@@ -825,7 +855,7 @@
         @ForceInline
         static $type$ getAndBitwiseOrConvEndianWithCAS(ByteBuffer bb, int index, $type$ value) {
             $type$ nativeExpectedValue, expectedValue;
-            Object base = UNSAFE.getObject(bb, BYTE_BUFFER_HB);
+            Object base = UNSAFE.getReference(bb, BYTE_BUFFER_HB);
             long offset = address(bb, indexRO(bb, index));
             do {
                 nativeExpectedValue = UNSAFE.get$RawType$Volatile(base, offset);
@@ -840,7 +870,7 @@
             ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             if (handle.be == BE) {
                 return UNSAFE.getAndBitwiseAnd$RawType$(
-                        UNSAFE.getObject(bb, BYTE_BUFFER_HB),
+                        UNSAFE.getReference(bb, BYTE_BUFFER_HB),
                         address(bb, indexRO(bb, index)),
                         value);
             } else {
@@ -853,7 +883,7 @@
             ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             if (handle.be == BE) {
                 return UNSAFE.getAndBitwiseAnd$RawType$Release(
-                        UNSAFE.getObject(bb, BYTE_BUFFER_HB),
+                        UNSAFE.getReference(bb, BYTE_BUFFER_HB),
                         address(bb, indexRO(bb, index)),
                         value);
             } else {
@@ -866,7 +896,7 @@
             ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             if (handle.be == BE) {
                 return UNSAFE.getAndBitwiseAnd$RawType$Acquire(
-                        UNSAFE.getObject(bb, BYTE_BUFFER_HB),
+                        UNSAFE.getReference(bb, BYTE_BUFFER_HB),
                         address(bb, indexRO(bb, index)),
                         value);
             } else {
@@ -877,7 +907,7 @@
         @ForceInline
         static $type$ getAndBitwiseAndConvEndianWithCAS(ByteBuffer bb, int index, $type$ value) {
             $type$ nativeExpectedValue, expectedValue;
-            Object base = UNSAFE.getObject(bb, BYTE_BUFFER_HB);
+            Object base = UNSAFE.getReference(bb, BYTE_BUFFER_HB);
             long offset = address(bb, indexRO(bb, index));
             do {
                 nativeExpectedValue = UNSAFE.get$RawType$Volatile(base, offset);
@@ -893,7 +923,7 @@
             ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             if (handle.be == BE) {
                 return UNSAFE.getAndBitwiseXor$RawType$(
-                        UNSAFE.getObject(bb, BYTE_BUFFER_HB),
+                        UNSAFE.getReference(bb, BYTE_BUFFER_HB),
                         address(bb, indexRO(bb, index)),
                         value);
             } else {
@@ -906,7 +936,7 @@
             ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             if (handle.be == BE) {
                 return UNSAFE.getAndBitwiseXor$RawType$Release(
-                        UNSAFE.getObject(bb, BYTE_BUFFER_HB),
+                        UNSAFE.getReference(bb, BYTE_BUFFER_HB),
                         address(bb, indexRO(bb, index)),
                         value);
             } else {
@@ -919,7 +949,7 @@
             ByteBuffer bb = (ByteBuffer) Objects.requireNonNull(obb);
             if (handle.be == BE) {
                 return UNSAFE.getAndBitwiseXor$RawType$Acquire(
-                        UNSAFE.getObject(bb, BYTE_BUFFER_HB),
+                        UNSAFE.getReference(bb, BYTE_BUFFER_HB),
                         address(bb, indexRO(bb, index)),
                         value);
             } else {
@@ -930,7 +960,7 @@
         @ForceInline
         static $type$ getAndBitwiseXorConvEndianWithCAS(ByteBuffer bb, int index, $type$ value) {
             $type$ nativeExpectedValue, expectedValue;
-            Object base = UNSAFE.getObject(bb, BYTE_BUFFER_HB);
+            Object base = UNSAFE.getReference(bb, BYTE_BUFFER_HB);
             long offset = address(bb, indexRO(bb, index));
             do {
                 nativeExpectedValue = UNSAFE.get$RawType$Volatile(base, offset);
--- a/src/java.base/share/classes/java/math/BigDecimal.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/java.base/share/classes/java/math/BigDecimal.java	Mon Oct 22 17:00:04 2018 -0700
@@ -4079,7 +4079,7 @@
         }
 
         static void setIntValVolatile(BigDecimal bd, BigInteger val) {
-            unsafe.putObjectVolatile(bd, intValOffset, val);
+            unsafe.putReferenceVolatile(bd, intValOffset, val);
         }
     }
 
--- a/src/java.base/share/classes/java/math/BigInteger.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/java.base/share/classes/java/math/BigInteger.java	Mon Oct 22 17:00:04 2018 -0700
@@ -4600,7 +4600,7 @@
         }
 
         static void putMag(BigInteger bi, int[] magnitude) {
-            unsafe.putObject(bi, magOffset, magnitude);
+            unsafe.putReference(bi, magOffset, magnitude);
         }
     }
 
--- a/src/java.base/share/classes/java/net/Inet6Address.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/java.base/share/classes/java/net/Inet6Address.java	Mon Oct 22 17:00:04 2018 -0700
@@ -641,7 +641,7 @@
             ipaddress, scope_id, scope_id_set, scope_ifname, scope_ifname_set
         );
 
-        UNSAFE.putObject(this, FIELDS_OFFSET, h);
+        UNSAFE.putReference(this, FIELDS_OFFSET, h);
     }
 
     /**
--- a/src/java.base/share/classes/java/net/InetAddress.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/java.base/share/classes/java/net/InetAddress.java	Mon Oct 22 17:00:04 2018 -0700
@@ -1734,7 +1734,7 @@
             throw new InvalidObjectException("invalid address family type: " + family);
         }
         InetAddressHolder h = new InetAddressHolder(host, address, family);
-        UNSAFE.putObject(this, FIELDS_OFFSET, h);
+        UNSAFE.putReference(this, FIELDS_OFFSET, h);
     }
 
     /* needed because the serializable fields no longer exist */
--- a/src/java.base/share/classes/java/net/InetSocketAddress.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/java.base/share/classes/java/net/InetSocketAddress.java	Mon Oct 22 17:00:04 2018 -0700
@@ -293,7 +293,7 @@
         InetSocketAddressHolder h = new InetSocketAddressHolder(oisHostname,
                                                                 oisAddr,
                                                                 oisPort);
-        UNSAFE.putObject(this, FIELDS_OFFSET, h);
+        UNSAFE.putReference(this, FIELDS_OFFSET, h);
     }
 
     private void readObjectNoData()
--- a/src/java.base/share/classes/java/util/Random.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/java.base/share/classes/java/util/Random.java	Mon Oct 22 17:00:04 2018 -0700
@@ -1222,6 +1222,6 @@
         } catch (Exception ex) { throw new Error(ex); }
     }
     private void resetSeed(long seedVal) {
-        unsafe.putObjectVolatile(this, seedOffset, new AtomicLong(seedVal));
+        unsafe.putReferenceVolatile(this, seedOffset, new AtomicLong(seedVal));
     }
 }
--- a/src/java.base/share/classes/java/util/concurrent/ConcurrentHashMap.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/java.base/share/classes/java/util/concurrent/ConcurrentHashMap.java	Mon Oct 22 17:00:04 2018 -0700
@@ -757,16 +757,16 @@
 
     @SuppressWarnings("unchecked")
     static final <K,V> Node<K,V> tabAt(Node<K,V>[] tab, int i) {
-        return (Node<K,V>)U.getObjectAcquire(tab, ((long)i << ASHIFT) + ABASE);
+        return (Node<K,V>)U.getReferenceAcquire(tab, ((long)i << ASHIFT) + ABASE);
     }
 
     static final <K,V> boolean casTabAt(Node<K,V>[] tab, int i,
                                         Node<K,V> c, Node<K,V> v) {
-        return U.compareAndSetObject(tab, ((long)i << ASHIFT) + ABASE, c, v);
+        return U.compareAndSetReference(tab, ((long)i << ASHIFT) + ABASE, c, v);
     }
 
     static final <K,V> void setTabAt(Node<K,V>[] tab, int i, Node<K,V> v) {
-        U.putObjectRelease(tab, ((long)i << ASHIFT) + ABASE, v);
+        U.putReferenceRelease(tab, ((long)i << ASHIFT) + ABASE, v);
     }
 
     /* ---------------- Fields -------------- */
--- a/src/java.base/share/classes/java/util/concurrent/ThreadLocalRandom.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/java.base/share/classes/java/util/concurrent/ThreadLocalRandom.java	Mon Oct 22 17:00:04 2018 -0700
@@ -976,13 +976,13 @@
      * Erases ThreadLocals by nulling out Thread maps.
      */
     static final void eraseThreadLocals(Thread thread) {
-        U.putObject(thread, THREADLOCALS, null);
-        U.putObject(thread, INHERITABLETHREADLOCALS, null);
+        U.putReference(thread, THREADLOCALS, null);
+        U.putReference(thread, INHERITABLETHREADLOCALS, null);
     }
 
     static final void setInheritedAccessControlContext(Thread thread,
                                                        AccessControlContext acc) {
-        U.putObjectRelease(thread, INHERITEDACCESSCONTROLCONTEXT, acc);
+        U.putReferenceRelease(thread, INHERITEDACCESSCONTROLCONTEXT, acc);
     }
 
     // Serialization support
--- a/src/java.base/share/classes/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/java.base/share/classes/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java	Mon Oct 22 17:00:04 2018 -0700
@@ -439,39 +439,39 @@
         public final boolean compareAndSet(T obj, V expect, V update) {
             accessCheck(obj);
             valueCheck(update);
-            return U.compareAndSetObject(obj, offset, expect, update);
+            return U.compareAndSetReference(obj, offset, expect, update);
         }
 
         public final boolean weakCompareAndSet(T obj, V expect, V update) {
             // same implementation as strong form for now
             accessCheck(obj);
             valueCheck(update);
-            return U.compareAndSetObject(obj, offset, expect, update);
+            return U.compareAndSetReference(obj, offset, expect, update);
         }
 
         public final void set(T obj, V newValue) {
             accessCheck(obj);
             valueCheck(newValue);
-            U.putObjectVolatile(obj, offset, newValue);
+            U.putReferenceVolatile(obj, offset, newValue);
         }
 
         public final void lazySet(T obj, V newValue) {
             accessCheck(obj);
             valueCheck(newValue);
-            U.putObjectRelease(obj, offset, newValue);
+            U.putReferenceRelease(obj, offset, newValue);
         }
 
         @SuppressWarnings("unchecked")
         public final V get(T obj) {
             accessCheck(obj);
-            return (V)U.getObjectVolatile(obj, offset);
+            return (V)U.getReferenceVolatile(obj, offset);
         }
 
         @SuppressWarnings("unchecked")
         public final V getAndSet(T obj, V newValue) {
             accessCheck(obj);
             valueCheck(newValue);
-            return (V)U.getAndSetObject(obj, offset, newValue);
+            return (V)U.getAndSetReference(obj, offset, newValue);
         }
     }
 }
--- a/src/java.base/share/classes/java/util/concurrent/locks/LockSupport.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/java.base/share/classes/java/util/concurrent/locks/LockSupport.java	Mon Oct 22 17:00:04 2018 -0700
@@ -141,7 +141,7 @@
 
     private static void setBlocker(Thread t, Object arg) {
         // Even though volatile, hotspot doesn't need a write barrier here.
-        U.putObject(t, PARKBLOCKER, arg);
+        U.putReference(t, PARKBLOCKER, arg);
     }
 
     /**
@@ -291,7 +291,7 @@
     public static Object getBlocker(Thread t) {
         if (t == null)
             throw new NullPointerException();
-        return U.getObjectVolatile(t, PARKBLOCKER);
+        return U.getReferenceVolatile(t, PARKBLOCKER);
     }
 
     /**
--- a/src/java.base/share/classes/java/util/zip/ZipUtils.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/java.base/share/classes/java/util/zip/ZipUtils.java	Mon Oct 22 17:00:04 2018 -0700
@@ -25,7 +25,6 @@
 
 package java.util.zip;
 
-import java.nio.Buffer;
 import java.nio.ByteBuffer;
 import java.nio.file.attribute.FileTime;
 import java.security.AccessController;
@@ -40,7 +39,6 @@
 import static java.util.zip.ZipConstants.ENDHDR;
 
 import jdk.internal.misc.Unsafe;
-import sun.nio.ch.DirectBuffer;
 
 class ZipUtils {
 
@@ -295,7 +293,7 @@
     private static final long byteBufferOffsetOffset = unsafe.objectFieldOffset(ByteBuffer.class, "offset");
 
     static byte[] getBufferArray(ByteBuffer byteBuffer) {
-        return (byte[]) unsafe.getObject(byteBuffer, byteBufferArrayOffset);
+        return (byte[]) unsafe.getReference(byteBuffer, byteBufferArrayOffset);
     }
 
     static int getBufferOffset(ByteBuffer byteBuffer) {
--- a/src/java.base/share/classes/jdk/internal/misc/InnocuousThread.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/java.base/share/classes/jdk/internal/misc/InnocuousThread.java	Mon Oct 22 17:00:04 2018 -0700
@@ -98,8 +98,8 @@
 
     private InnocuousThread(ThreadGroup group, Runnable target, String name, ClassLoader tccl) {
         super(group, target, name, 0L, false);
-        UNSAFE.putObjectRelease(this, INHERITEDACCESSCONTROLCONTEXT, ACC);
-        UNSAFE.putObjectRelease(this, CONTEXTCLASSLOADER, tccl);
+        UNSAFE.putReferenceRelease(this, INHERITEDACCESSCONTROLCONTEXT, ACC);
+        UNSAFE.putReferenceRelease(this, CONTEXTCLASSLOADER, tccl);
     }
 
     @Override
@@ -120,8 +120,8 @@
      * Drops all thread locals (and inherited thread locals).
      */
     public final void eraseThreadLocals() {
-        UNSAFE.putObject(this, THREAD_LOCALS, null);
-        UNSAFE.putObject(this, INHERITABLE_THREAD_LOCALS, null);
+        UNSAFE.putReference(this, THREAD_LOCALS, null);
+        UNSAFE.putReference(this, INHERITABLE_THREAD_LOCALS, null);
     }
 
     // ensure run method is run only once
@@ -158,10 +158,10 @@
             long tg = UNSAFE.objectFieldOffset(tk, "group");
             long gp = UNSAFE.objectFieldOffset(gk, "parent");
             ThreadGroup group = (ThreadGroup)
-                UNSAFE.getObject(Thread.currentThread(), tg);
+                UNSAFE.getReference(Thread.currentThread(), tg);
 
             while (group != null) {
-                ThreadGroup parent = (ThreadGroup)UNSAFE.getObject(group, gp);
+                ThreadGroup parent = (ThreadGroup)UNSAFE.getReference(group, gp);
                 if (parent == null)
                     break;
                 group = parent;
--- a/src/java.base/share/classes/jdk/internal/misc/Unsafe.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/java.base/share/classes/jdk/internal/misc/Unsafe.java	Mon Oct 22 17:00:04 2018 -0700
@@ -179,7 +179,7 @@
      * @see #getInt(Object, long)
      */
     @HotSpotIntrinsicCandidate
-    public native Object getObject(Object o, long offset);
+    public native Object getReference(Object o, long offset);
 
     /**
      * Stores a reference value into a given Java variable.
@@ -192,7 +192,7 @@
      * @see #putInt(Object, long, int)
      */
     @HotSpotIntrinsicCandidate
-    public native void putObject(Object o, long offset, Object x);
+    public native void putReference(Object o, long offset, Object x);
 
     /** @see #getInt(Object, long) */
     @HotSpotIntrinsicCandidate
@@ -1297,55 +1297,55 @@
      * @return {@code true} if successful
      */
     @HotSpotIntrinsicCandidate
-    public final native boolean compareAndSetObject(Object o, long offset,
+    public final native boolean compareAndSetReference(Object o, long offset,
+                                                       Object expected,
+                                                       Object x);
+
+    @HotSpotIntrinsicCandidate
+    public final native Object compareAndExchangeReference(Object o, long offset,
+                                                           Object expected,
+                                                           Object x);
+
+    @HotSpotIntrinsicCandidate
+    public final Object compareAndExchangeReferenceAcquire(Object o, long offset,
+                                                           Object expected,
+                                                           Object x) {
+        return compareAndExchangeReference(o, offset, expected, x);
+    }
+
+    @HotSpotIntrinsicCandidate
+    public final Object compareAndExchangeReferenceRelease(Object o, long offset,
+                                                           Object expected,
+                                                           Object x) {
+        return compareAndExchangeReference(o, offset, expected, x);
+    }
+
+    @HotSpotIntrinsicCandidate
+    public final boolean weakCompareAndSetReferencePlain(Object o, long offset,
+                                                         Object expected,
+                                                         Object x) {
+        return compareAndSetReference(o, offset, expected, x);
+    }
+
+    @HotSpotIntrinsicCandidate
+    public final boolean weakCompareAndSetReferenceAcquire(Object o, long offset,
+                                                           Object expected,
+                                                           Object x) {
+        return compareAndSetReference(o, offset, expected, x);
+    }
+
+    @HotSpotIntrinsicCandidate
+    public final boolean weakCompareAndSetReferenceRelease(Object o, long offset,
+                                                           Object expected,
+                                                           Object x) {
+        return compareAndSetReference(o, offset, expected, x);
+    }
+
+    @HotSpotIntrinsicCandidate
+    public final boolean weakCompareAndSetReference(Object o, long offset,
                                                     Object expected,
-                                                    Object x);
-
-    @HotSpotIntrinsicCandidate
-    public final native Object compareAndExchangeObject(Object o, long offset,
-                                                        Object expected,
-                                                        Object x);
-
-    @HotSpotIntrinsicCandidate
-    public final Object compareAndExchangeObjectAcquire(Object o, long offset,
-                                                               Object expected,
-                                                               Object x) {
-        return compareAndExchangeObject(o, offset, expected, x);
-    }
-
-    @HotSpotIntrinsicCandidate
-    public final Object compareAndExchangeObjectRelease(Object o, long offset,
-                                                               Object expected,
-                                                               Object x) {
-        return compareAndExchangeObject(o, offset, expected, x);
-    }
-
-    @HotSpotIntrinsicCandidate
-    public final boolean weakCompareAndSetObjectPlain(Object o, long offset,
-                                                      Object expected,
-                                                      Object x) {
-        return compareAndSetObject(o, offset, expected, x);
-    }
-
-    @HotSpotIntrinsicCandidate
-    public final boolean weakCompareAndSetObjectAcquire(Object o, long offset,
-                                                        Object expected,
-                                                        Object x) {
-        return compareAndSetObject(o, offset, expected, x);
-    }
-
-    @HotSpotIntrinsicCandidate
-    public final boolean weakCompareAndSetObjectRelease(Object o, long offset,
-                                                        Object expected,
-                                                        Object x) {
-        return compareAndSetObject(o, offset, expected, x);
-    }
-
-    @HotSpotIntrinsicCandidate
-    public final boolean weakCompareAndSetObject(Object o, long offset,
-                                                 Object expected,
-                                                 Object x) {
-        return compareAndSetObject(o, offset, expected, x);
+                                                    Object x) {
+        return compareAndSetReference(o, offset, expected, x);
     }
 
     /**
@@ -1958,17 +1958,17 @@
 
     /**
      * Fetches a reference value from a given Java variable, with volatile
-     * load semantics. Otherwise identical to {@link #getObject(Object, long)}
+     * load semantics. Otherwise identical to {@link #getReference(Object, long)}
      */
     @HotSpotIntrinsicCandidate
-    public native Object getObjectVolatile(Object o, long offset);
+    public native Object getReferenceVolatile(Object o, long offset);
 
     /**
      * Stores a reference value into a given Java variable, with
-     * volatile store semantics. Otherwise identical to {@link #putObject(Object, long, Object)}
+     * volatile store semantics. Otherwise identical to {@link #putReference(Object, long, Object)}
      */
     @HotSpotIntrinsicCandidate
-    public native void    putObjectVolatile(Object o, long offset, Object x);
+    public native void putReferenceVolatile(Object o, long offset, Object x);
 
     /** Volatile version of {@link #getInt(Object, long)}  */
     @HotSpotIntrinsicCandidate
@@ -2036,10 +2036,10 @@
 
 
 
-    /** Acquire version of {@link #getObjectVolatile(Object, long)} */
+    /** Acquire version of {@link #getReferenceVolatile(Object, long)} */
     @HotSpotIntrinsicCandidate
-    public final Object getObjectAcquire(Object o, long offset) {
-        return getObjectVolatile(o, offset);
+    public final Object getReferenceAcquire(Object o, long offset) {
+        return getReferenceVolatile(o, offset);
     }
 
     /** Acquire version of {@link #getBooleanVolatile(Object, long)} */
@@ -2091,7 +2091,7 @@
     }
 
     /*
-      * Versions of {@link #putObjectVolatile(Object, long, Object)}
+      * Versions of {@link #putReferenceVolatile(Object, long, Object)}
       * that do not guarantee immediate visibility of the store to
       * other threads. This method is generally only useful if the
       * underlying field is a Java volatile (or if an array cell, one
@@ -2100,10 +2100,10 @@
       * Corresponds to C11 atomic_store_explicit(..., memory_order_release).
       */
 
-    /** Release version of {@link #putObjectVolatile(Object, long, Object)} */
+    /** Release version of {@link #putReferenceVolatile(Object, long, Object)} */
     @HotSpotIntrinsicCandidate
-    public final void putObjectRelease(Object o, long offset, Object x) {
-        putObjectVolatile(o, offset, x);
+    public final void putReferenceRelease(Object o, long offset, Object x) {
+        putReferenceVolatile(o, offset, x);
     }
 
     /** Release version of {@link #putBooleanVolatile(Object, long, boolean)} */
@@ -2156,10 +2156,10 @@
 
     // ------------------------------ Opaque --------------------------------------
 
-    /** Opaque version of {@link #getObjectVolatile(Object, long)} */
+    /** Opaque version of {@link #getReferenceVolatile(Object, long)} */
     @HotSpotIntrinsicCandidate
-    public final Object getObjectOpaque(Object o, long offset) {
-        return getObjectVolatile(o, offset);
+    public final Object getReferenceOpaque(Object o, long offset) {
+        return getReferenceVolatile(o, offset);
     }
 
     /** Opaque version of {@link #getBooleanVolatile(Object, long)} */
@@ -2210,10 +2210,10 @@
         return getDoubleVolatile(o, offset);
     }
 
-    /** Opaque version of {@link #putObjectVolatile(Object, long, Object)} */
+    /** Opaque version of {@link #putReferenceVolatile(Object, long, Object)} */
     @HotSpotIntrinsicCandidate
-    public final void putObjectOpaque(Object o, long offset, Object x) {
-        putObjectVolatile(o, offset, x);
+    public final void putReferenceOpaque(Object o, long offset, Object x) {
+        putReferenceVolatile(o, offset, x);
     }
 
     /** Opaque version of {@link #putBooleanVolatile(Object, long, boolean)} */
@@ -2642,29 +2642,29 @@
      * @since 1.8
      */
     @HotSpotIntrinsicCandidate
-    public final Object getAndSetObject(Object o, long offset, Object newValue) {
+    public final Object getAndSetReference(Object o, long offset, Object newValue) {
         Object v;
         do {
-            v = getObjectVolatile(o, offset);
-        } while (!weakCompareAndSetObject(o, offset, v, newValue));
+            v = getReferenceVolatile(o, offset);
+        } while (!weakCompareAndSetReference(o, offset, v, newValue));
         return v;
     }
 
     @ForceInline
-    public final Object getAndSetObjectRelease(Object o, long offset, Object newValue) {
+    public final Object getAndSetReferenceRelease(Object o, long offset, Object newValue) {
         Object v;
         do {
-            v = getObject(o, offset);
-        } while (!weakCompareAndSetObjectRelease(o, offset, v, newValue));
+            v = getReference(o, offset);
+        } while (!weakCompareAndSetReferenceRelease(o, offset, v, newValue));
         return v;
     }
 
     @ForceInline
-    public final Object getAndSetObjectAcquire(Object o, long offset, Object newValue) {
+    public final Object getAndSetReferenceAcquire(Object o, long offset, Object newValue) {
         Object v;
         do {
-            v = getObjectAcquire(o, offset);
-        } while (!weakCompareAndSetObjectAcquire(o, offset, v, newValue));
+            v = getReferenceAcquire(o, offset);
+        } while (!weakCompareAndSetReferenceAcquire(o, offset, v, newValue));
         return v;
     }
 
--- a/src/java.base/share/classes/jdk/internal/reflect/UnsafeObjectFieldAccessorImpl.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/java.base/share/classes/jdk/internal/reflect/UnsafeObjectFieldAccessorImpl.java	Mon Oct 22 17:00:04 2018 -0700
@@ -34,7 +34,7 @@
 
     public Object get(Object obj) throws IllegalArgumentException {
         ensureObj(obj);
-        return unsafe.getObject(obj, fieldOffset);
+        return unsafe.getReference(obj, fieldOffset);
     }
 
     public boolean getBoolean(Object obj) throws IllegalArgumentException {
@@ -81,7 +81,7 @@
                 throwSetIllegalArgumentException(value);
             }
         }
-        unsafe.putObject(obj, fieldOffset, value);
+        unsafe.putReference(obj, fieldOffset, value);
     }
 
     public void setBoolean(Object obj, boolean z)
--- a/src/java.base/share/classes/jdk/internal/reflect/UnsafeQualifiedObjectFieldAccessorImpl.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/java.base/share/classes/jdk/internal/reflect/UnsafeQualifiedObjectFieldAccessorImpl.java	Mon Oct 22 17:00:04 2018 -0700
@@ -36,7 +36,7 @@
 
     public Object get(Object obj) throws IllegalArgumentException {
         ensureObj(obj);
-        return unsafe.getObjectVolatile(obj, fieldOffset);
+        return unsafe.getReferenceVolatile(obj, fieldOffset);
     }
 
     public boolean getBoolean(Object obj) throws IllegalArgumentException {
@@ -83,7 +83,7 @@
                 throwSetIllegalArgumentException(value);
             }
         }
-        unsafe.putObjectVolatile(obj, fieldOffset, value);
+        unsafe.putReferenceVolatile(obj, fieldOffset, value);
     }
 
     public void setBoolean(Object obj, boolean z)
--- a/src/java.base/share/classes/jdk/internal/reflect/UnsafeQualifiedStaticObjectFieldAccessorImpl.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/java.base/share/classes/jdk/internal/reflect/UnsafeQualifiedStaticObjectFieldAccessorImpl.java	Mon Oct 22 17:00:04 2018 -0700
@@ -35,7 +35,7 @@
     }
 
     public Object get(Object obj) throws IllegalArgumentException {
-        return unsafe.getObjectVolatile(base, fieldOffset);
+        return unsafe.getReferenceVolatile(base, fieldOffset);
     }
 
     public boolean getBoolean(Object obj) throws IllegalArgumentException {
@@ -81,7 +81,7 @@
                 throwSetIllegalArgumentException(value);
             }
         }
-        unsafe.putObjectVolatile(base, fieldOffset, value);
+        unsafe.putReferenceVolatile(base, fieldOffset, value);
     }
 
     public void setBoolean(Object obj, boolean z)
--- a/src/java.base/share/classes/jdk/internal/reflect/UnsafeStaticObjectFieldAccessorImpl.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/java.base/share/classes/jdk/internal/reflect/UnsafeStaticObjectFieldAccessorImpl.java	Mon Oct 22 17:00:04 2018 -0700
@@ -33,7 +33,7 @@
     }
 
     public Object get(Object obj) throws IllegalArgumentException {
-        return unsafe.getObject(base, fieldOffset);
+        return unsafe.getReference(base, fieldOffset);
     }
 
     public boolean getBoolean(Object obj) throws IllegalArgumentException {
@@ -79,7 +79,7 @@
                 throwSetIllegalArgumentException(value);
             }
         }
-        unsafe.putObject(base, fieldOffset, value);
+        unsafe.putReference(base, fieldOffset, value);
     }
 
     public void setBoolean(Object obj, boolean z)
--- a/src/java.base/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/java.base/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java	Mon Oct 22 17:00:04 2018 -0700
@@ -624,12 +624,12 @@
 
         static void setType(AnnotationInvocationHandler o,
                             Class<? extends Annotation> type) {
-            unsafe.putObject(o, typeOffset, type);
+            unsafe.putReference(o, typeOffset, type);
         }
 
         static void setMemberValues(AnnotationInvocationHandler o,
                                     Map<String, Object> memberValues) {
-            unsafe.putObject(o, memberValuesOffset, memberValues);
+            unsafe.putReference(o, memberValuesOffset, memberValues);
         }
     }
 }
--- a/src/java.security.jgss/share/classes/sun/security/krb5/PrincipalName.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/java.security.jgss/share/classes/sun/security/krb5/PrincipalName.java	Mon Oct 22 17:00:04 2018 -0700
@@ -179,7 +179,7 @@
     public Object clone() {
         try {
             PrincipalName pName = (PrincipalName) super.clone();
-            UNSAFE.putObject(this, NAME_STRINGS_OFFSET, nameStrings.clone());
+            UNSAFE.putReference(this, NAME_STRINGS_OFFSET, nameStrings.clone());
             return pName;
         } catch (CloneNotSupportedException ex) {
             throw new AssertionError("Should never happen");
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/SafeThread.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/SafeThread.java	Mon Oct 22 17:00:04 2018 -0700
@@ -74,8 +74,8 @@
      * Drops all thread locals (and inherited thread locals).
      */
     public final void eraseThreadLocals() {
-        UNSAFE.putObject(this, THREAD_LOCALS, null);
-        UNSAFE.putObject(this, INHERITABLE_THREAD_LOCALS, null);
+        UNSAFE.putReference(this, THREAD_LOCALS, null);
+        UNSAFE.putReference(this, INHERITABLE_THREAD_LOCALS, null);
     }
 
     static {
--- a/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl.java	Mon Oct 22 17:00:04 2018 -0700
@@ -203,7 +203,7 @@
             assert verifyReadRawObject(ret, baseConstant, initialDisplacement);
         } else {
             assert runtime.getConfig().useCompressedOops == compressed;
-            ret = UNSAFE.getObject(base, displacement);
+            ret = UNSAFE.getReference(base, displacement);
         }
         return ret;
     }
@@ -233,7 +233,7 @@
             case Double:
                 return JavaConstant.forDouble(isVolatile ? UNSAFE.getDoubleVolatile(obj, displacement) : UNSAFE.getDouble(obj, displacement));
             case Object:
-                return HotSpotObjectConstantImpl.forObject(isVolatile ? UNSAFE.getObjectVolatile(obj, displacement) : UNSAFE.getObject(obj, displacement));
+                return HotSpotObjectConstantImpl.forObject(isVolatile ? UNSAFE.getReferenceVolatile(obj, displacement) : UNSAFE.getReference(obj, displacement));
             default:
                 throw new IllegalArgumentException("Unsupported kind: " + kind);
         }
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/CheckGraalIntrinsics.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/CheckGraalIntrinsics.java	Mon Oct 22 17:00:04 2018 -0700
@@ -312,8 +312,8 @@
                             "jdk/internal/misc/Unsafe.compareAndExchangeIntRelease(Ljava/lang/Object;JII)I",
                             "jdk/internal/misc/Unsafe.compareAndExchangeLongAcquire(Ljava/lang/Object;JJJ)J",
                             "jdk/internal/misc/Unsafe.compareAndExchangeLongRelease(Ljava/lang/Object;JJJ)J",
-                            "jdk/internal/misc/Unsafe.compareAndExchangeObjectAcquire(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;",
-                            "jdk/internal/misc/Unsafe.compareAndExchangeObjectRelease(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;",
+                            "jdk/internal/misc/Unsafe.compareAndExchangeReferenceAcquire(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;",
+                            "jdk/internal/misc/Unsafe.compareAndExchangeReferenceRelease(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;",
                             "jdk/internal/misc/Unsafe.compareAndExchangeShortAcquire(Ljava/lang/Object;JSS)S",
                             "jdk/internal/misc/Unsafe.compareAndExchangeShortRelease(Ljava/lang/Object;JSS)S",
 
@@ -330,10 +330,10 @@
                             "jdk/internal/misc/Unsafe.weakCompareAndSetLongAcquire(Ljava/lang/Object;JJJ)Z",
                             "jdk/internal/misc/Unsafe.weakCompareAndSetLongPlain(Ljava/lang/Object;JJJ)Z",
                             "jdk/internal/misc/Unsafe.weakCompareAndSetLongRelease(Ljava/lang/Object;JJJ)Z",
-                            "jdk/internal/misc/Unsafe.weakCompareAndSetObject(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z",
-                            "jdk/internal/misc/Unsafe.weakCompareAndSetObjectAcquire(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z",
-                            "jdk/internal/misc/Unsafe.weakCompareAndSetObjectPlain(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z",
-                            "jdk/internal/misc/Unsafe.weakCompareAndSetObjectRelease(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z",
+                            "jdk/internal/misc/Unsafe.weakCompareAndSetReference(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z",
+                            "jdk/internal/misc/Unsafe.weakCompareAndSetReferenceAcquire(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z",
+                            "jdk/internal/misc/Unsafe.weakCompareAndSetReferencePlain(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z",
+                            "jdk/internal/misc/Unsafe.weakCompareAndSetReferenceRelease(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z",
                             "jdk/internal/misc/Unsafe.weakCompareAndSetShort(Ljava/lang/Object;JSS)Z",
                             "jdk/internal/misc/Unsafe.weakCompareAndSetShortAcquire(Ljava/lang/Object;JSS)Z",
                             "jdk/internal/misc/Unsafe.weakCompareAndSetShortPlain(Ljava/lang/Object;JSS)Z",
@@ -399,7 +399,7 @@
                             "sun/misc/Unsafe.getAndAddLong(Ljava/lang/Object;JJ)J",
                             "sun/misc/Unsafe.getAndSetInt(Ljava/lang/Object;JI)I",
                             "sun/misc/Unsafe.getAndSetLong(Ljava/lang/Object;JJ)J",
-                            "sun/misc/Unsafe.getAndSetObject(Ljava/lang/Object;JLjava/lang/Object;)Ljava/lang/Object;");
+                            "sun/misc/Unsafe.getAndSetReference(Ljava/lang/Object;JLjava/lang/Object;)Ljava/lang/Object;");
 
             if (isJDK9OrHigher()) {
                 if (!(arch instanceof AArch64)) {
@@ -412,7 +412,7 @@
                                     "jdk/internal/misc/Unsafe.getAndAddLong(Ljava/lang/Object;JJ)J",
                                     "jdk/internal/misc/Unsafe.getAndSetInt(Ljava/lang/Object;JI)I",
                                     "jdk/internal/misc/Unsafe.getAndSetLong(Ljava/lang/Object;JJ)J",
-                                    "jdk/internal/misc/Unsafe.getAndSetObject(Ljava/lang/Object;JLjava/lang/Object;)Ljava/lang/Object;");
+                                    "jdk/internal/misc/Unsafe.getAndSetReference(Ljava/lang/Object;JLjava/lang/Object;)Ljava/lang/Object;");
                 }
                 add(toBeInvestigated,
                                 "jdk/internal/misc/Unsafe.getCharUnaligned(Ljava/lang/Object;J)C",
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.aarch64/src/org/graalvm/compiler/replacements/aarch64/AArch64GraphBuilderPlugins.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.aarch64/src/org/graalvm/compiler/replacements/aarch64/AArch64GraphBuilderPlugins.java	Mon Oct 22 17:00:04 2018 -0700
@@ -32,6 +32,7 @@
 import static org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode.UnaryOperation.SIN;
 import static org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode.UnaryOperation.TAN;
 import static org.graalvm.compiler.serviceprovider.GraalServices.JAVA_SPECIFICATION_VERSION;
+import static org.graalvm.compiler.serviceprovider.GraalServices.Java11OrEarlier;
 import static org.graalvm.compiler.serviceprovider.GraalServices.Java8OrEarlier;
 
 import org.graalvm.compiler.bytecode.BytecodeProvider;
@@ -179,8 +180,8 @@
 
         for (JavaKind kind : unsafeJavaKinds) {
             Class<?> javaClass = kind == JavaKind.Object ? Object.class : kind.toJavaClass();
-
-            r.register4("getAndSet" + kind.name(), Receiver.class, Object.class, long.class, javaClass, new InvocationPlugin() {
+            String kindName = (kind == JavaKind.Object && !Java11OrEarlier) ? "Reference" : kind.name();
+            r.register4("getAndSet" + kindName, Receiver.class, Object.class, long.class, javaClass, new InvocationPlugin() {
                 @Override
                 public boolean apply(GraphBuilderContext b, ResolvedJavaMethod targetMethod, Receiver unsafe, ValueNode object, ValueNode offset, ValueNode value) {
                     // Emits a null-check for the otherwise unused receiver
@@ -192,7 +193,7 @@
             });
 
             if (kind != JavaKind.Boolean && kind.isNumericInteger()) {
-                r.register4("getAndAdd" + kind.name(), Receiver.class, Object.class, long.class, javaClass, new InvocationPlugin() {
+                r.register4("getAndAdd" + kindName, Receiver.class, Object.class, long.class, javaClass, new InvocationPlugin() {
                     @Override
                     public boolean apply(GraphBuilderContext b, ResolvedJavaMethod targetMethod, Receiver unsafe, ValueNode object, ValueNode offset, ValueNode delta) {
                         // Emits a null-check for the otherwise unused receiver
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.amd64/src/org/graalvm/compiler/replacements/amd64/AMD64GraphBuilderPlugins.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.amd64/src/org/graalvm/compiler/replacements/amd64/AMD64GraphBuilderPlugins.java	Mon Oct 22 17:00:04 2018 -0700
@@ -33,6 +33,7 @@
 import static org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode.UnaryOperation.SIN;
 import static org.graalvm.compiler.replacements.nodes.UnaryMathIntrinsicNode.UnaryOperation.TAN;
 import static org.graalvm.compiler.serviceprovider.GraalServices.JAVA_SPECIFICATION_VERSION;
+import static org.graalvm.compiler.serviceprovider.GraalServices.Java11OrEarlier;
 import static org.graalvm.compiler.serviceprovider.GraalServices.Java8OrEarlier;
 
 import java.util.Arrays;
@@ -230,18 +231,18 @@
     }
 
     private static void registerUnsafePlugins(InvocationPlugins plugins, BytecodeProvider replacementsBytecodeProvider, boolean explicitUnsafeNullChecks) {
-        registerUnsafePlugins(new Registration(plugins, Unsafe.class), explicitUnsafeNullChecks, new JavaKind[]{JavaKind.Int, JavaKind.Long, JavaKind.Object});
+        registerUnsafePlugins(new Registration(plugins, Unsafe.class), explicitUnsafeNullChecks, new JavaKind[]{JavaKind.Int, JavaKind.Long, JavaKind.Object}, true);
         if (!Java8OrEarlier) {
             registerUnsafePlugins(new Registration(plugins, "jdk.internal.misc.Unsafe", replacementsBytecodeProvider), explicitUnsafeNullChecks,
-                            new JavaKind[]{JavaKind.Boolean, JavaKind.Byte, JavaKind.Char, JavaKind.Short, JavaKind.Int, JavaKind.Long, JavaKind.Object});
+                            new JavaKind[]{JavaKind.Boolean, JavaKind.Byte, JavaKind.Char, JavaKind.Short, JavaKind.Int, JavaKind.Long, JavaKind.Object}, Java11OrEarlier);
         }
     }
 
-    private static void registerUnsafePlugins(Registration r, boolean explicitUnsafeNullChecks, JavaKind[] unsafeJavaKinds) {
+    private static void registerUnsafePlugins(Registration r, boolean explicitUnsafeNullChecks, JavaKind[] unsafeJavaKinds, boolean java11OrEarlier) {
         for (JavaKind kind : unsafeJavaKinds) {
             Class<?> javaClass = kind == JavaKind.Object ? Object.class : kind.toJavaClass();
-
-            r.register4("getAndSet" + kind.name(), Receiver.class, Object.class, long.class, javaClass, new UnsafeAccessPlugin(kind, explicitUnsafeNullChecks) {
+            String kindName = (kind == JavaKind.Object && !java11OrEarlier) ? "Reference" : kind.name();
+            r.register4("getAndSet" + kindName, Receiver.class, Object.class, long.class, javaClass, new UnsafeAccessPlugin(kind, explicitUnsafeNullChecks) {
                 @Override
                 public boolean apply(GraphBuilderContext b, ResolvedJavaMethod targetMethod, Receiver unsafe, ValueNode object, ValueNode offset, ValueNode value) {
                     // Emits a null-check for the otherwise unused receiver
@@ -251,7 +252,7 @@
                 }
             });
             if (kind != JavaKind.Boolean && kind.isNumericInteger()) {
-                r.register4("getAndAdd" + kind.name(), Receiver.class, Object.class, long.class, javaClass, new UnsafeAccessPlugin(kind, explicitUnsafeNullChecks) {
+                r.register4("getAndAdd" + kindName, Receiver.class, Object.class, long.class, javaClass, new UnsafeAccessPlugin(kind, explicitUnsafeNullChecks) {
                     @Override
                     public boolean apply(GraphBuilderContext b, ResolvedJavaMethod targetMethod, Receiver unsafe, ValueNode object, ValueNode offset, ValueNode delta) {
                         // Emits a null-check for the otherwise unused receiver
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.jdk9.test/src/org/graalvm/compiler/replacements/jdk9/UnsafeReplacementsTest.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.jdk9.test/src/org/graalvm/compiler/replacements/jdk9/UnsafeReplacementsTest.java	Mon Oct 22 17:00:04 2018 -0700
@@ -121,9 +121,9 @@
         return unsafe.compareAndSetDouble(container, doubleOffset, 0.125, 0.25);
     }
 
-    public static boolean unsafeCompareAndSetObject() {
+    public static boolean unsafeCompareAndSetReference() {
         Container container = new Container();
-        return unsafe.compareAndSetObject(container, objectOffset, dummyValue, newDummyValue);
+        return unsafe.compareAndSetReference(container, objectOffset, dummyValue, newDummyValue);
     }
 
     public static boolean unsafeCompareAndExchangeBoolean() {
@@ -166,9 +166,9 @@
         return unsafe.compareAndExchangeDouble(container, doubleOffset, 0.125, 0.25);
     }
 
-    public static Object unsafeCompareAndExchangeObject() {
+    public static Object unsafeCompareAndExchangeReference() {
         Container container = new Container();
-        return unsafe.compareAndExchangeObject(container, objectOffset, dummyValue, newDummyValue);
+        return unsafe.compareAndExchangeReference(container, objectOffset, dummyValue, newDummyValue);
     }
 
     @Test
@@ -183,7 +183,7 @@
             testGraph("unsafeCompareAndSetLong");
             testGraph("unsafeCompareAndSetFloat");
             testGraph("unsafeCompareAndSetDouble");
-            testGraph("unsafeCompareAndSetObject");
+            testGraph("unsafeCompareAndSetReference");
             testGraph("unsafeCompareAndExchangeBoolean");
             testGraph("unsafeCompareAndExchangeByte");
             testGraph("unsafeCompareAndExchangeChar");
@@ -192,7 +192,7 @@
             testGraph("unsafeCompareAndExchangeLong");
             testGraph("unsafeCompareAndExchangeFloat");
             testGraph("unsafeCompareAndExchangeDouble");
-            testGraph("unsafeCompareAndExchangeObject");
+            testGraph("unsafeCompareAndExchangeReference");
         }
         test("unsafeCompareAndSetBoolean");
         test("unsafeCompareAndSetByte");
@@ -202,7 +202,7 @@
         test("unsafeCompareAndSetLong");
         test("unsafeCompareAndSetFloat");
         test("unsafeCompareAndSetDouble");
-        test("unsafeCompareAndSetObject");
+        test("unsafeCompareAndSetReference");
         test("unsafeCompareAndExchangeBoolean");
         test("unsafeCompareAndExchangeByte");
         test("unsafeCompareAndExchangeChar");
@@ -211,7 +211,7 @@
         test("unsafeCompareAndExchangeLong");
         test("unsafeCompareAndExchangeFloat");
         test("unsafeCompareAndExchangeDouble");
-        test("unsafeCompareAndExchangeObject");
+        test("unsafeCompareAndExchangeReference");
     }
 
     public static int unsafeGetAndAddByte() {
@@ -288,11 +288,11 @@
         return unsafe.getAndSetLong(container, longOffset, 0x12345678abL);
     }
 
-    public static Object unsafeGetAndSetObject() {
+    public static Object unsafeGetAndSetReference() {
         Container container = new Container();
         container.objectField = null;
         Container other = new Container();
-        return unsafe.getAndSetObject(container, objectOffset, other);
+        return unsafe.getAndSetReference(container, objectOffset, other);
     }
 
     @Test
@@ -307,7 +307,7 @@
         if (target.arch instanceof AMD64 || target.arch instanceof AArch64) {
             testGraph("unsafeGetAndSetInt");
             testGraph("unsafeGetAndSetLong");
-            testGraph("unsafeGetAndSetObject");
+            testGraph("unsafeGetAndSetReference");
         }
         test("unsafeGetAndSetBoolean");
         test("unsafeGetAndSetByte");
@@ -315,7 +315,7 @@
         test("unsafeGetAndSetShort");
         test("unsafeGetAndSetInt");
         test("unsafeGetAndSetLong");
-        test("unsafeGetAndSetObject");
+        test("unsafeGetAndSetReference");
     }
 
     public static void fieldInstance() {
@@ -562,10 +562,10 @@
         return unsafe.getDouble(container, doubleOffset);
     }
 
-    public static Object unsafeGetPutObject() {
+    public static Object unsafeGetPutReference() {
         Container container = new Container();
-        unsafe.putObject(container, objectOffset, "Hello there");
-        return unsafe.getObject(container, objectOffset);
+        unsafe.putReference(container, objectOffset, "Hello there");
+        return unsafe.getReference(container, objectOffset);
     }
 
     public static boolean unsafeGetPutBooleanOpaque() {
@@ -616,10 +616,10 @@
         return unsafe.getDoubleOpaque(container, doubleOffset);
     }
 
-    public static Object unsafeGetPutObjectOpaque() {
+    public static Object unsafeGetPutReferenceOpaque() {
         Container container = new Container();
-        unsafe.putObjectOpaque(container, objectOffset, "Hello there");
-        return unsafe.getObjectOpaque(container, objectOffset);
+        unsafe.putReferenceOpaque(container, objectOffset, "Hello there");
+        return unsafe.getReferenceOpaque(container, objectOffset);
     }
 
     public static boolean unsafeGetPutBooleanRA() {
@@ -670,10 +670,10 @@
         return unsafe.getDoubleAcquire(container, doubleOffset);
     }
 
-    public static Object unsafeGetPutObjectRA() {
+    public static Object unsafeGetPutReferenceRA() {
         Container container = new Container();
-        unsafe.putObjectRelease(container, objectOffset, "Hello there");
-        return unsafe.getObjectAcquire(container, objectOffset);
+        unsafe.putReferenceRelease(container, objectOffset, "Hello there");
+        return unsafe.getReferenceAcquire(container, objectOffset);
     }
 
     public static boolean unsafeGetPutBooleanVolatile() {
@@ -724,10 +724,10 @@
         return unsafe.getDoubleVolatile(container, doubleOffset);
     }
 
-    public static Object unsafeGetPutObjectVolatile() {
+    public static Object unsafeGetPutReferenceVolatile() {
         Container container = new Container();
-        unsafe.putObjectVolatile(container, objectOffset, "Hello there");
-        return unsafe.getObjectVolatile(container, objectOffset);
+        unsafe.putReferenceVolatile(container, objectOffset, "Hello there");
+        return unsafe.getReferenceVolatile(container, objectOffset);
     }
 
     @Test
@@ -786,7 +786,7 @@
         testGraph("unsafeGetPutLongRA");
         testGraph("unsafeGetPutFloatRA");
         testGraph("unsafeGetPutDoubleRA");
-        testGraph("unsafeGetPutObjectRA");
+        testGraph("unsafeGetPutReferenceRA");
 
         test("unsafeGetPutBooleanRA");
         test("unsafeGetPutByteRA");
@@ -796,7 +796,7 @@
         test("unsafeGetPutLongRA");
         test("unsafeGetPutFloatRA");
         test("unsafeGetPutDoubleRA");
-        test("unsafeGetPutObjectRA");
+        test("unsafeGetPutReferenceRA");
     }
 
     @Test
@@ -809,7 +809,7 @@
         testGraph("unsafeGetPutLongVolatile");
         testGraph("unsafeGetPutFloatVolatile");
         testGraph("unsafeGetPutDoubleVolatile");
-        testGraph("unsafeGetPutObjectVolatile");
+        testGraph("unsafeGetPutReferenceVolatile");
 
         test("unsafeGetPutBooleanVolatile");
         test("unsafeGetPutByteVolatile");
@@ -819,6 +819,6 @@
         test("unsafeGetPutLongVolatile");
         test("unsafeGetPutFloatVolatile");
         test("unsafeGetPutDoubleVolatile");
-        test("unsafeGetPutObjectVolatile");
+        test("unsafeGetPutReferenceVolatile");
     }
 }
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/StandardGraphBuilderPlugins.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/StandardGraphBuilderPlugins.java	Mon Oct 22 17:00:04 2018 -0700
@@ -33,6 +33,7 @@
 import static jdk.vm.ci.code.MemoryBarriers.STORE_LOAD;
 import static jdk.vm.ci.code.MemoryBarriers.STORE_STORE;
 import static org.graalvm.compiler.nodes.NamedLocationIdentity.OFF_HEAP_LOCATION;
+import static org.graalvm.compiler.serviceprovider.GraalServices.Java11OrEarlier;
 import static org.graalvm.compiler.serviceprovider.GraalServices.Java8OrEarlier;
 
 import java.lang.reflect.Array;
@@ -270,10 +271,11 @@
     }
 
     private abstract static class UnsafeCompareAndUpdatePluginsRegistrar {
-        public void register(Registration r, String casPrefix, boolean explicitUnsafeNullChecks, JavaKind[] compareAndSwapTypes) {
+        public void register(Registration r, String casPrefix, boolean explicitUnsafeNullChecks, JavaKind[] compareAndSwapTypes, boolean java11OrEarlier) {
             for (JavaKind kind : compareAndSwapTypes) {
                 Class<?> javaClass = kind == JavaKind.Object ? Object.class : kind.toJavaClass();
-                r.register5(casPrefix + kind.name(), Receiver.class, Object.class, long.class, javaClass, javaClass, new UnsafeAccessPlugin(returnKind(kind), explicitUnsafeNullChecks) {
+                String kindName = (kind == JavaKind.Object && !java11OrEarlier) ? "Reference" : kind.name();
+                r.register5(casPrefix + kindName, Receiver.class, Object.class, long.class, javaClass, javaClass, new UnsafeAccessPlugin(returnKind(kind), explicitUnsafeNullChecks) {
                     @Override
                     public boolean apply(GraphBuilderContext b, ResolvedJavaMethod targetMethod, Receiver unsafe, ValueNode object, ValueNode offset, ValueNode expected, ValueNode x) {
                         // Emits a null-check for the otherwise unused receiver
@@ -332,10 +334,10 @@
 
     private static void registerPlatformSpecificUnsafePlugins(JavaKind[] supportedCasKinds, Registration r, boolean java8OrEarlier, boolean explicitUnsafeNullChecks) {
         if (java8OrEarlier) {
-            unsafeCompareAndSwapPluginsRegistrar.register(r, "compareAndSwap", explicitUnsafeNullChecks, new JavaKind[]{JavaKind.Int, JavaKind.Long, JavaKind.Object});
+            unsafeCompareAndSwapPluginsRegistrar.register(r, "compareAndSwap", explicitUnsafeNullChecks, new JavaKind[]{JavaKind.Int, JavaKind.Long, JavaKind.Object}, true);
         } else {
-            unsafeCompareAndSwapPluginsRegistrar.register(r, "compareAndSet", explicitUnsafeNullChecks, supportedCasKinds);
-            unsafeCompareAndExchangePluginsRegistrar.register(r, "compareAndExchange", explicitUnsafeNullChecks, supportedCasKinds);
+            unsafeCompareAndSwapPluginsRegistrar.register(r, "compareAndSet", explicitUnsafeNullChecks, supportedCasKinds, Java11OrEarlier);
+            unsafeCompareAndExchangePluginsRegistrar.register(r, "compareAndExchange", explicitUnsafeNullChecks, supportedCasKinds, Java11OrEarlier);
         }
     }
 
@@ -346,11 +348,11 @@
         }
     }
 
-    private static void registerUnsafePlugins(Registration r, boolean java8OrEarlier, boolean explicitUnsafeNullChecks) {
+    private static void registerUnsafePlugins(Registration r, boolean sunMiscUnsafe, boolean explicitUnsafeNullChecks) {
         for (JavaKind kind : JavaKind.values()) {
             if ((kind.isPrimitive() && kind != JavaKind.Void) || kind == JavaKind.Object) {
                 Class<?> javaClass = kind == JavaKind.Object ? Object.class : kind.toJavaClass();
-                String kindName = kind.name();
+                String kindName = (kind == JavaKind.Object && !sunMiscUnsafe && !Java11OrEarlier) ? "Reference" : kind.name();
                 String getName = "get" + kindName;
                 String putName = "put" + kindName;
                 // Object-based accesses
@@ -360,7 +362,7 @@
                 r.register3(getName + "Volatile", Receiver.class, Object.class, long.class, new UnsafeGetPlugin(kind, AccessKind.VOLATILE, explicitUnsafeNullChecks));
                 r.register4(putName + "Volatile", Receiver.class, Object.class, long.class, javaClass, new UnsafePutPlugin(kind, AccessKind.VOLATILE, explicitUnsafeNullChecks));
                 // Ordered object-based accesses
-                if (java8OrEarlier) {
+                if (sunMiscUnsafe) {
                     if (kind == JavaKind.Int || kind == JavaKind.Long || kind == JavaKind.Object) {
                         r.register4("putOrdered" + kindName, Receiver.class, Object.class, long.class, javaClass, new UnsafePutPlugin(kind, AccessKind.RELEASE_ACQUIRE, explicitUnsafeNullChecks));
                     }
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.serviceprovider/src/org/graalvm/compiler/serviceprovider/GraalServices.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.serviceprovider/src/org/graalvm/compiler/serviceprovider/GraalServices.java	Mon Oct 22 17:00:04 2018 -0700
@@ -61,6 +61,11 @@
      */
     public static final boolean Java8OrEarlier = JAVA_SPECIFICATION_VERSION <= 8;
 
+    /**
+     * Determines if the Java runtime is version 11 or earlier.
+     */
+    public static final boolean Java11OrEarlier = JAVA_SPECIFICATION_VERSION <= 11;
+
     private GraalServices() {
     }
 
--- a/src/jdk.unsupported/share/classes/sun/misc/Unsafe.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/src/jdk.unsupported/share/classes/sun/misc/Unsafe.java	Mon Oct 22 17:00:04 2018 -0700
@@ -196,7 +196,7 @@
      */
     @ForceInline
     public Object getObject(Object o, long offset) {
-        return theInternalUnsafe.getObject(o, offset);
+        return theInternalUnsafe.getReference(o, offset);
     }
 
     /**
@@ -211,7 +211,7 @@
      */
     @ForceInline
     public void putObject(Object o, long offset, Object x) {
-        theInternalUnsafe.putObject(o, offset, x);
+        theInternalUnsafe.putReference(o, offset, x);
     }
 
     /** @see #getInt(Object, long) */
@@ -860,7 +860,7 @@
     public final boolean compareAndSwapObject(Object o, long offset,
                                               Object expected,
                                               Object x) {
-        return theInternalUnsafe.compareAndSetObject(o, offset, expected, x);
+        return theInternalUnsafe.compareAndSetReference(o, offset, expected, x);
     }
 
     /**
@@ -901,7 +901,7 @@
      */
     @ForceInline
     public Object getObjectVolatile(Object o, long offset) {
-        return theInternalUnsafe.getObjectVolatile(o, offset);
+        return theInternalUnsafe.getReferenceVolatile(o, offset);
     }
 
     /**
@@ -910,7 +910,7 @@
      */
     @ForceInline
     public void putObjectVolatile(Object o, long offset, Object x) {
-        theInternalUnsafe.putObjectVolatile(o, offset, x);
+        theInternalUnsafe.putReferenceVolatile(o, offset, x);
     }
 
     /** Volatile version of {@link #getInt(Object, long)}  */
@@ -1020,7 +1020,7 @@
      */
     @ForceInline
     public void putOrderedObject(Object o, long offset, Object x) {
-        theInternalUnsafe.putObjectRelease(o, offset, x);
+        theInternalUnsafe.putReferenceRelease(o, offset, x);
     }
 
     /** Ordered/Lazy version of {@link #putIntVolatile(Object, long, int)}  */
@@ -1168,7 +1168,7 @@
      */
     @ForceInline
     public final Object getAndSetObject(Object o, long offset, Object newValue) {
-        return theInternalUnsafe.getAndSetObject(o, offset, newValue);
+        return theInternalUnsafe.getAndSetReference(o, offset, newValue);
     }
 
 
--- a/test/hotspot/jtreg/compiler/c2/Test7190310_unsafe.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/test/hotspot/jtreg/compiler/c2/Test7190310_unsafe.java	Mon Oct 22 17:00:04 2018 -0700
@@ -95,12 +95,12 @@
 
         obj = getRef3(unsafe, t, referent_offset);
         if (obj != o) {
-            System.out.println("FAILED: unsafe.getObject(Object, " + referent_offset + ") " + obj + " != " + o);
+            System.out.println("FAILED: unsafe.getReference(Object, " + referent_offset + ") " + obj + " != " + o);
             System.exit(97);
         }
         obj = getRef4(unsafe, t, referent_offset);
         if (obj != o) {
-            System.out.println("FAILED: unsafe.getObject(Test7190310, " + referent_offset + ") " + obj + " != " + o);
+            System.out.println("FAILED: unsafe.getReference(Test7190310, " + referent_offset + ") " + obj + " != " + o);
             System.exit(97);
         }
     }
@@ -115,17 +115,17 @@
         }
         obj = getRef1(unsafe, ref, referent_offset);
         if (obj != str) {
-            System.out.println("FAILED: unsafe.getObject(weakRef, " + referent_offset + ") " + obj + " != " + str);
+            System.out.println("FAILED: unsafe.getReference(weakRef, " + referent_offset + ") " + obj + " != " + str);
             return false;
         }
         obj = getRef2(unsafe, ref, referent_offset);
         if (obj != str) {
-            System.out.println("FAILED: unsafe.getObject(abstRef, " + referent_offset + ") " + obj + " != " + str);
+            System.out.println("FAILED: unsafe.getReference(abstRef, " + referent_offset + ") " + obj + " != " + str);
             return false;
         }
         obj = getRef3(unsafe, ref, referent_offset);
         if (obj != str) {
-            System.out.println("FAILED: unsafe.getObject(Object, " + referent_offset + ") " + obj + " != " + str);
+            System.out.println("FAILED: unsafe.getReference(Object, " + referent_offset + ") " + obj + " != " + str);
             return false;
         }
         return true;
@@ -136,19 +136,19 @@
     }
 
     static Object getRef1(Unsafe unsafe, WeakReference ref, long referent_offset) throws Exception {
-        return unsafe.getObject(ref, referent_offset);
+        return unsafe.getReference(ref, referent_offset);
     }
 
     static Object getRef2(Unsafe unsafe, Reference ref, long referent_offset) throws Exception {
-        return unsafe.getObject(ref, referent_offset);
+        return unsafe.getReference(ref, referent_offset);
     }
 
     static Object getRef3(Unsafe unsafe, Object ref, long referent_offset) throws Exception {
-        return unsafe.getObject(ref, referent_offset);
+        return unsafe.getReference(ref, referent_offset);
     }
 
     static Object getRef4(Unsafe unsafe, Test7190310_unsafe ref, long referent_offset) throws Exception {
-        return unsafe.getObject(ref, referent_offset);
+        return unsafe.getReference(ref, referent_offset);
     }
 }
 
--- a/test/hotspot/jtreg/compiler/c2/aarch64/TestUnsafeVolatileCAS.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/test/hotspot/jtreg/compiler/c2/aarch64/TestUnsafeVolatileCAS.java	Mon Oct 22 17:00:04 2018 -0700
@@ -75,6 +75,6 @@
 
     public void testObj(Object x, Object o)
     {
-        unsafe.compareAndSetObject(this, f_obj_off, x, o);
+        unsafe.compareAndSetReference(this, f_obj_off, x, o);
     }
 }
--- a/test/hotspot/jtreg/compiler/c2/aarch64/TestUnsafeVolatileLoad.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/test/hotspot/jtreg/compiler/c2/aarch64/TestUnsafeVolatileLoad.java	Mon Oct 22 17:00:04 2018 -0700
@@ -51,6 +51,6 @@
 
     public int testObj()
     {
-        return ((Integer)unsafe.getObjectVolatile(this, f_obj_off));
+        return ((Integer)unsafe.getReferenceVolatile(this, f_obj_off));
     }
 }
--- a/test/hotspot/jtreg/compiler/c2/aarch64/TestUnsafeVolatileStore.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/test/hotspot/jtreg/compiler/c2/aarch64/TestUnsafeVolatileStore.java	Mon Oct 22 17:00:04 2018 -0700
@@ -74,6 +74,6 @@
 
     public void testObj(Object o)
     {
-        unsafe.putObjectVolatile(this, f_obj_off, o);
+        unsafe.putReferenceVolatile(this, f_obj_off, o);
     }
 }
--- a/test/hotspot/jtreg/compiler/gcbarriers/UnsafeIntrinsicsTest.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/test/hotspot/jtreg/compiler/gcbarriers/UnsafeIntrinsicsTest.java	Mon Oct 22 17:00:04 2018 -0700
@@ -25,7 +25,7 @@
  * @test
  * @bug 8059022
  * @modules java.base/jdk.internal.misc:+open
- * @summary Validate barriers after Unsafe getObject, CAS and swap (GetAndSet)
+ * @summary Validate barriers after Unsafe getReference, CAS and swap (GetAndSet)
  * @requires vm.gc.Z & !vm.graal.enabled
  * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:+UseZGC -XX:+UnlockDiagnosticVMOptions -XX:+ZUnmapBadViews -XX:ZCollectionInterval=1 -XX:-CreateCoredumpOnCrash -XX:CompileCommand=dontinline,*::mergeImpl* compiler.gcbarriers.UnsafeIntrinsicsTest
  */
@@ -263,19 +263,19 @@
 
     private Node mergeImplLoad(Node startNode, Node expectedNext, Node head) {
         // Atomic load version
-        Node temp = (Node) UNSAFE.getObject(startNode, offset);
+        Node temp = (Node) UNSAFE.getReference(startNode, offset);
         startNode.setNext(head);
         return temp;
     }
 
     private Node mergeImplSwap(Node startNode, Node expectedNext, Node head) {
         // Swap version
-        return (Node) UNSAFE.getAndSetObject(startNode, offset, head);
+        return (Node) UNSAFE.getAndSetReference(startNode, offset, head);
     }
 
     private Node mergeImplCAS(Node startNode, Node expectedNext, Node head) {
         // CAS - should always be true within a single thread - no other thread can have overwritten
-        if (!UNSAFE.compareAndSetObject(startNode, offset, expectedNext, head)) {
+        if (!UNSAFE.compareAndSetReference(startNode, offset, expectedNext, head)) {
             throw new Error("CAS should always succeed on thread local objects, check you barrier implementation");
         }
         return expectedNext; // continue on old circle
@@ -283,7 +283,7 @@
 
     private Node mergeImplCASFail(Node startNode, Node expectedNext, Node head) {
         // Force a fail
-        if (UNSAFE.compareAndSetObject(startNode, offset, "fail", head)) {
+        if (UNSAFE.compareAndSetReference(startNode, offset, "fail", head)) {
             throw new Error("This CAS should always fail, check you barrier implementation");
         }
         if (startNode.next() != expectedNext) {
@@ -294,7 +294,7 @@
 
     private Node mergeImplWeakCAS(Node startNode, Node expectedNext, Node head) {
         // Weak CAS - should always be true within a single thread - no other thread can have overwritten
-        if (!UNSAFE.weakCompareAndSetObject(startNode, offset, expectedNext, head)) {
+        if (!UNSAFE.weakCompareAndSetReference(startNode, offset, expectedNext, head)) {
             throw new Error("Weak CAS should always succeed on thread local objects, check you barrier implementation");
         }
         return expectedNext; // continue on old circle
@@ -302,7 +302,7 @@
 
     private Node mergeImplWeakCASFail(Node startNode, Node expectedNext, Node head) {
         // Force a fail
-        if (UNSAFE.weakCompareAndSetObject(startNode, offset, "fail", head)) {
+        if (UNSAFE.weakCompareAndSetReference(startNode, offset, "fail", head)) {
             throw new Error("This weak CAS should always fail, check you barrier implementation");
         }
         if (startNode.next() != expectedNext) {
@@ -313,7 +313,7 @@
 
     private Node mergeImplCMPX(Node startNode, Node expectedNext, Node head) {
         // CmpX - should always be true within a single thread - no other thread can have overwritten
-        Object res = UNSAFE.compareAndExchangeObject(startNode, offset, expectedNext, head);
+        Object res = UNSAFE.compareAndExchangeReference(startNode, offset, expectedNext, head);
         if (!res.equals(expectedNext)) {
             throw new Error("Fail CmpX should always succeed on thread local objects, check you barrier implementation");
         }
@@ -321,7 +321,7 @@
     }
 
     private Node mergeImplCMPXFail(Node startNode, Node expectedNext, Node head) {
-        Object res = UNSAFE.compareAndExchangeObject(startNode, offset, head, head);
+        Object res = UNSAFE.compareAndExchangeReference(startNode, offset, head, head);
         if (startNode.next() != expectedNext) {
             throw new Error("Shouldn't have changed");
         }
--- a/test/hotspot/jtreg/compiler/intrinsics/unsafe/TestCAEAntiDep.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/test/hotspot/jtreg/compiler/intrinsics/unsafe/TestCAEAntiDep.java	Mon Oct 22 17:00:04 2018 -0700
@@ -25,7 +25,7 @@
 /**
  * @test
  * @bug 8167298
- * @summary Unsafe.compareAndExchangeObject should keep track of returned type after matching
+ * @summary Unsafe.compareAndExchangeReference should keep track of returned type after matching
  * @modules java.base/jdk.internal.misc
  * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:-BackgroundCompilation -XX:-UseOnStackReplacement -XX:-UseCompressedOops TestCAEAntiDep
  *
@@ -54,7 +54,7 @@
     }
 
     static int m(TestCAEAntiDep test, Object expected, Object x) {
-        C old = (C)UNSAFE.compareAndExchangeObject(test, O_OFFSET, expected, x);
+        C old = (C)UNSAFE.compareAndExchangeReference(test, O_OFFSET, expected, x);
         int res = old.f1;
         old.f1 = 0x42;
         return res;
--- a/test/hotspot/jtreg/compiler/intrinsics/unsafe/TestUnsafeMismatchedArrayFieldAccess.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/test/hotspot/jtreg/compiler/intrinsics/unsafe/TestUnsafeMismatchedArrayFieldAccess.java	Mon Oct 22 17:00:04 2018 -0700
@@ -52,7 +52,7 @@
     static final long array_offset;
 
     void m() {
-        UNSAFE.getObject(this, array_offset);
+        UNSAFE.getReference(this, array_offset);
     }
 
     static public void main(String[] args) {
--- a/test/hotspot/jtreg/compiler/profiling/UnsafeAccess.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/test/hotspot/jtreg/compiler/profiling/UnsafeAccess.java	Mon Oct 22 17:00:04 2018 -0700
@@ -49,7 +49,7 @@
 
     static Object helperUnsafeAccess(Object o, boolean isObjArray) {
         if (isObjArray) {
-            U.putObject(o, off, new Object());
+            U.putReference(o, off, new Object());
         }
         return o;
     }
@@ -63,8 +63,8 @@
 
     static Object helperUnsafeLoadStore(Object o, boolean isObjArray) {
         if (isObjArray) {
-            Object o1 = U.getObject(o, off);
-            U.compareAndSetObject(o, off, o1, new Object());
+            Object o1 = U.getReference(o, off);
+            U.compareAndSetReference(o, off, o1, new Object());
         }
         return o;
     }
--- a/test/hotspot/jtreg/compiler/regalloc/C1ObjectSpillInLogicOp.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/test/hotspot/jtreg/compiler/regalloc/C1ObjectSpillInLogicOp.java	Mon Oct 22 17:00:04 2018 -0700
@@ -24,7 +24,7 @@
 /*
  * @test
  * @bug 8027751
- * @summary C1 crashes generating G1 post-barrier in Unsafe.getAndSetObject() intrinsic because of the new value spill
+ * @summary C1 crashes generating G1 post-barrier in Unsafe.getAndSetReference() intrinsic because of the new value spill
  * @requires vm.gc.G1
  *
  * @run main/othervm -XX:+UseG1GC compiler.regalloc.C1ObjectSpillInLogicOp
--- a/test/hotspot/jtreg/compiler/unsafe/GetUnsafeObjectG1PreBarrier.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/test/hotspot/jtreg/compiler/unsafe/GetUnsafeObjectG1PreBarrier.java	Mon Oct 22 17:00:04 2018 -0700
@@ -71,6 +71,6 @@
     }
 
     private void readField(Object o, long fieldOffset) {
-        unsafe.getObject(o, fieldOffset);
+        unsafe.getReference(o, fieldOffset);
     }
 }
--- a/test/hotspot/jtreg/compiler/unsafe/JdkInternalMiscUnsafeAccessTestObject.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/test/hotspot/jtreg/compiler/unsafe/JdkInternalMiscUnsafeAccessTestObject.java	Mon Oct 22 17:00:04 2018 -0700
@@ -119,141 +119,141 @@
     static void testAccess(Object base, long offset) {
         // Plain
         {
-            UNSAFE.putObject(base, offset, "foo");
-            Object x = UNSAFE.getObject(base, offset);
+            UNSAFE.putReference(base, offset, "foo");
+            Object x = UNSAFE.getReference(base, offset);
             assertEquals(x, "foo", "set Object value");
         }
 
         // Volatile
         {
-            UNSAFE.putObjectVolatile(base, offset, "bar");
-            Object x = UNSAFE.getObjectVolatile(base, offset);
+            UNSAFE.putReferenceVolatile(base, offset, "bar");
+            Object x = UNSAFE.getReferenceVolatile(base, offset);
             assertEquals(x, "bar", "putVolatile Object value");
         }
 
 
         // Lazy
         {
-            UNSAFE.putObjectRelease(base, offset, "foo");
-            Object x = UNSAFE.getObjectAcquire(base, offset);
+            UNSAFE.putReferenceRelease(base, offset, "foo");
+            Object x = UNSAFE.getReferenceAcquire(base, offset);
             assertEquals(x, "foo", "putRelease Object value");
         }
 
         // Opaque
         {
-            UNSAFE.putObjectOpaque(base, offset, "bar");
-            Object x = UNSAFE.getObjectOpaque(base, offset);
+            UNSAFE.putReferenceOpaque(base, offset, "bar");
+            Object x = UNSAFE.getReferenceOpaque(base, offset);
             assertEquals(x, "bar", "putOpaque Object value");
         }
 
 
-        UNSAFE.putObject(base, offset, "foo");
+        UNSAFE.putReference(base, offset, "foo");
 
         // Compare
         {
-            boolean r = UNSAFE.compareAndSetObject(base, offset, "foo", "bar");
+            boolean r = UNSAFE.compareAndSetReference(base, offset, "foo", "bar");
             assertEquals(r, true, "success compareAndSet Object");
-            Object x = UNSAFE.getObject(base, offset);
+            Object x = UNSAFE.getReference(base, offset);
             assertEquals(x, "bar", "success compareAndSet Object value");
         }
 
         {
-            boolean r = UNSAFE.compareAndSetObject(base, offset, "foo", "baz");
+            boolean r = UNSAFE.compareAndSetReference(base, offset, "foo", "baz");
             assertEquals(r, false, "failing compareAndSet Object");
-            Object x = UNSAFE.getObject(base, offset);
+            Object x = UNSAFE.getReference(base, offset);
             assertEquals(x, "bar", "failing compareAndSet Object value");
         }
 
         // Advanced compare
         {
-            Object r = UNSAFE.compareAndExchangeObject(base, offset, "bar", "foo");
+            Object r = UNSAFE.compareAndExchangeReference(base, offset, "bar", "foo");
             assertEquals(r, "bar", "success compareAndExchange Object");
-            Object x = UNSAFE.getObject(base, offset);
+            Object x = UNSAFE.getReference(base, offset);
             assertEquals(x, "foo", "success compareAndExchange Object value");
         }
 
         {
-            Object r = UNSAFE.compareAndExchangeObject(base, offset, "bar", "baz");
+            Object r = UNSAFE.compareAndExchangeReference(base, offset, "bar", "baz");
             assertEquals(r, "foo", "failing compareAndExchange Object");
-            Object x = UNSAFE.getObject(base, offset);
+            Object x = UNSAFE.getReference(base, offset);
             assertEquals(x, "foo", "failing compareAndExchange Object value");
         }
 
         {
-            Object r = UNSAFE.compareAndExchangeObjectAcquire(base, offset, "foo", "bar");
+            Object r = UNSAFE.compareAndExchangeReferenceAcquire(base, offset, "foo", "bar");
             assertEquals(r, "foo", "success compareAndExchangeAcquire Object");
-            Object x = UNSAFE.getObject(base, offset);
+            Object x = UNSAFE.getReference(base, offset);
             assertEquals(x, "bar", "success compareAndExchangeAcquire Object value");
         }
 
         {
-            Object r = UNSAFE.compareAndExchangeObjectAcquire(base, offset, "foo", "baz");
+            Object r = UNSAFE.compareAndExchangeReferenceAcquire(base, offset, "foo", "baz");
             assertEquals(r, "bar", "failing compareAndExchangeAcquire Object");
-            Object x = UNSAFE.getObject(base, offset);
+            Object x = UNSAFE.getReference(base, offset);
             assertEquals(x, "bar", "failing compareAndExchangeAcquire Object value");
         }
 
         {
-            Object r = UNSAFE.compareAndExchangeObjectRelease(base, offset, "bar", "foo");
+            Object r = UNSAFE.compareAndExchangeReferenceRelease(base, offset, "bar", "foo");
             assertEquals(r, "bar", "success compareAndExchangeRelease Object");
-            Object x = UNSAFE.getObject(base, offset);
+            Object x = UNSAFE.getReference(base, offset);
             assertEquals(x, "foo", "success compareAndExchangeRelease Object value");
         }
 
         {
-            Object r = UNSAFE.compareAndExchangeObjectRelease(base, offset, "bar", "baz");
+            Object r = UNSAFE.compareAndExchangeReferenceRelease(base, offset, "bar", "baz");
             assertEquals(r, "foo", "failing compareAndExchangeRelease Object");
-            Object x = UNSAFE.getObject(base, offset);
+            Object x = UNSAFE.getReference(base, offset);
             assertEquals(x, "foo", "failing compareAndExchangeRelease Object value");
         }
 
         {
             boolean success = false;
             for (int c = 0; c < WEAK_ATTEMPTS && !success; c++) {
-                success = UNSAFE.weakCompareAndSetObjectPlain(base, offset, "foo", "bar");
+                success = UNSAFE.weakCompareAndSetReferencePlain(base, offset, "foo", "bar");
             }
             assertEquals(success, true, "weakCompareAndSetPlain Object");
-            Object x = UNSAFE.getObject(base, offset);
+            Object x = UNSAFE.getReference(base, offset);
             assertEquals(x, "bar", "weakCompareAndSetPlain Object value");
         }
 
         {
             boolean success = false;
             for (int c = 0; c < WEAK_ATTEMPTS && !success; c++) {
-                success = UNSAFE.weakCompareAndSetObjectAcquire(base, offset, "bar", "foo");
+                success = UNSAFE.weakCompareAndSetReferenceAcquire(base, offset, "bar", "foo");
             }
             assertEquals(success, true, "weakCompareAndSetAcquire Object");
-            Object x = UNSAFE.getObject(base, offset);
+            Object x = UNSAFE.getReference(base, offset);
             assertEquals(x, "foo", "weakCompareAndSetAcquire Object");
         }
 
         {
             boolean success = false;
             for (int c = 0; c < WEAK_ATTEMPTS && !success; c++) {
-                success = UNSAFE.weakCompareAndSetObjectRelease(base, offset, "foo", "bar");
+                success = UNSAFE.weakCompareAndSetReferenceRelease(base, offset, "foo", "bar");
             }
             assertEquals(success, true, "weakCompareAndSetRelease Object");
-            Object x = UNSAFE.getObject(base, offset);
+            Object x = UNSAFE.getReference(base, offset);
             assertEquals(x, "bar", "weakCompareAndSetRelease Object");
         }
 
         {
             boolean success = false;
             for (int c = 0; c < WEAK_ATTEMPTS && !success; c++) {
-                success = UNSAFE.weakCompareAndSetObject(base, offset, "bar", "foo");
+                success = UNSAFE.weakCompareAndSetReference(base, offset, "bar", "foo");
             }
             assertEquals(success, true, "weakCompareAndSet Object");
-            Object x = UNSAFE.getObject(base, offset);
+            Object x = UNSAFE.getReference(base, offset);
             assertEquals(x, "foo", "weakCompareAndSet Object");
         }
 
-        UNSAFE.putObject(base, offset, "bar");
+        UNSAFE.putReference(base, offset, "bar");
 
         // Compare set and get
         {
-            Object o = UNSAFE.getAndSetObject(base, offset, "foo");
+            Object o = UNSAFE.getAndSetReference(base, offset, "foo");
             assertEquals(o, "bar", "getAndSet Object");
-            Object x = UNSAFE.getObject(base, offset);
+            Object x = UNSAFE.getReference(base, offset);
             assertEquals(x, "foo", "getAndSet Object value");
         }
 
--- a/test/hotspot/jtreg/compiler/unsafe/MixedUnsafeStoreObject.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/test/hotspot/jtreg/compiler/unsafe/MixedUnsafeStoreObject.java	Mon Oct 22 17:00:04 2018 -0700
@@ -54,7 +54,7 @@
         for (int c = 0; c < 20000; c++) { // trigger OSR compilation
             // java/lang/Object+12 *
             // _base = InstPtr, _ptr = BotPTR, _field = NULL, mismatched = true
-            UNSAFE.putObject(t, F_OFFSET, "foo");
+            UNSAFE.putReference(t, F_OFFSET, "foo");
         }
     }
 
@@ -62,7 +62,7 @@
         for (int c = 0; c < 20000; c++) { // trigger OSR compilation
             // ...$T+12 *
             // _base = InstPtr, _ptr = BotPTR, _field = T.f, mismatched = false
-            UNSAFE.putObject(t, F_OFFSET, "foo");
+            UNSAFE.putReference(t, F_OFFSET, "foo");
         }
     }
     public static void main(String[] args) {
--- a/test/hotspot/jtreg/compiler/unsafe/OpaqueAccesses.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/test/hotspot/jtreg/compiler/unsafe/OpaqueAccesses.java	Mon Oct 22 17:00:04 2018 -0700
@@ -78,7 +78,7 @@
     private long l1, l2;
 
     static Object testFixedOffsetField(Object o) {
-        return UNSAFE.getObject(o, F_OFFSET);
+        return UNSAFE.getReference(o, F_OFFSET);
     }
 
     static int testFixedOffsetHeader0(Object o) {
@@ -106,11 +106,11 @@
     }
 
     static Object testFixedBase(long off) {
-        return UNSAFE.getObject(INSTANCE, off);
+        return UNSAFE.getReference(INSTANCE, off);
     }
 
     static Object testOpaque(Object o, long off) {
-        return UNSAFE.getObject(o, off);
+        return UNSAFE.getReference(o, off);
     }
 
     static int testFixedOffsetHeaderArray0(Object[] arr) {
@@ -138,15 +138,15 @@
     }
 
     static Object testFixedOffsetArray(Object[] arr) {
-        return UNSAFE.getObject(arr, E_OFFSET);
+        return UNSAFE.getReference(arr, E_OFFSET);
     }
 
     static Object testFixedBaseArray(long off) {
-        return UNSAFE.getObject(ARRAY, off);
+        return UNSAFE.getReference(ARRAY, off);
     }
 
     static Object testOpaqueArray(Object[] o, long off) {
-        return UNSAFE.getObject(o, off);
+        return UNSAFE.getReference(o, off);
     }
 
     static final long ADDR = UNSAFE.allocateMemory(10);
--- a/test/hotspot/jtreg/compiler/unsafe/UnsafeGetConstantField.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/test/hotspot/jtreg/compiler/unsafe/UnsafeGetConstantField.java	Mon Oct 22 17:00:04 2018 -0700
@@ -222,6 +222,9 @@
                 return name();
             }
         }
+        String unsafeTypeName() {
+            return typeName.equals("Object") ? "Reference" : typeName;
+        }
     }
 
     static String internalName(Class cls) {
@@ -352,7 +355,7 @@
                 } else {
                     mv.visitInsn(ACONST_NULL);
                 }
-                String name = "put" + type.typeName + nameSuffix;
+                String name = "put" + type.unsafeTypeName() + nameSuffix;
                 mv.visitMethodInsn(INVOKEVIRTUAL, UNSAFE_NAME, name, "(Ljava/lang/Object;J" + type.desc()+ ")V", false);
                 mv.visitInsn(RETURN);
 
@@ -438,7 +441,7 @@
                 mv.visitFieldInsn(GETSTATIC, className, "t", classDesc);
             }
             mv.visitFieldInsn(GETSTATIC, className, "FIELD_OFFSET", "J");
-            String name = "get" + type.typeName + nameSuffix;
+            String name = "get" + type.unsafeTypeName() + nameSuffix;
             mv.visitMethodInsn(INVOKEVIRTUAL, UNSAFE_NAME, name, "(Ljava/lang/Object;J)" + type.desc(), false);
         }
         void wrapResult(MethodVisitor mv) {
--- a/test/hotspot/jtreg/compiler/unsafe/UnsafeGetStableArrayElement.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/test/hotspot/jtreg/compiler/unsafe/UnsafeGetStableArrayElement.java	Mon Oct 22 17:00:04 2018 -0700
@@ -173,15 +173,15 @@
         static float   testD_F() { return U.getFloat(  STABLE_DOUBLE_ARRAY, ARRAY_DOUBLE_BASE_OFFSET); }
         static double  testD_D() { return U.getDouble( STABLE_DOUBLE_ARRAY, ARRAY_DOUBLE_BASE_OFFSET); }
 
-        static Object  testL_L() { return U.getObject( STABLE_OBJECT_ARRAY, ARRAY_OBJECT_BASE_OFFSET); }
-        static boolean testL_Z() { return U.getBoolean(STABLE_OBJECT_ARRAY, ARRAY_OBJECT_BASE_OFFSET); }
-        static byte    testL_B() { return U.getByte(   STABLE_OBJECT_ARRAY, ARRAY_OBJECT_BASE_OFFSET); }
-        static short   testL_S() { return U.getShort(  STABLE_OBJECT_ARRAY, ARRAY_OBJECT_BASE_OFFSET); }
-        static char    testL_C() { return U.getChar(   STABLE_OBJECT_ARRAY, ARRAY_OBJECT_BASE_OFFSET); }
-        static int     testL_I() { return U.getInt(    STABLE_OBJECT_ARRAY, ARRAY_OBJECT_BASE_OFFSET); }
-        static long    testL_J() { return U.getLong(   STABLE_OBJECT_ARRAY, ARRAY_OBJECT_BASE_OFFSET); }
-        static float   testL_F() { return U.getFloat(  STABLE_OBJECT_ARRAY, ARRAY_OBJECT_BASE_OFFSET); }
-        static double  testL_D() { return U.getDouble( STABLE_OBJECT_ARRAY, ARRAY_OBJECT_BASE_OFFSET); }
+        static Object  testL_L() { return U.getReference( STABLE_OBJECT_ARRAY, ARRAY_OBJECT_BASE_OFFSET); }
+        static boolean testL_Z() { return U.getBoolean(STABLE_OBJECT_ARRAY, ARRAY_OBJECT_BASE_OFFSET);    }
+        static byte    testL_B() { return U.getByte(   STABLE_OBJECT_ARRAY, ARRAY_OBJECT_BASE_OFFSET);    }
+        static short   testL_S() { return U.getShort(  STABLE_OBJECT_ARRAY, ARRAY_OBJECT_BASE_OFFSET);    }
+        static char    testL_C() { return U.getChar(   STABLE_OBJECT_ARRAY, ARRAY_OBJECT_BASE_OFFSET);    }
+        static int     testL_I() { return U.getInt(    STABLE_OBJECT_ARRAY, ARRAY_OBJECT_BASE_OFFSET);    }
+        static long    testL_J() { return U.getLong(   STABLE_OBJECT_ARRAY, ARRAY_OBJECT_BASE_OFFSET);    }
+        static float   testL_F() { return U.getFloat(  STABLE_OBJECT_ARRAY, ARRAY_OBJECT_BASE_OFFSET);    }
+        static double  testL_D() { return U.getDouble( STABLE_OBJECT_ARRAY, ARRAY_OBJECT_BASE_OFFSET);    }
 
         static short   testS_U() { return U.getShortUnaligned(STABLE_SHORT_ARRAY, ARRAY_SHORT_BASE_OFFSET + 1); }
         static char    testC_U() { return U.getCharUnaligned(  STABLE_CHAR_ARRAY,  ARRAY_CHAR_BASE_OFFSET + 1); }
--- a/test/hotspot/jtreg/runtime/Unsafe/GetPutObject.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/test/hotspot/jtreg/runtime/Unsafe/GetPutObject.java	Mon Oct 22 17:00:04 2018 -0700
@@ -42,16 +42,16 @@
         Field field = Test.class.getField("o");
 
         long offset = unsafe.objectFieldOffset(field);
-        assertEquals(t.o, unsafe.getObject(t, offset));
+        assertEquals(t.o, unsafe.getReference(t, offset));
 
-        unsafe.putObject(t, offset, o);
-        assertEquals(o, unsafe.getObject(t, offset));
+        unsafe.putReference(t, offset, o);
+        assertEquals(o, unsafe.getReference(t, offset));
 
         Object arrayObject[] = { unsafe, null, new Object() };
         int scale = unsafe.arrayIndexScale(arrayObject.getClass());
         offset = unsafe.arrayBaseOffset(arrayObject.getClass());
         for (int i = 0; i < arrayObject.length; i++) {
-            assertEquals(unsafe.getObject(arrayObject, offset), arrayObject[i]);
+            assertEquals(unsafe.getReference(arrayObject, offset), arrayObject[i]);
             offset += scale;
         }
     }
--- a/test/hotspot/jtreg/runtime/Unsafe/RangeCheck.java	Mon Oct 22 14:41:51 2018 -0700
+++ b/test/hotspot/jtreg/runtime/Unsafe/RangeCheck.java	Mon Oct 22 17:00:04 2018 -0700
@@ -59,7 +59,7 @@
     public static class DummyClassWithMainRangeCheck {
         public static void main(String args[]) throws Exception {
             Unsafe unsafe = Unsafe.getUnsafe();
-            unsafe.getObject(new DummyClassWithMainRangeCheck(), Short.MAX_VALUE);
+            unsafe.getReference(new DummyClassWithMainRangeCheck(), Short.MAX_VALUE);
         }
     }
 }