changeset 46584:ec15a827637c

Merge
author bobv
date Tue, 27 Jun 2017 14:34:00 -0400
parents 873282753046 33bfb73333f9
children af110b4b1981
files hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.api.word/src/org/graalvm/api/word/AtomicUnsigned.java hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.api.word/src/org/graalvm/api/word/AtomicWord.java hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.api.word/src/org/graalvm/api/word/ComparableWord.java hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.api.word/src/org/graalvm/api/word/LocationIdentity.java hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.api.word/src/org/graalvm/api/word/Pointer.java hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.api.word/src/org/graalvm/api/word/PointerBase.java hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.api.word/src/org/graalvm/api/word/PointerUtils.java hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.api.word/src/org/graalvm/api/word/Signed.java hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.api.word/src/org/graalvm/api/word/Unsigned.java hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.api.word/src/org/graalvm/api/word/UnsignedUtils.java hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.api.word/src/org/graalvm/api/word/WordBase.java hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.api.word/src/org/graalvm/api/word/WordFactory.java hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.aarch64/src/org/graalvm/compiler/core/aarch64/AArch64AddressLowering.java hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.aarch64/src/org/graalvm/compiler/core/aarch64/AArch64SuitesProvider.java hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.amd64/src/org/graalvm/compiler/core/amd64/AMD64SuitesProvider.java hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.sparc/src/org/graalvm/compiler/core/sparc/SPARCSuitesProvider.java hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64HotSpotSuitesProvider.java hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.java/src/org/graalvm/compiler/java/DefaultSuitesProvider.java jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/util/XMLCatalogResolver.java jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/resolver/Catalog.java jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/resolver/CatalogEntry.java jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/resolver/CatalogException.java jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/resolver/CatalogManager.java jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/resolver/Resolver.java jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/resolver/helpers/BootstrapResolver.java jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/resolver/helpers/Debug.java jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/resolver/helpers/FileURL.java jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/resolver/helpers/Namespaces.java jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/resolver/helpers/PublicId.java jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/resolver/readers/CatalogReader.java jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/resolver/readers/DOMCatalogParser.java jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/resolver/readers/DOMCatalogReader.java jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/resolver/readers/ExtendedXMLCatalogReader.java jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/resolver/readers/OASISXMLCatalogReader.java jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/resolver/readers/SAXCatalogParser.java jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/resolver/readers/SAXCatalogReader.java jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/resolver/readers/SAXParserHandler.java jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/resolver/readers/TR9401CatalogReader.java jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/resolver/readers/TextCatalogReader.java jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/resolver/readers/XCatalogReader.java jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/resolver/tools/CatalogResolver.java jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/resolver/tools/ResolvingParser.java jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/resolver/tools/ResolvingXMLFilter.java jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/resolver/tools/ResolvingXMLReader.java jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/AttList.java jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/DOM2Helper.java jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/DOMHelper.java jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/DOMOrder.java jdk/src/java.base/share/specs/serialization/class.md jdk/src/java.base/share/specs/serialization/examples.md jdk/src/java.base/share/specs/serialization/exceptions.md jdk/src/java.base/share/specs/serialization/images/version.gif jdk/src/java.base/share/specs/serialization/index.md jdk/src/java.base/share/specs/serialization/input.md jdk/src/java.base/share/specs/serialization/output.md jdk/src/java.base/share/specs/serialization/protocol.md jdk/src/java.base/share/specs/serialization/security.md jdk/src/java.base/share/specs/serialization/serial-arch.md jdk/src/java.base/share/specs/serialization/version.md jdk/src/java.desktop/share/specs/AWT_Native_Interface.html jdk/src/java.management/share/specs/JVM-MANAGEMENT-MIB.mib jdk/test/java/io/File/MacPathTest.sh jdk/test/java/io/File/basic.sh jdk/test/java/io/FileOutputStream/FileOpen.sh jdk/test/java/io/FileOutputStream/FileOpenNeg.java jdk/test/java/io/FileOutputStream/FileOpenPos.java jdk/test/java/nio/channels/spi/AsynchronousChannelProvider/custom_provider.sh jdk/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/run_tests.sh jdk/test/java/nio/charset/Charset/default.sh jdk/test/java/nio/charset/coders/CheckSJISMappingProp.sh jdk/test/java/nio/charset/spi/Test.java jdk/test/java/nio/charset/spi/basic.sh jdk/test/java/nio/file/Files/walkFileTree/PrintFileTree.java jdk/test/java/nio/file/Files/walkFileTree/find.sh jdk/test/java/nio/file/Path/MacPathTest.sh jdk/test/java/util/Arrays/ParallelPrefix.java jdk/test/java/util/ResourceBundle/modules/appbasic/src/test/jdk/test/resources/MyResourcesProvider.java jdk/test/java/util/ResourceBundle/modules/appbasic2/src/test/jdk/test/resources/MyResourcesProvider.java jdk/test/java/util/ResourceBundle/modules/basic/src/mainbundles/jdk/test/resources/MyResourcesProvider.java jdk/test/java/util/ResourceBundle/modules/simple/src/bundles/jdk/test/resources/MyResourcesProvider.java jdk/test/java/util/ResourceBundle/modules/visibility/src/exported.named.bundles/jdk/test/resources/exported/classes/MyResourcesProvider.java jdk/test/java/util/ResourceBundle/modules/visibility/src/named.bundles/jdk/test/resources/classes/MyResourcesProvider.java jdk/test/java/util/ResourceBundle/modules/visibility/src/named.bundles/jdk/test/resources/props/MyResourcesProvider.java jdk/test/java/util/ResourceBundle/modules/xmlformat/src/bundles/jdk/test/resources/MyResourcesProvider.java jdk/test/lib/testlibrary/jdk/testlibrary/TimeLimitedRunner.java jdk/test/sun/net/InetAddress/nameservice/dns/cname.sh jdk/test/sun/net/ftp/MarkResetTest.sh jdk/test/sun/net/www/protocol/file/DirPermissionDenied.sh jdk/test/sun/net/www/protocol/jrt/other_resources.sh langtools/make/src/classes/build/tools/listjdkinternals/ListJDKInternals.java langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/LayoutParser.java langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/XMLNode.java langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclet.xml
diffstat 1401 files changed, 18499 insertions(+), 30826 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Tue Jun 27 14:29:54 2017 -0400
+++ b/.hgtags	Tue Jun 27 14:34:00 2017 -0400
@@ -1,3 +1,5 @@
+94680c6d60ecd9ed3ffd1847706efde7eb947afc jdk-9+174
+6dd7fda42bab7ecf648cafb0a4e9b4ca11b3094f jdk-9+173
 dad6746278facbbea57dd462cb56fb743dc0a5f0 jdk-9+172
 643b5f18c2656fe91b69fea85b07b98d5fad394d jdk-9+171
 898cbe31fbdae2d25d141384fac746cc244a730c jdk-9+170
@@ -426,3 +428,5 @@
 c42dc7b58b4d4301ea676a76326fd9bbd403d595 jdk-10+8
 aa5b01f5e5620438fd39efdb2e2f6365a2c7d898 jdk-10+9
 b0f2b8ff25a2209b2c807785d75f20e5086bbfc2 jdk-10+10
+036dbf8b381798e5d31065109714d04d97bf98a4 jdk-10+11
+e6d70017f5b9adbb2ec82d826973d0251800a3c3 jdk-10+12
--- a/.hgtags-top-repo	Tue Jun 27 14:29:54 2017 -0400
+++ b/.hgtags-top-repo	Tue Jun 27 14:34:00 2017 -0400
@@ -426,3 +426,7 @@
 4c12464a907db4656c1033f56fa49cba643ac629 jdk-9+171
 6558c37afe832582238d338578d598f30c6fdd75 jdk-10+10
 2c25fc24103251f9711a1c280c31e1e41016d90f jdk-9+172
+6b750cdb823a029a25ff2e560302cc2d28a86cb6 jdk-10+11
+88d7fd969e7df0e07a53b201cfd29393ca33ede9 jdk-9+173
+5466f409346e0446ee9a6daeb7f5d75c8fc76823 jdk-9+174
+8d4ed1e06fe184c9cb08c5b708e7d6f5c066644f jdk-10+12
--- a/common/autoconf/generated-configure.sh	Tue Jun 27 14:29:54 2017 -0400
+++ b/common/autoconf/generated-configure.sh	Tue Jun 27 14:34:00 2017 -0400
@@ -688,6 +688,7 @@
 LIBFFI_CFLAGS
 ALSA_LIBS
 ALSA_CFLAGS
+FREETYPE_LICENSE
 FREETYPE_BUNDLE_LIB_PATH
 FREETYPE_LIBS
 FREETYPE_CFLAGS
@@ -1200,6 +1201,7 @@
 with_freetype_lib
 with_freetype_src
 enable_freetype_bundling
+with_freetype_license
 with_alsa
 with_alsa_include
 with_alsa_lib
@@ -2153,6 +2155,7 @@
   --with-freetype-src     specify directory with freetype sources to
                           automatically build the library (experimental,
                           Windows-only)
+  --with-freetype-license if bundling freetype, also bundle this license file
   --with-alsa             specify prefix directory for the alsa package
                           (expecting the libraries under PATH/lib and the
                           headers under PATH/include)
@@ -5186,7 +5189,7 @@
 #CUSTOM_AUTOCONF_INCLUDE
 
 # Do not change or remove the following line, it is needed for consistency checks:
-DATE_WHEN_GENERATED=1494858828
+DATE_WHEN_GENERATED=1496926402
 
 ###############################################################################
 #
@@ -57906,6 +57909,12 @@
 fi
 
 
+# Check whether --with-freetype-license was given.
+if test "${with_freetype_license+set}" = set; then :
+  withval=$with_freetype_license;
+fi
+
+
   # Need to specify explicitly since it needs to be overridden on some versions of macosx
   FREETYPE_BASE_NAME=freetype
   FREETYPE_CFLAGS=
@@ -63852,6 +63861,153 @@
 
   fi # end freetype needed
 
+  FREETYPE_LICENSE=""
+  if test "x$with_freetype_license" = "xyes"; then
+    as_fn_error $? "--with-freetype-license must have a value" "$LINENO" 5
+  elif test "x$with_freetype_license" != "x"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for freetype license" >&5
+$as_echo_n "checking for freetype license... " >&6; }
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_freetype_license" >&5
+$as_echo "$with_freetype_license" >&6; }
+    FREETYPE_LICENSE="$with_freetype_license"
+
+  # Only process if variable expands to non-empty
+
+  if test "x$FREETYPE_LICENSE" != x; then
+    if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
+
+  # Input might be given as Windows format, start by converting to
+  # unix format.
+  path="$FREETYPE_LICENSE"
+  new_path=`$CYGPATH -u "$path"`
+
+  # Cygwin tries to hide some aspects of the Windows file system, such that binaries are
+  # named .exe but called without that suffix. Therefore, "foo" and "foo.exe" are considered
+  # the same file, most of the time (as in "test -f"). But not when running cygpath -s, then
+  # "foo.exe" is OK but "foo" is an error.
+  #
+  # This test is therefore slightly more accurate than "test -f" to check for file precense.
+  # It is also a way to make sure we got the proper file name for the real test later on.
+  test_shortpath=`$CYGPATH -s -m "$new_path" 2> /dev/null`
+  if test "x$test_shortpath" = x; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: The path of FREETYPE_LICENSE, which resolves as \"$path\", is invalid." >&5
+$as_echo "$as_me: The path of FREETYPE_LICENSE, which resolves as \"$path\", is invalid." >&6;}
+    as_fn_error $? "Cannot locate the the path of FREETYPE_LICENSE" "$LINENO" 5
+  fi
+
+  # Call helper function which possibly converts this using DOS-style short mode.
+  # If so, the updated path is stored in $new_path.
+
+  input_path="$new_path"
+  # Check if we need to convert this using DOS-style short mode. If the path
+  # contains just simple characters, use it. Otherwise (spaces, weird characters),
+  # take no chances and rewrite it.
+  # Note: m4 eats our [], so we need to use [ and ] instead.
+  has_forbidden_chars=`$ECHO "$input_path" | $GREP [^-._/a-zA-Z0-9]`
+  if test "x$has_forbidden_chars" != x; then
+    # Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \)
+    shortmode_path=`$CYGPATH -s -m -a "$input_path"`
+    path_after_shortmode=`$CYGPATH -u "$shortmode_path"`
+    if test "x$path_after_shortmode" != "x$input_to_shortpath"; then
+      # Going to short mode and back again did indeed matter. Since short mode is
+      # case insensitive, let's make it lowercase to improve readability.
+      shortmode_path=`$ECHO "$shortmode_path" | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+      # Now convert it back to Unix-style (cygpath)
+      input_path=`$CYGPATH -u "$shortmode_path"`
+      new_path="$input_path"
+    fi
+  fi
+
+  test_cygdrive_prefix=`$ECHO $input_path | $GREP ^/cygdrive/`
+  if test "x$test_cygdrive_prefix" = x; then
+    # As a simple fix, exclude /usr/bin since it's not a real path.
+    if test "x`$ECHO $new_path | $GREP ^/usr/bin/`" = x; then
+      # The path is in a Cygwin special directory (e.g. /home). We need this converted to
+      # a path prefixed by /cygdrive for fixpath to work.
+      new_path="$CYGWIN_ROOT_PATH$input_path"
+    fi
+  fi
+
+
+  if test "x$path" != "x$new_path"; then
+    FREETYPE_LICENSE="$new_path"
+    { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting FREETYPE_LICENSE to \"$new_path\"" >&5
+$as_echo "$as_me: Rewriting FREETYPE_LICENSE to \"$new_path\"" >&6;}
+  fi
+
+    elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
+
+  path="$FREETYPE_LICENSE"
+  has_colon=`$ECHO $path | $GREP ^.:`
+  new_path="$path"
+  if test "x$has_colon" = x; then
+    # Not in mixed or Windows style, start by that.
+    new_path=`cmd //c echo $path`
+  fi
+
+
+  input_path="$new_path"
+  # Check if we need to convert this using DOS-style short mode. If the path
+  # contains just simple characters, use it. Otherwise (spaces, weird characters),
+  # take no chances and rewrite it.
+  # Note: m4 eats our [], so we need to use [ and ] instead.
+  has_forbidden_chars=`$ECHO "$input_path" | $GREP [^-_/:a-zA-Z0-9]`
+  if test "x$has_forbidden_chars" != x; then
+    # Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \)
+    new_path=`cmd /c "for %A in (\"$input_path\") do @echo %~sA"|$TR \\\\\\\\ / | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+  fi
+
+
+  windows_path="$new_path"
+  if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
+    unix_path=`$CYGPATH -u "$windows_path"`
+    new_path="$unix_path"
+  elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
+    unix_path=`$ECHO "$windows_path" | $SED -e 's,^\\(.\\):,/\\1,g' -e 's,\\\\,/,g'`
+    new_path="$unix_path"
+  fi
+
+  if test "x$path" != "x$new_path"; then
+    FREETYPE_LICENSE="$new_path"
+    { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting FREETYPE_LICENSE to \"$new_path\"" >&5
+$as_echo "$as_me: Rewriting FREETYPE_LICENSE to \"$new_path\"" >&6;}
+  fi
+
+  # Save the first 10 bytes of this path to the storage, so fixpath can work.
+  all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
+
+    else
+      # We're on a unix platform. Hooray! :)
+      path="$FREETYPE_LICENSE"
+      has_space=`$ECHO "$path" | $GREP " "`
+      if test "x$has_space" != x; then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: The path of FREETYPE_LICENSE, which resolves as \"$path\", is invalid." >&5
+$as_echo "$as_me: The path of FREETYPE_LICENSE, which resolves as \"$path\", is invalid." >&6;}
+        as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5
+      fi
+
+      # Use eval to expand a potential ~
+      eval path="$path"
+      if test ! -f "$path" && test ! -d "$path"; then
+        as_fn_error $? "The path of FREETYPE_LICENSE, which resolves as \"$path\", is not found." "$LINENO" 5
+      fi
+
+      if test -d "$path"; then
+        FREETYPE_LICENSE="`cd "$path"; $THEPWDCMD -L`"
+      else
+        dir="`$DIRNAME "$path"`"
+        base="`$BASENAME "$path"`"
+        FREETYPE_LICENSE="`cd "$dir"; $THEPWDCMD -L`/$base"
+      fi
+    fi
+  fi
+
+    if test ! -f "$FREETYPE_LICENSE"; then
+      as_fn_error $? "$FREETYPE_LICENSE cannot be found" "$LINENO" 5
+    fi
+  fi
+
+
 
 
 
--- a/common/autoconf/lib-freetype.m4	Tue Jun 27 14:29:54 2017 -0400
+++ b/common/autoconf/lib-freetype.m4	Tue Jun 27 14:34:00 2017 -0400
@@ -194,6 +194,8 @@
       [specify directory with freetype sources to automatically build the library (experimental, Windows-only)])])
   AC_ARG_ENABLE(freetype-bundling, [AS_HELP_STRING([--disable-freetype-bundling],
       [disable bundling of the freetype library with the build result @<:@enabled on Windows or when using --with-freetype, disabled otherwise@:>@])])
+  AC_ARG_WITH(freetype-license, [AS_HELP_STRING([--with-freetype-license],
+      [if bundling freetype, also bundle this license file])])
 
   # Need to specify explicitly since it needs to be overridden on some versions of macosx
   FREETYPE_BASE_NAME=freetype
@@ -443,7 +445,21 @@
 
   fi # end freetype needed
 
+  FREETYPE_LICENSE=""
+  if test "x$with_freetype_license" = "xyes"; then
+    AC_MSG_ERROR([--with-freetype-license must have a value])
+  elif test "x$with_freetype_license" != "x"; then
+    AC_MSG_CHECKING([for freetype license])
+    AC_MSG_RESULT([$with_freetype_license])
+    FREETYPE_LICENSE="$with_freetype_license"
+    BASIC_FIXUP_PATH(FREETYPE_LICENSE)
+    if test ! -f "$FREETYPE_LICENSE"; then
+      AC_MSG_ERROR([$FREETYPE_LICENSE cannot be found])
+    fi
+  fi
+
   AC_SUBST(FREETYPE_BUNDLE_LIB_PATH)
   AC_SUBST(FREETYPE_CFLAGS)
   AC_SUBST(FREETYPE_LIBS)
+  AC_SUBST(FREETYPE_LICENSE)
 ])
--- a/common/autoconf/spec.gmk.in	Tue Jun 27 14:29:54 2017 -0400
+++ b/common/autoconf/spec.gmk.in	Tue Jun 27 14:34:00 2017 -0400
@@ -312,6 +312,7 @@
 FREETYPE_LIBS:=@FREETYPE_LIBS@
 FREETYPE_CFLAGS:=@FREETYPE_CFLAGS@
 FREETYPE_BUNDLE_LIB_PATH=@FREETYPE_BUNDLE_LIB_PATH@
+FREETYPE_LICENSE=@FREETYPE_LICENSE@
 CUPS_CFLAGS:=@CUPS_CFLAGS@
 ALSA_LIBS:=@ALSA_LIBS@
 ALSA_CFLAGS:=@ALSA_CFLAGS@
--- a/common/conf/jib-profiles.js	Tue Jun 27 14:29:54 2017 -0400
+++ b/common/conf/jib-profiles.js	Tue Jun 27 14:34:00 2017 -0400
@@ -387,7 +387,7 @@
     // on such hardware.
     if (input.build_cpu == "sparcv9") {
        var cpu_brand = $EXEC("bash -c \"kstat -m cpu_info | grep brand | head -n1 | awk '{ print \$2 }'\"");
-       if (cpu_brand.trim().match('SPARC-.7')) {
+       if (cpu_brand.trim().match('SPARC-.[78]')) {
            boot_jdk_revision = "8u20";
            boot_jdk_subdirpart = "1.8.0_20";
        }
@@ -893,6 +893,16 @@
             }
         });
 
+    // The windows ri profile needs to add the freetype license file
+    profilesRiFreetype = {
+        "windows-x86-ri": {
+            configure_args: "--with-freetype-license="
+                + input.get("freetype", "install_path")
+                + "/freetype-2.7.1-v120-x86/freetype.md"
+        }
+    };
+    profiles = concatObjects(profiles, profilesRiFreetype);
+
     // Generate the missing platform attributes
     profiles = generatePlatformAttributes(profiles);
     profiles = generateDefaultMakeTargetsConfigureArg(common, profiles);
--- a/corba/.hgtags	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/.hgtags	Tue Jun 27 14:34:00 2017 -0400
@@ -426,3 +426,7 @@
 c62e5964cfcf144d8f72e9ba69757897785349a9 jdk-9+171
 080c37fd77e2c4629b91059298e37758afbdbc46 jdk-10+10
 95ed14547ca9246baed34f90ef3ca13217538a8c jdk-9+172
+8ef8a0f1c4dfea17e10125e1f885920538e63085 jdk-10+11
+534ba4f8cfcf12accc5b9adb943103f2ff79fe16 jdk-9+173
+3615768c12904e29bb2ec1b506cd4633cd8a9ced jdk-9+174
+00ae6307d78bac49883ddc85d687aa88c49f3971 jdk-10+12
--- a/corba/src/java.corba/share/classes/javax/rmi/PortableRemoteObject.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/javax/rmi/PortableRemoteObject.java	Tue Jun 27 14:34:00 2017 -0400
@@ -62,6 +62,8 @@
  * attempts to narrow it to conform to
  * the given interface. If the operation is successful the result will be an
  * object of the specified type, otherwise an exception will be thrown.
+ *
+ * <p>See also {@extLink rmi_iiop_guides RMI-IIOP developer's guides}.</p>
  */
 public class PortableRemoteObject {
 
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/ACTIVITY_COMPLETED.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/ACTIVITY_COMPLETED.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -33,8 +33,8 @@
  * the Activity, or that the Activity completed in a manner other than that
  * originally requested.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- *      Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  * @since   J2SE 1.5
  */
 
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/ACTIVITY_REQUIRED.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/ACTIVITY_REQUIRED.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -31,8 +31,8 @@
  * Activity context was necessary to perform the invoked operation, but one
  * was not found associated with the calling thread.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- *      Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  * @since   J2SE 1.5
  */
 
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/BAD_CONTEXT.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/BAD_CONTEXT.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -32,8 +32,8 @@
  * what caused the exception, and a completion status. It may also contain
  * a string describing the exception.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- * Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  * @since    JDK1.2
  */
 
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/BAD_INV_ORDER.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/BAD_INV_ORDER.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -34,8 +34,8 @@
  * what caused the exception, and a completion status. It may also contain
  * a string describing the exception.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- * Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  * @since       JDK1.2
  */
 
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/BAD_OPERATION.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/BAD_OPERATION.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -32,8 +32,8 @@
  * what caused the exception, and a completion status. It may also contain
  * a string describing the exception.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- * Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  * @since       JDK1.2
  */
 
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/BAD_PARAM.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/BAD_PARAM.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -37,10 +37,9 @@
  * what caused the exception, and a completion status. It may also contain
  * a string describing the exception.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- * Java&nbsp;IDL exceptions</A>
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html#minorcodemeanings">meaning of
- * minor codes</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions},
+ * {@extLink jidlexception_minorcodes meaning of minor codes}
+ * </p>
  * @since       JDK1.2
  */
 
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/BAD_QOS.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/BAD_QOS.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -30,8 +30,8 @@
  * support the quality of service required by an invocation parameter that
  * has a quality of service semantics associated with it.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- *      Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  * @since   J2SE 1.5
  */
 
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/BAD_TYPECODE.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/BAD_TYPECODE.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -32,8 +32,8 @@
  * what caused the exception, and a completion status. It may also contain
  * a string describing the exception.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- * Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  * @since       JDK1.2
  */
 
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/Bounds.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/Bounds.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -30,8 +30,8 @@
  * the legal bounds for the object that a method is trying
  * to access.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- * Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  */
 
 public final class Bounds extends org.omg.CORBA.UserException {
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/CODESET_INCOMPATIBLE.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/CODESET_INCOMPATIBLE.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -29,8 +29,8 @@
  * This exception is raised whenever meaningful communication is not possible
  * between client and server native code sets.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- *      Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  * @since   J2SE 1.5
  */
 
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/COMM_FAILURE.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/COMM_FAILURE.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -33,11 +33,11 @@
  * what caused the exception, and a completion status. It may also contain
  * a string describing the exception.
  * <P>
- * See the section <A href="../../../../technotes/guides/idl/jidlExceptions.html#minorcodemeanings">meaning
- * of minor codes</A> to see the minor codes for this exception.
+ * See the section {@extLink jidlexception_minorcodes Minor Code Meanings}
+ * to see the minor codes for this exception.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html#minorcodemeanings">meaning of
- * minor codes</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  * @since       JDK1.2
  */
 
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/DATA_CONVERSION.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/DATA_CONVERSION.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -35,11 +35,11 @@
  * what caused the exception, and a completion status. It may also contain
  * a string describing the exception.
  * <P>
- * See the section <A href="../../../../technotes/guides/idl/jidlExceptions.html#minorcodemeanings">meaning
- * of minor codes</A> to see the minor codes for this exception.
+ * See the section {@extLink jidlexception_minorcodes Minor Code Meanings}
+ * to see the minor codes for this exception.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- * Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  * @since       JDK1.2
  */
 
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/FREE_MEM.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/FREE_MEM.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -33,8 +33,8 @@
  * what caused the exception, and a completion status. It may also contain
  * a string describing the exception.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- * Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  * @since       JDK1.2
  */
 
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/IMP_LIMIT.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/IMP_LIMIT.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -36,8 +36,8 @@
  * what caused the exception, and a completion status. It may also contain
  * a string describing the exception.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- * Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  * @since       JDK1.2
  */
 
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/INITIALIZE.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/INITIALIZE.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -34,8 +34,8 @@
  * what caused the exception, and a completion status. It may also contain
  * a string describing the exception.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- * Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  * @since       JDK1.2
  */
 
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/INTERNAL.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/INTERNAL.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -33,11 +33,11 @@
  * what caused the exception, and a completion status. It may also contain
  * a string describing the exception.
  * <P>
- * See the section <A href="../../../../technotes/guides/idl/jidlExceptions.html#minorcodemeanings">meaning
- * of minor codes</A> to see the minor codes for this exception.
+ * See the section {@extLink jidlexception_minorcodes meaning of minor codes}
+ * to see the minor codes for this exception.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- * Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  * @since       JDK1.2
  */
 
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/INTF_REPOS.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/INTF_REPOS.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -34,8 +34,8 @@
  * what caused the exception, and a completion status. It may also contain
  * a string describing the exception.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- * Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  * @since       JDK1.2
  */
 
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/INVALID_ACTIVITY.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/INVALID_ACTIVITY.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -32,8 +32,8 @@
  * suspended. It is also raised when an attempted invocation is made that
  * is incompatible with the Activity's current state.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- *      Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  * @since   J2SE 1.5
  */
 
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/INVALID_TRANSACTION.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/INVALID_TRANSACTION.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -34,8 +34,8 @@
  * what caused the exception, and a completion status. It may also contain
  * a string describing the exception.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- * Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  * @since   JDK1.2
  *
  */
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/INV_FLAG.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/INV_FLAG.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -33,8 +33,8 @@
  * what caused the exception, and a completion status. It may also contain
  * a string describing the exception.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- * Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  * @since       JDK1.2
  */
 
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/INV_IDENT.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/INV_IDENT.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -34,8 +34,8 @@
  * what caused the exception, and a completion status. It may also contain
  * a string describing the exception.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- * Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  * @since       JDK1.2
  */
 
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/INV_OBJREF.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/INV_OBJREF.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -37,11 +37,11 @@
  * what caused the exception, and a completion status. It may also contain
  * a string describing the exception.
  * <P>
- * See the section <A href="../../../../technotes/guides/idl/jidlExceptions.html#minorcodemeanings">Minor
- * Code Meanings</A> to see the minor codes for this exception.
+ * See the section {@extLink jidlexception_minorcodes Minor Code Meanings}
+ * to see the minor codes for this exception.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- * Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  * @since       JDK1.2
  */
 
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/INV_POLICY.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/INV_POLICY.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -33,8 +33,8 @@
  * what caused the exception, and a completion status. It may also contain
  * a string describing the exception.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- * Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  */
 
 public final class INV_POLICY extends SystemException {
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/MARSHAL.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/MARSHAL.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -39,8 +39,8 @@
  * what caused the exception, and a completion status. It may also contain
  * a string describing the exception.
  * <P>
- * See the section <A href="../../../../technotes/guides/idl/jidlExceptions.html#minorcodemeanings">Minor
- * Code Meanings</A> to see the minor codes for this exception.
+ * See the section {@extLink jidlexception_minorcodes Minor Code Meanings}
+ * to see the minor codes for this exception.
  *
  * @since       JDK1.2
  */
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/NO_IMPLEMENT.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/NO_IMPLEMENT.java	Tue Jun 27 14:34:00 2017 -0400
@@ -36,8 +36,8 @@
  * what caused the exception, and a completion status. It may also contain
  * a string describing the exception.
  * <P>
- * See the section <A href="../../../../technotes/guides/idl/jidlExceptions.html#minorcodemeanings">Minor
- * Code Meanings</A> to see the minor codes for this exception.
+ * See the section {extLink jidlexception_minorcodes Minor Code Meanings}
+ * to see the minor codes for this exception.
  *
  * @since       JDK1.2
  */
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/NO_MEMORY.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/NO_MEMORY.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -32,8 +32,8 @@
  * what caused the exception, and a completion status. It may also contain
  * a string describing the exception.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- * Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  * @since       JDK1.2
  */
 
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/NO_PERMISSION.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/NO_PERMISSION.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -32,8 +32,8 @@
  * what caused the exception, and a completion status. It may also contain
  * a string describing the exception.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- * Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  * @since       JDK1.2
  */
 
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/NO_RESOURCES.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/NO_RESOURCES.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -33,8 +33,8 @@
  * what caused the exception, and a completion status. It may also contain
  * a string describing the exception.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- * Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  * @since       JDK1.2
  */
 
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/NO_RESPONSE.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/NO_RESPONSE.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -33,8 +33,8 @@
  * what caused the exception, and a completion status. It may also contain
  * a string describing the exception.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- * Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  * @since       JDK1.2
  */
 
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/OBJECT_NOT_EXIST.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/OBJECT_NOT_EXIST.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -39,11 +39,11 @@
  * what caused the exception, and a completion status. It may also contain
  * a string describing the exception.
  * <P>
- * See the section <A href="../../../../technotes/guides/idl/jidlExceptions.html#minorcodemeanings">Minor
- * Code Meanings</A> to see the minor codes for this exception.
+ * See the section {@extLink jidlexception_minorcodes Minor Code Meanings}
+ * to see the minor codes for this exception.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- * Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  * @since       JDK1.2
  */
 
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/OBJ_ADAPTER.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/OBJ_ADAPTER.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -34,11 +34,11 @@
  * what caused the exception, and a completion status. It may also contain
  * a string describing the exception.
  * <P>
- * See the section <A href="../../../../technotes/guides/idl/jidlExceptions.html#minorcodemeanings">Minor
- * Code Meanings</A> to see the minor codes for this exception.
+ * See the section {@extLink jidlexception_minorcodes Minor Code Meanings}
+ * to see the minor codes for this exception.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- * Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  * @since       JDK1.2
  */
 
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/ORB.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/ORB.java	Tue Jun 27 14:34:00 2017 -0400
@@ -184,6 +184,8 @@
  * Therefore, the implementation first checks the ${java.home}/conf directory for orb.properties,
  * and thereafter the ${java.home}/lib directory.
  *
+ * <p>See also {@extLink idl_guides IDL developer's guide}.</p>
+ *
  * @since   JDK1.2
  */
 abstract public class ORB {
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/PERSIST_STORE.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/PERSIST_STORE.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -33,8 +33,8 @@
  * what caused the exception, and a completion status. It may also contain
  * a string describing the exception.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- * Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  */
 
 public final class PERSIST_STORE extends SystemException {
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/REBIND.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/REBIND.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -33,8 +33,8 @@
  * This exception is also raised if the current effective RebindPolicy has
  * a value of NO_RECONNECT and a connection must be reopened.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- *      Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  * @since   J2SE 1.5
  */
 
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/SystemException.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/SystemException.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -44,8 +44,8 @@
  * declared in signatures of the Java methods mapped from operations in
  * IDL interfaces.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- * Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  */
 
 public abstract class SystemException extends java.lang.RuntimeException {
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/TIMEOUT.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/TIMEOUT.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -30,8 +30,8 @@
  * specified time-to-live period has been exceeded. It is a standard system
  * exception because time-to-live QoS can be applied to any invocation.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- *      Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  * @since   J2SE 1.5
  */
 
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/TRANSACTION_MODE.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/TRANSACTION_MODE.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -35,8 +35,8 @@
  * a string describing the exception.
  * The OMG CORBA core 2.4 specification has details.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- * Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  */
 
 public final class TRANSACTION_MODE extends SystemException {
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/TRANSACTION_REQUIRED.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/TRANSACTION_REQUIRED.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -33,8 +33,8 @@
  * a string describing the exception.
  * The OMG Transaction Service specfication has details.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- * Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  */
 
 public final class TRANSACTION_REQUIRED extends SystemException {
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/TRANSACTION_ROLLEDBACK.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/TRANSACTION_ROLLEDBACK.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -36,8 +36,8 @@
  * what caused the exception, and a completion status. It may also contain
  * a string describing the exception.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- * Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  */
 
 public final class TRANSACTION_ROLLEDBACK extends SystemException {
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/TRANSACTION_UNAVAILABLE.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/TRANSACTION_UNAVAILABLE.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -35,8 +35,8 @@
  * a string describing the exception.
  * The OMG CORBA core 2.4 specification has details.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- * Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  */
 
 public final class TRANSACTION_UNAVAILABLE extends SystemException {
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/TRANSIENT.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/TRANSIENT.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -36,8 +36,8 @@
  * what caused the exception, and a completion status. It may also contain
  * a string describing the exception.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- * Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  */
 
 public final class TRANSIENT extends SystemException {
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/UNKNOWN.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/UNKNOWN.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -39,11 +39,11 @@
  * what caused the exception, and a completion status. It may also contain
  * a string describing the exception.
  * <P>
- * See the section <A href="../../../../technotes/guides/idl/jidlExceptions.html#minorcodemeanings">Minor
- * Code Meanings</A> to see the minor codes for this exception.
+ * See the section {@extLink jidlexception_minorcodes Minor Code Meaning}
+ * to see the minor codes for this exception.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- * Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  */
 
 public final class UNKNOWN extends SystemException {
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/UnknownUserException.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/UnknownUserException.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -32,8 +32,8 @@
  * <code>UnknownUserException</code> object. This is available from the
  * <code>Environment</code> object returned by the method <code>Request.env</code>.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- * Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  * @see Request
  */
 
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/UserException.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/UserException.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -31,8 +31,8 @@
  * means that they need to
  * be declared in method signatures.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- * Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  */
 public abstract class UserException extends java.lang.Exception implements org.omg.CORBA.portable.IDLEntity {
 
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/WrongTransaction.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/WrongTransaction.java	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -34,8 +34,8 @@
  * which the client originally sent the request.
  * See the OMG Transaction Service Specification for details.
  *
- * @see <A href="../../../../technotes/guides/idl/jidlExceptions.html">documentation on
- * Java&nbsp;IDL exceptions</A>
+ * <p>See also {@extLink jidlexception documentation on Java&nbsp;IDL exceptions}.
+ * </p>
  */
 
 public final class WrongTransaction extends UserException {
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/doc-files/generatedfiles.html	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/doc-files/generatedfiles.html	Tue Jun 27 14:34:00 2017 -0400
@@ -42,7 +42,7 @@
 </UL>
 
 
-<H2><a name="helper">Helper Files</a></H2>
+<H2><a id="helper">Helper Files</a></H2>
 
 <P>Helper files supply several static methods needed to manipulate the type.
 These include <code>Any</code> insert and extract operations for the type,
@@ -57,7 +57,7 @@
 is raised to indicate other kinds of errors. Trying to narrow
 a null will always succeed with a return value of null.
 
-<H2><a name="holder">Holder Files</a></H2>
+<H2><a id="holder">Holder Files</a></H2>
 
 <P>Support for out and inout parameter passing modes requires the use of additional holder classes.
 These classes are available for all of the basic IDL datatypes in the <code>org.omg.CORBA</code> package
@@ -74,7 +74,7 @@
 the <code>org.omg.CORBA.portable.Streamable</code> interface.
 
 
-<H2><a name="operations">Operations Files</a></H2>
+<H2><a id="operations">Operations Files</a></H2>
 
 <P>A non abstract IDL interface is mapped to two public Java interfaces:
 a <em>signature</em> interface and an <em>operations</em> interface.
@@ -96,7 +96,7 @@
 interface and operations interface hierarchies.
 
 
-<H2><a name="stub">Stubs</a></H2>
+<H2><a id="stub">Stubs</a></H2>
 
 <P>For the mapping of a non-object-oriented language, there will be
 a programming interface to the stubs for each interface type. Generally, the stubs
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/package.html	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CORBA/package.html	Tue Jun 27 14:34:00 2017 -0400
@@ -147,9 +147,7 @@
 <code><b>register_initial_reference</b>(String id, org.omg.CORBA.Object obj)</code>
 </UL>
 
-<P>An example that uses some of these methods is <A
-HREF="{@docRoot}/../technotes/guides/idl/GShome.html">
-<em>Getting Started with Java IDL</em></A>.
+<P>An example that uses some of these methods is {@extLink idl_getting_started Getting Started with Java IDL}.
 
 <H2>
 Exceptions</H2>
@@ -158,9 +156,8 @@
 then any code using that method must have a <code>try</code>/<code>catch</code>
 block and handle that exception when it is thrown.
 
-<P>The documentation on <A 
-HREF="{@docRoot}/../technotes/guides/idl/jidlExceptions.html"><em>Java
-IDL exceptions</em></A> has more information and explains the difference between
+<P>The documentation on {@extLink jidlexception Java&nbsp;IDL exceptions }
+has more information and explains the difference between
 system exceptions and user-defined exceptions.
 
 <P>The following is a list of the system exceptions (which are unchecked
@@ -447,8 +444,8 @@
 will take an object in the Java programming language.  The helper class for a
 non-abstract interface that has at least one abstract base interface will provide
 both versions of the <code>narrow</code> method.
-<P>The <A HREF="{@docRoot}/../technotes/guides/idl/jidlExample.html"><em>Hello World</em></A>
-tutorial uses a <code>narrow</code> method that looks like this:
+<P>The {@extLink idl_guides Hello World tutorial}
+uses a <code>narrow</code> method that looks like this:
 <PRE>
         // create and initialize the ORB
         ORB orb = ORB.init(args, null);
@@ -548,6 +545,7 @@
 }
 </PRE>
 
+<a id="value"></a>
 <h3>Value Type Helper Classes</h3>
 A helper class for a value type includes different renderings of
 the same methods generated for non-value type methods. The main difference
@@ -861,8 +859,8 @@
 Related Documentation</H1>
 For overviews, guides, and a tutorial, please see:
 <UL>
-<LI>
-<A HREF="{@docRoot}/../technotes/guides/idl/index.html">Java IDL home page</A>
+<LI> {@extLink idl_guides Java&nbsp;IDL tutorial page}.</LI>
+<LI> {@extLink rmi_iiop_guides RMI-IIOP developer's guide}.</LI>
 </UL>
 
 
--- a/corba/src/java.corba/share/classes/org/omg/CosNaming/package.html	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/CosNaming/package.html	Tue Jun 27 14:34:00 2017 -0400
@@ -3,7 +3,7 @@
 <head>
 <!--
 /*
-* Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
+* Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
@@ -334,14 +334,12 @@
 For an overview and examples of how to use the
 <code>CosNaming</code> API, please see:
 <ul>
-  <li><a href="../../../../technotes/guides/idl/tnameserv.html">
-    Naming Service</a>
+  <li>{@extLink tnameserv NamingService}
 </ul>
 <p>
 For an overview of Java&nbsp;IDL, please see:
 <ul>
-  <li><a href="../../../../technotes/guides/idl/index.html">
-    Java&nbsp;IDL home page</a>
+  <li>{@extLink idl_guides  Java&nbsp;IDL developer's home page}
 </ul>
 
 @since JDK1.3
--- a/corba/src/java.corba/share/classes/org/omg/PortableServer/package.html	Tue Jun 27 14:29:54 2017 -0400
+++ b/corba/src/java.corba/share/classes/org/omg/PortableServer/package.html	Tue Jun 27 14:34:00 2017 -0400
@@ -157,7 +157,7 @@
 <H2>Related Documentation</H2>
 
 <P>For an overview of Java IDL, please see:
-<A HREF="../../../../technotes/guides/idl/index.html">Java IDL home page</A>.
+{@extLink idl_guides Java&nbsp;IDL home page}.
 
 <H2>Example Code</H2>
 <a id="sampleserver"></a>
--- a/hotspot/.hgtags	Tue Jun 27 14:29:54 2017 -0400
+++ b/hotspot/.hgtags	Tue Jun 27 14:34:00 2017 -0400
@@ -586,3 +586,7 @@
 d53171650a2cc6c6f699c966c533b914ca9c0602 jdk-9+171
 c6cd3ec8d46b034e57c86399380ffcf7f25706e4 jdk-10+10
 1ae9e84f68b359420d2d153ecfe5ee2903e33a2e jdk-9+172
+7f14e550f1e8abea41c223e5fdad2261e99ba929 jdk-10+11
+e64b1cb48d6e7703928a9d1da106fc27f8cb65fd jdk-9+173
+944791f8160185bffa13fbb821fc09b6198f1f25 jdk-9+174
+070aa7a2eb14c4645f7eb31384cba0a2ba72a4b5 jdk-10+12
--- a/hotspot/make/CompileTools.gmk	Tue Jun 27 14:29:54 2017 -0400
+++ b/hotspot/make/CompileTools.gmk	Tue Jun 27 14:34:00 2017 -0400
@@ -47,7 +47,7 @@
   $(eval $(call SetupJavaCompilation, BUILD_VM_COMPILER_MATCH_PROCESSOR, \
       SETUP := GENERATE_OLDBYTECODE, \
       SRC := \
-          $(SRC_DIR)/org.graalvm.api.word/src \
+          $(SRC_DIR)/org.graalvm.word/src \
           $(SRC_DIR)/org.graalvm.compiler.core/src \
           $(SRC_DIR)/org.graalvm.compiler.core.common/src \
           $(SRC_DIR)/org.graalvm.compiler.core.match.processor/src \
@@ -115,7 +115,7 @@
   $(eval $(call SetupJavaCompilation, BUILD_VM_COMPILER_REPLACEMENTS_VERIFIER, \
       SETUP := GENERATE_OLDBYTECODE, \
       SRC := \
-          $(SRC_DIR)/org.graalvm.api.word/src \
+          $(SRC_DIR)/org.graalvm.word/src \
           $(SRC_DIR)/org.graalvm.compiler.replacements.verifier/src \
           $(SRC_DIR)/org.graalvm.compiler.api.replacements/src \
           $(SRC_DIR)/org.graalvm.compiler.code/src \
--- a/hotspot/make/lib/CompileDtracePostJvm.gmk	Tue Jun 27 14:29:54 2017 -0400
+++ b/hotspot/make/lib/CompileDtracePostJvm.gmk	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -52,7 +52,7 @@
         CXX := $(BUILD_CXX), \
         LDEXE := $(BUILD_CXX), \
         generateJvmOffsets.cpp_CXXFLAGS := $(JVM_CFLAGS) -mt -xnolib -norunpath, \
-        generateJvmOffsetsMain.c_CFLAGS := -library=%none -mt -m64 -norunpath -z nodefs, \
+        generateJvmOffsetsMain.c_CFLAGS := -mt -m64 -norunpath -z nodefs, \
         LDFLAGS := -m64, \
         LIBS := -lc, \
         OBJECT_DIR := $(JVM_VARIANT_OUTPUTDIR)/tools/dtrace-gen-offsets/objs, \
--- a/hotspot/make/lib/CompileJvm.gmk	Tue Jun 27 14:29:54 2017 -0400
+++ b/hotspot/make/lib/CompileJvm.gmk	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -69,6 +69,7 @@
     -DTARGET_ARCH_$(HOTSPOT_TARGET_CPU_ARCH) \
     -DINCLUDE_SUFFIX_OS=_$(HOTSPOT_TARGET_OS) \
     -DINCLUDE_SUFFIX_CPU=_$(HOTSPOT_TARGET_CPU_ARCH) \
+    -DINCLUDE_SUFFIX_COMPILER=_$(HOTSPOT_TOOLCHAIN_TYPE) \
     -DTARGET_COMPILER_$(HOTSPOT_TOOLCHAIN_TYPE) \
     -D$(HOTSPOT_TARGET_CPU_DEFINE) \
     -DHOTSPOT_LIB_ARCH='"$(OPENJDK_TARGET_CPU_LEGACY_LIB)"' \
--- a/hotspot/src/cpu/aarch64/vm/aarch64.ad	Tue Jun 27 14:29:54 2017 -0400
+++ b/hotspot/src/cpu/aarch64/vm/aarch64.ad	Tue Jun 27 14:34:00 2017 -0400
@@ -5423,6 +5423,16 @@
   interface(CONST_INTER);
 %}
 
+operand immI_63()
+%{
+  predicate(n->get_int() == 63);
+  match(ConI);
+
+  op_cost(0);
+  format %{ %}
+  interface(CONST_INTER);
+%}
+
 operand immI_64()
 %{
   predicate(n->get_int() == 64);
@@ -5453,20 +5463,10 @@
   interface(CONST_INTER);
 %}
 
-operand immL_63()
-%{
-  predicate(n->get_int() == 63);
-  match(ConI);
-
-  op_cost(0);
-  format %{ %}
-  interface(CONST_INTER);
-%}
-
 operand immL_255()
 %{
-  predicate(n->get_int() == 255);
-  match(ConI);
+  predicate(n->get_long() == 255L);
+  match(ConL);
 
   op_cost(0);
   format %{ %}
@@ -11146,7 +11146,7 @@
   ins_pipe(ldiv_reg_reg);
 %}
 
-instruct signExtractL(iRegLNoSp dst, iRegL src1, immL_63 div1, immL_63 div2) %{
+instruct signExtractL(iRegLNoSp dst, iRegL src1, immI_63 div1, immI_63 div2) %{
   match(Set dst (URShiftL (RShiftL src1 div1) div2));
   ins_cost(INSN_COST);
   format %{ "lsr $dst, $src1, $div1" %}
@@ -11156,7 +11156,7 @@
   ins_pipe(ialu_reg_shift);
 %}
 
-instruct div2RoundL(iRegLNoSp dst, iRegL src, immL_63 div1, immL_63 div2) %{
+instruct div2RoundL(iRegLNoSp dst, iRegL src, immI_63 div1, immI_63 div2) %{
   match(Set dst (AddL src (URShiftL (RShiftL src div1) div2)));
   ins_cost(INSN_COST);
   format %{ "add $dst, $src, $div1" %}
--- a/hotspot/src/cpu/aarch64/vm/abstractInterpreter_aarch64.cpp	Tue Jun 27 14:29:54 2017 -0400
+++ b/hotspot/src/cpu/aarch64/vm/abstractInterpreter_aarch64.cpp	Tue Jun 27 14:34:00 2017 -0400
@@ -109,9 +109,15 @@
   // for the callee's params we only need to account for the extra
   // locals.
   int size = overhead +
-         (callee_locals - callee_params)*Interpreter::stackElementWords +
+         (callee_locals - callee_params) +
          monitors * frame::interpreter_frame_monitor_size() +
-         temps* Interpreter::stackElementWords + extra_args;
+         // On the top frame, at all times SP <= ESP, and SP is
+         // 16-aligned.  We ensure this by adjusting SP on method
+         // entry and re-entry to allow room for the maximum size of
+         // the expression stack.  When we call another method we bump
+         // SP so that no stack space is wasted.  So, only on the top
+         // frame do we need to allow max_stack words.
+         (is_top_frame ? max_stack : temps + extra_args);
 
   // On AArch64 we always keep the stack pointer 16-aligned, so we
   // must round up here.
--- a/hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp	Tue Jun 27 14:29:54 2017 -0400
+++ b/hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp	Tue Jun 27 14:34:00 2017 -0400
@@ -2740,8 +2740,7 @@
         // set already but no need to check.
         __ cbz(rscratch1, next);
 
-        __ andr(rscratch1, tmp, TypeEntries::type_unknown);
-        __ cbnz(rscratch1, next); // already unknown. Nothing to do anymore.
+        __ tbnz(tmp, exact_log2(TypeEntries::type_unknown), next); // already unknown. Nothing to do anymore.
 
         if (TypeEntries::is_type_none(current_klass)) {
           __ cbz(rscratch2, none);
@@ -2761,8 +2760,7 @@
                ciTypeEntries::valid_ciklass(current_klass) != exact_klass, "conflict only");
 
         __ ldr(tmp, mdo_addr);
-        __ andr(rscratch1, tmp, TypeEntries::type_unknown);
-        __ cbnz(rscratch1, next); // already unknown. Nothing to do anymore.
+        __ tbnz(tmp, exact_log2(TypeEntries::type_unknown), next); // already unknown. Nothing to do anymore.
       }
 
       // different than before. Cannot keep accurate profile.
@@ -2812,8 +2810,7 @@
                ciTypeEntries::valid_ciklass(current_klass) != exact_klass, "inconsistent");
 
         __ ldr(tmp, mdo_addr);
-        __ andr(rscratch1, tmp, TypeEntries::type_unknown);
-        __ cbnz(rscratch1, next); // already unknown. Nothing to do anymore.
+        __ tbnz(tmp, exact_log2(TypeEntries::type_unknown), next); // already unknown. Nothing to do anymore.
 
         __ orr(tmp, tmp, TypeEntries::type_unknown);
         __ str(tmp, mdo_addr);
--- a/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.cpp	Tue Jun 27 14:29:54 2017 -0400
+++ b/hotspot/src/cpu/aarch64/vm/interp_masm_aarch64.cpp	Tue Jun 27 14:34:00 2017 -0400
@@ -1754,8 +1754,7 @@
     // Load the offset of the area within the MDO used for
     // parameters. If it's negative we're not profiling any parameters
     ldr(tmp1, Address(mdp, in_bytes(MethodData::parameters_type_data_di_offset()) - in_bytes(MethodData::data_offset())));
-    cmp(tmp1, 0u);
-    br(Assembler::LT, profile_continue);
+    tbnz(tmp1, 63, profile_continue);  // i.e. sign bit set
 
     // Compute a pointer to the area for parameters from the offset
     // and move the pointer to the slot for the last
--- a/hotspot/src/cpu/aarch64/vm/jniFastGetField_aarch64.cpp	Tue Jun 27 14:29:54 2017 -0400
+++ b/hotspot/src/cpu/aarch64/vm/jniFastGetField_aarch64.cpp	Tue Jun 27 14:34:00 2017 -0400
@@ -76,8 +76,7 @@
           SafepointSynchronize::safepoint_counter_addr(), offset);
   Address safepoint_counter_addr(rcounter_addr, offset);
   __ ldrw(rcounter, safepoint_counter_addr);
-  __ andw(rscratch1, rcounter, 1);
-  __ cbnzw(rscratch1, slow);
+  __ tbnz(rcounter, 0, slow);
   __ eor(robj, c_rarg1, rcounter);
   __ eor(robj, robj, rcounter);               // obj, since
                                               // robj ^ rcounter ^ rcounter == robj
--- a/hotspot/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp	Tue Jun 27 14:29:54 2017 -0400
+++ b/hotspot/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, 2015, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -38,6 +38,7 @@
 #include "opto/compile.hpp"
 #include "opto/intrinsicnode.hpp"
 #include "opto/node.hpp"
+#include "prims/jvm.h"
 #include "runtime/biasedLocking.hpp"
 #include "runtime/icache.hpp"
 #include "runtime/interfaceSupport.hpp"
@@ -2011,6 +2012,12 @@
   hlt(0);
 }
 
+void MacroAssembler::unimplemented(const char* what) {
+  char* b = new char[1024];
+  jio_snprintf(b, 1024, "unimplemented: %s", what);
+  stop(b);
+}
+
 // If a constant does not fit in an immediate field, generate some
 // number of MOV instructions and then perform the operation.
 void MacroAssembler::wrap_add_sub_imm_insn(Register Rd, Register Rn, unsigned imm,
--- a/hotspot/src/cpu/aarch64/vm/macroAssembler_aarch64.hpp	Tue Jun 27 14:29:54 2017 -0400
+++ b/hotspot/src/cpu/aarch64/vm/macroAssembler_aarch64.hpp	Tue Jun 27 14:34:00 2017 -0400
@@ -941,7 +941,7 @@
 
   void untested()                                { stop("untested"); }
 
-  void unimplemented(const char* what = "")      { char* b = new char[1024];  jio_snprintf(b, 1024, "unimplemented: %s", what);  stop(b); }
+  void unimplemented(const char* what = "");
 
   void should_not_reach_here()                   { stop("should not reach here"); }
 
--- a/hotspot/src/cpu/aarch64/vm/templateTable_aarch64.cpp	Tue Jun 27 14:29:54 2017 -0400
+++ b/hotspot/src/cpu/aarch64/vm/templateTable_aarch64.cpp	Tue Jun 27 14:34:00 2017 -0400
@@ -246,8 +246,7 @@
       assert(load_bc_into_bc_reg, "we use bc_reg as temp");
       __ get_cache_and_index_and_bytecode_at_bcp(temp_reg, bc_reg, temp_reg, byte_no, 1);
       __ movw(bc_reg, bc);
-      __ cmpw(temp_reg, (unsigned) 0);
-      __ br(Assembler::EQ, L_patch_done);  // don't patch
+      __ cbzw(temp_reg, L_patch_done);  // don't patch
     }
     break;
   default:
--- a/hotspot/src/cpu/aarch64/vm/vtableStubs_aarch64.cpp	Tue Jun 27 14:29:54 2017 -0400
+++ b/hotspot/src/cpu/aarch64/vm/vtableStubs_aarch64.cpp	Tue Jun 27 14:34:00 2017 -0400
@@ -51,6 +51,11 @@
 VtableStub* VtableStubs::create_vtable_stub(int vtable_index) {
   const int aarch64_code_length = VtableStub::pd_code_size_limit(true);
   VtableStub* s = new(aarch64_code_length) VtableStub(true, vtable_index);
+  // Can be NULL if there is no free space in the code cache.
+  if (s == NULL) {
+    return NULL;
+  }
+
   ResourceMark rm;
   CodeBuffer cb(s->entry_point(), aarch64_code_length);
   MacroAssembler* masm = new MacroAssembler(&cb);
--- a/hotspot/src/cpu/arm/vm/methodHandles_arm.cpp	Tue Jun 27 14:29:54 2017 -0400
+++ b/hotspot/src/cpu/arm/vm/methodHandles_arm.cpp	Tue Jun 27 14:34:00 2017 -0400
@@ -32,6 +32,7 @@
 #include "interpreter/interpreterRuntime.hpp"
 #include "memory/allocation.inline.hpp"
 #include "memory/resourceArea.hpp"
+#include "prims/jvm.h"
 #include "prims/methodHandles.hpp"
 
 #define __ _masm->
--- a/hotspot/src/cpu/arm/vm/relocInfo_arm.cpp	Tue Jun 27 14:29:54 2017 -0400
+++ b/hotspot/src/cpu/arm/vm/relocInfo_arm.cpp	Tue Jun 27 14:34:00 2017 -0400
@@ -139,7 +139,7 @@
 #ifdef AARCH64
 #ifdef COMPILER2
   NativeMovConstReg* ni = nativeMovConstReg_at(addr());
-  if (ni->is_movz()) {
+  if (ni->is_mov_slow()) {
     return;
   }
 #endif
--- a/hotspot/src/cpu/arm/vm/vm_version_arm_32.cpp	Tue Jun 27 14:29:54 2017 -0400
+++ b/hotspot/src/cpu/arm/vm/vm_version_arm_32.cpp	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,6 +25,7 @@
 #include "precompiled.hpp"
 #include "asm/macroAssembler.inline.hpp"
 #include "memory/resourceArea.hpp"
+#include "prims/jvm.h"
 #include "runtime/java.hpp"
 #include "runtime/os.inline.hpp"
 #include "runtime/stubCodeGenerator.hpp"
@@ -256,7 +257,9 @@
     }
   }
 
-  AllocatePrefetchDistance = 128;
+  if (FLAG_IS_DEFAULT(AllocatePrefetchDistance)) {
+    FLAG_SET_DEFAULT(AllocatePrefetchDistance, 128);
+  }
 
 #ifdef COMPILER2
   FLAG_SET_DEFAULT(UseFPUForSpilling, true);
--- a/hotspot/src/cpu/arm/vm/vm_version_arm_64.cpp	Tue Jun 27 14:29:54 2017 -0400
+++ b/hotspot/src/cpu/arm/vm/vm_version_arm_64.cpp	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,6 +25,7 @@
 #include "precompiled.hpp"
 #include "asm/macroAssembler.inline.hpp"
 #include "memory/resourceArea.hpp"
+#include "prims/jvm.h"
 #include "runtime/java.hpp"
 #include "runtime/os.inline.hpp"
 #include "runtime/stubCodeGenerator.hpp"
@@ -201,7 +202,9 @@
     }
   }
 
-  AllocatePrefetchDistance = 128;
+  if (FLAG_IS_DEFAULT(AllocatePrefetchDistance)) {
+    FLAG_SET_DEFAULT(AllocatePrefetchDistance, 128);
+  }
 
 #ifdef COMPILER2
   FLAG_SET_DEFAULT(UseFPUForSpilling, true);
--- a/hotspot/src/cpu/ppc/vm/methodHandles_ppc.cpp	Tue Jun 27 14:29:54 2017 -0400
+++ b/hotspot/src/cpu/ppc/vm/methodHandles_ppc.cpp	Tue Jun 27 14:34:00 2017 -0400
@@ -29,6 +29,7 @@
 #include "interpreter/interpreter.hpp"
 #include "memory/allocation.inline.hpp"
 #include "memory/resourceArea.hpp"
+#include "prims/jvm.h"
 #include "prims/methodHandles.hpp"
 
 #define __ _masm->
--- a/hotspot/src/cpu/ppc/vm/ppc.ad	Tue Jun 27 14:29:54 2017 -0400
+++ b/hotspot/src/cpu/ppc/vm/ppc.ad	Tue Jun 27 14:34:00 2017 -0400
@@ -1,6 +1,6 @@
 //
 // Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
-// Copyright (c) 2012, 2016 SAP SE. All rights reserved.
+// Copyright (c) 2012, 2017 SAP SE. All rights reserved.
 // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 //
 // This code is free software; you can redistribute it and/or modify it
@@ -9316,6 +9316,44 @@
   ins_pipe(pipe_class_default);
 %}
 
+// Bitfield Extract: URShiftI + AndI
+instruct andI_urShiftI_regI_immI_immIpow2minus1(iRegIdst dst, iRegIsrc src1, immI src2, immIpow2minus1 src3) %{
+  match(Set dst (AndI (URShiftI src1 src2) src3));
+
+  format %{ "EXTRDI  $dst, $src1, shift=$src2, mask=$src3 \t// int bitfield extract" %}
+  size(4);
+  ins_encode %{
+    // TODO: PPC port $archOpcode(ppc64Opcode_rldicl);
+    int rshift = ($src2$$constant) & 0x1f;
+    int length = log2_long(((jlong) $src3$$constant) + 1);
+    if (rshift + length > 32) {
+      // if necessary, adjust mask to omit rotated bits.
+      length = 32 - rshift;
+    }
+    __ extrdi($dst$$Register, $src1$$Register, length, 64 - (rshift + length));
+  %}
+  ins_pipe(pipe_class_default);
+%}
+
+// Bitfield Extract: URShiftL + AndL
+instruct andL_urShiftL_regL_immI_immLpow2minus1(iRegLdst dst, iRegLsrc src1, immI src2, immLpow2minus1 src3) %{
+  match(Set dst (AndL (URShiftL src1 src2) src3));
+
+  format %{ "EXTRDI  $dst, $src1, shift=$src2, mask=$src3 \t// long bitfield extract" %}
+  size(4);
+  ins_encode %{
+    // TODO: PPC port $archOpcode(ppc64Opcode_rldicl);
+    int rshift  = ($src2$$constant) & 0x3f;
+    int length = log2_long(((jlong) $src3$$constant) + 1);
+    if (rshift + length > 64) {
+      // if necessary, adjust mask to omit rotated bits.
+      length = 64 - rshift;
+    }
+    __ extrdi($dst$$Register, $src1$$Register, length, 64 - (rshift + length));
+  %}
+  ins_pipe(pipe_class_default);
+%}
+
 instruct sxtI_reg(iRegIdst dst, iRegIsrc src) %{
   match(Set dst (ConvL2I (ConvI2L src)));
 
--- a/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp	Tue Jun 27 14:29:54 2017 -0400
+++ b/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp	Tue Jun 27 14:34:00 2017 -0400
@@ -28,6 +28,7 @@
 #include "asm/macroAssembler.inline.hpp"
 #include "compiler/disassembler.hpp"
 #include "memory/resourceArea.hpp"
+#include "prims/jvm.h"
 #include "runtime/java.hpp"
 #include "runtime/os.hpp"
 #include "runtime/stubCodeGenerator.hpp"
--- a/hotspot/src/cpu/s390/vm/methodHandles_s390.cpp	Tue Jun 27 14:29:54 2017 -0400
+++ b/hotspot/src/cpu/s390/vm/methodHandles_s390.cpp	Tue Jun 27 14:34:00 2017 -0400
@@ -29,6 +29,7 @@
 #include "interpreter/interpreter.hpp"
 #include "memory/allocation.inline.hpp"
 #include "memory/resourceArea.hpp"
+#include "prims/jvm.h"
 #include "prims/methodHandles.hpp"
 
 #ifdef PRODUCT
--- a/hotspot/src/cpu/s390/vm/vm_version_s390.cpp	Tue Jun 27 14:29:54 2017 -0400
+++ b/hotspot/src/cpu/s390/vm/vm_version_s390.cpp	Tue Jun 27 14:34:00 2017 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -28,6 +28,7 @@
 #include "compiler/disassembler.hpp"
 #include "code/compiledIC.hpp"
 #include "memory/resourceArea.hpp"
+#include "prims/jvm.h"
 #include "runtime/java.hpp"
 #include "runtime/stubCodeGenerator.hpp"
 #include "vm_version_s390.hpp"
--- a/hotspot/src/cpu/sparc/vm/macroAssembler_sparc.cpp	Tue Jun 27 14:29:54 2017 -0400
+++ b/hotspot/src/cpu/sparc/vm/macroAssembler_sparc.cpp	Tue Jun 27 14:34:00 2017 -0400
@@ -31,6 +31,7 @@
 #include "memory/resourceArea.hpp"
 #include "memory/universe.hpp"
 #include "oops/klass.inline.hpp"
+#include "prims/jvm.h"
 #include "prims/methodHandles.hpp"
 #include "runtime/biasedLocking.hpp"
 #include "runtime/interfaceSupport.hpp"
@@ -1392,6 +1393,13 @@
 }
 
 
+void MacroAssembler::unimplemented(const char* what) {
+  char* b = new char[1024];
+  jio_snprintf(b, 1024, "unimplemented: %s", what);
+  stop(b);
+}
+
+
 void MacroAssembler::stop_subroutine() {
   RegistersForDebugging::save_registers(this);
 
--- a/hotspot/src/cpu/sparc/vm/macroAssembler_sparc.hpp	Tue Jun 27 14:29:54 2017 -0400
+++ b/hotspot/src/cpu/sparc/vm/macroAssembler_sparc.hpp	Tue Jun 27 14:34:00 2017 -0400
@@ -1130,7 +1130,7 @@
   void stop(const char* msg);                          // prints msg, dumps registers and stops execution
   void warn(const char* msg);                          // prints msg, but don't stop
   void untested(const char* what = "");
-  void unimplemented(const char* what = "")      { char* b = new char[1024];  jio_snprintf(b, 1024, "unimplemented: %s", what);  stop(b); }
+  void unimplemented(const char* what = "");
   void should_not_reach_here()                   { stop("should not reach here"); }
   void print_CPU_state();
 
--- a/hotspot/src/cpu/sparc/vm/methodHandles_sparc.cpp	Tue Jun 27 14:29:54 2017 -0400
+++ b/hotspot/src/cpu/sparc/vm/methodHandles_sparc.cpp	Tue Jun 27 14:34:00 2017 -0400
@@ -29,6 +29,7 @@
 #include "interpreter/interp_masm.hpp"
 #include "memory/allocation.inline.hpp"
 #include "memory/resourceArea.hpp"
+#include "prims/jvm.h"
 #include "prims/methodHandles.hpp"
 
 #define __ _masm->
--- a/hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp	Tue Jun 27 14:29:54 2017 -0400
+++ b/hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp	Tue Jun 27 14:34:00 2017 -0400
@@ -26,6 +26,7 @@
 #include "asm/macroAssembler.inline.hpp"
 #include "logging/log.hpp"
 #include "memory/resourceArea.hpp"
+#include "prims/jvm.h"
 #include "runtime/java.hpp"
 #include "runtime/os.hpp"
 #include "runtime/stubCodeGenerator.hpp"
@@ -37,23 +38,40 @@
   assert(_features != 0, "System pre-initialization is not complete.");
   guarantee(VM_Version::has_v9(), "only SPARC v9 is supported");
 
-  PrefetchCopyIntervalInBytes = prefetch_copy_interval_in_bytes();
-  PrefetchScanIntervalInBytes = prefetch_scan_interval_in_bytes();
-  PrefetchFieldsAhead         = prefetch_fields_ahead();
+  if (FLAG_IS_DEFAULT(PrefetchCopyIntervalInBytes)) {
+    FLAG_SET_DEFAULT(PrefetchCopyIntervalInBytes, prefetch_copy_interval_in_bytes());
+  }
+  if (FLAG_IS_DEFAULT(PrefetchScanIntervalInBytes)) {
+    FLAG_SET_DEFAULT(PrefetchScanIntervalInBytes, prefetch_scan_interval_in_bytes());
+  }
+  if (FLAG_IS_DEFAULT(PrefetchFieldsAhead)) {
+    FLAG_SET_DEFAULT(PrefetchFieldsAhead, prefetch_fields_ahead());
+  }
 
   // Allocation prefetch settings
   intx cache_line_size = prefetch_data_size();
-  if( cache_line_size > AllocatePrefetchStepSize )
-    AllocatePrefetchStepSize = cache_line_size;
+  if (FLAG_IS_DEFAULT(AllocatePrefetchStepSize) &&
+      (cache_line_size > AllocatePrefetchStepSize)) {
+    FLAG_SET_DEFAULT(AllocatePrefetchStepSize, cache_line_size);
+  }
 
-  AllocatePrefetchDistance = allocate_prefetch_distance();
-  AllocatePrefetchStyle    = allocate_prefetch_style();
+  if (FLAG_IS_DEFAULT(AllocatePrefetchDistance)) {
+    FLAG_SET_DEFAULT(AllocatePrefetchDistance, 512);
+  }
 
-  if (!has_blk_init() || cache_line_size <= 0) {
-    if (AllocatePrefetchInstr == 1) {
+  if ((AllocatePrefetchDistance == 0) && (AllocatePrefetchStyle != 0)) {
+    assert(!FLAG_IS_DEFAULT(AllocatePrefetchDistance), "default value should not be 0");
+    if (!FLAG_IS_DEFAULT(AllocatePrefetchStyle)) {
+      warning("AllocatePrefetchDistance is set to 0 which disable prefetching. Ignoring AllocatePrefetchStyle flag.");
+    }
+    FLAG_SET_DEFAULT(AllocatePrefetchStyle, 0);
+  }
+
+  if ((AllocatePrefetchInstr == 1) && (!has_blk_init() || cache_line_size <= 0)) {
+    if (!FLAG_IS_DEFAULT(AllocatePrefetchInstr)) {
       warning("BIS instructions required for AllocatePrefetchInstr 1 unavailable");
-      FLAG_SET_DEFAULT(AllocatePrefetchInstr, 0);
     }
+    FLAG_SET_DEFAULT(AllocatePrefetchInstr, 0);
   }
 
   UseSSE = 0; // Only on x86 and x64
@@ -121,9 +139,10 @@
       }
     }
 
-    if (AllocatePrefetchInstr == 1) {
-      // Use allocation prefetch style 3 because BIS instructions
-      // require aligned memory addresses.
+    if ((AllocatePrefetchInstr == 1) && (AllocatePrefetchStyle != 3)) {
+      if (!FLAG_IS_DEFAULT(AllocatePrefetchStyle)) {
+        warning("AllocatePrefetchStyle set to 3 because BIS instructions require aligned memory addresses");
+      }
       FLAG_SET_DEFAULT(AllocatePrefetchStyle, 3);
     }
 #endif /* COMPILER2 */
--- a/hotspot/src/cpu/sparc/vm/vm_version_sparc.hpp	Tue Jun 27 14:29:54 2017 -0400
+++ b/hotspot/src/cpu/sparc/vm/vm_version_sparc.hpp	Tue Jun 27 14:34:00 2017 -0400
@@ -180,30 +180,13 @@
 
   // Prefetch
   static intx prefetch_copy_interval_in_bytes() {
-    intx interval = PrefetchCopyIntervalInBytes;
-    return interval >= 0 ? interval : (has_v9() ? 512 : 0);
+    return (has_v9() ? 512 : 0);
   }
   static intx prefetch_scan_interval_in_bytes() {
-    intx interval = PrefetchScanIntervalInBytes;
-    return interval >= 0 ? interval : (has_v9() ? 512 : 0);
+    return (has_v9() ? 512 : 0);
   }
   static intx prefetch_fields_ahead() {
-    intx count = PrefetchFieldsAhead;
-    return count >= 0 ? count : (is_ultra3() ? 1 : 0);
-  }
-
-  static intx allocate_prefetch_distance() {
-    // This method should be called before allocate_prefetch_style().
-    intx count = AllocatePrefetchDistance;
-    if (count < 0) { // default is not defined ?
-      count = 512;
-    }
-    return count;
-  }
-  static intx allocate_prefetch_style() {
-    assert(AllocatePrefetchStyle >= 0, "AllocatePrefetchStyle should be positive");
-    // Return 0 if AllocatePrefetchDistance was not defined.
-    return AllocatePrefetchDistance > 0 ? AllocatePrefetchStyle : 0;
+    return (is_ultra3() ? 1 : 0);
   }
 
   // Assembler testing
--- a/hotspot/src/cpu/x86/vm/macroAssembler_x86.cpp	Tue Jun 27 14:29:54 2017 -0400
+++ b/hotspot/src/cpu/x86/vm/macroAssembler_x86.cpp	Tue Jun 27 14:34:00 2017 -0400
@@ -32,6 +32,7 @@
 #include "memory/resourceArea.hpp"
 #include "memory/universe.hpp"
 #include "oops/klass.inline.hpp"
+#include "prims/jvm.h"
 #include "prims/methodHandles.hpp"
 #include "runtime/biasedLocking.hpp"
 #include "runtime/interfaceSupport.hpp"
@@ -3640,6 +3641,12 @@
   call(RuntimeAddress(CAST_FROM_FN_PTR(address, os::breakpoint)));
 }
 
+void MacroAssembler::unimplemented(const char* what) {
+  char* b = new char[1024];
+  jio_snprintf(b, 1024, "unimplemented: %s", what);
+  stop(b);
+}
+
 #ifdef _LP64
 #define XSTATE_BV 0x200
 #endif
--- a/hotspot/src/cpu/x86/vm/macroAssembler_x86.hpp	Tue Jun 27 14:29:54 2017 -0400
+++ b/hotspot/src/cpu/x86/vm/macroAssembler_x86.hpp	Tue Jun 27 14:34:00 2017 -0400
@@ -628,7 +628,7 @@
 
   void untested()                                { stop("untested"); }
 
-  void unimplemented(const char* what = "")      { char* b = new char[1024];  jio_snprintf(b, 1024, "unimplemented: %s", what);  stop(b); }
+  void unimplemented(const char* what = "");
 
   void should_not_reach_here()                   { stop("should not reach here"); }
 
--- a/hotspot/src/cpu/x86/vm/methodHandles_x86.cpp	Tue Jun 27 14:29:54 2017 -0400
+++ b/hotspot/src/cpu/x86/vm/methodHandles_x86.cpp	Tue Jun 27 14:34:00 2017 -0400
@@ -29,6 +29,7 @@
 #include "interpreter/interpreterRuntime.hpp"
 #include "memory/allocation.inline.hpp"
 #include "memory/resourceArea.hpp"
+#include "prims/jvm.h"
 #include "prims/methodHandles.hpp"
 
 #define __ _masm->
--- a/hotspot/src/cpu/x86/vm/vm_version_x86.cpp	Tue Jun 27 14:29:54 2017 -0400
+++ b/hotspot/src/cpu/x86/vm/vm_version_x86.cpp	Tue Jun 27 14:34:00 2017 -0400
@@ -27,6 +27,7 @@
 #include "asm/macroAssembler.inline.hpp"
 #include "logging/log.hpp"
 #include "memory/resourceArea.hpp"
+#include "prims/jvm.h"
 #include "runtime/java.hpp"
 #include "runtime/os.hpp"
 #include "runtime/stubCodeGenerator.hpp"
@@ -641,18 +642,13 @@
     _features &= ~CPU_VZEROUPPER;
   }
 
-  if (!UseAES && !FLAG_IS_DEFAULT(UseAES))
-    _features &= ~CPU_AES;
-
   if (logical_processors_per_package() == 1) {
     // HT processor could be installed on a system which doesn't support HT.
     _features &= ~CPU_HT;
   }
 
   if( is_intel() ) { // Intel cpus specific settings
-    if ((cpu_family() == 0x06) &&
-        ((extended_cpu_model() == 0x57) ||   // Xeon Phi 3200/5200/7200
-        (extended_cpu_model() == 0x85))) {  // Future Xeon Phi
+    if (is_knights_family()) {
       _features &= ~CPU_VZEROUPPER;
     }
   }
@@ -812,7 +808,7 @@
     FLAG_SET_DEFAULT(UseGHASHIntrinsics, false);
   }
 
-  if (supports_fma()) {
+  if (supports_fma() && UseSSE >= 2) { // Check UseSSE since FMA code uses SSE instructions
     if (FLAG_IS_DEFAULT(UseFMA)) {
       UseFMA = true;
     }
@@ -1103,18 +1099,18 @@
     if ( cpu_family() == 0x15 ) {
       // On family 15h processors default is no sw prefetch
       if (FLAG_IS_DEFAULT(AllocatePrefetchStyle)) {
-        AllocatePrefetchStyle = 0;
+        FLAG_SET_DEFAULT(AllocatePrefetchStyle, 0);
       }
       // Also, if some other prefetch style is specified, default instruction type is PREFETCHW
       if (FLAG_IS_DEFAULT(AllocatePrefetchInstr)) {
-        AllocatePrefetchInstr = 3;
+        FLAG_SET_DEFAULT(AllocatePrefetchInstr, 3);
       }
       // On family 15h processors use XMM and UnalignedLoadStores for Array Copy
       if (supports_sse2() && FLAG_IS_DEFAULT(UseXMMForArrayCopy)) {
-        UseXMMForArrayCopy = true;
+        FLAG_SET_DEFAULT(UseXMMForArrayCopy, true);
       }
       if (supports_sse2() && FLAG_IS_DEFAULT(UseUnalignedLoadStores)) {
-        UseUnalignedLoadStores = true;
+        FLAG_SET_DEFAULT(UseUnalignedLoadStores, true);
       }
     }
 
@@ -1179,10 +1175,7 @@
         FLAG_SET_DEFAULT(UseSSE42Intrinsics, false);
       }
     }
-    if ((cpu_family() == 0x06) &&
-        ((extended_cpu_model() == 0x36) || // Centerton
-         (extended_cpu_model() == 0x37) || // Silvermont
-         (extended_cpu_model() == 0x4D))) {
+    if (is_atom_family() || is_knights_family()) {
 #ifdef COMPILER2
       if (FLAG_IS_DEFAULT(OptoScheduling)) {
         OptoScheduling = true;
@@ -1193,9 +1186,12 @@
           UseUnalignedLoadStores = true; // use movdqu on newest Intel cpus
         }
       }
+      if (FLAG_IS_DEFAULT(UseIncDec)) {
+        FLAG_SET_DEFAULT(UseIncDec, false);
+      }
     }
     if(FLAG_IS_DEFAULT(AllocatePrefetchInstr) && supports_3dnow_prefetch()) {
-      AllocatePrefetchInstr = 3;
+      FLAG_SET_DEFAULT(AllocatePrefetchInstr, 3);
     }
   }
 
@@ -1291,45 +1287,68 @@
   }
 #endif // COMPILER2
 
-  if( AllocatePrefetchInstr == 3 && !supports_3dnow_prefetch() ) AllocatePrefetchInstr=0;
-  if( !supports_sse() && supports_3dnow_prefetch() ) AllocatePrefetchInstr = 3;
+  if (FLAG_IS_DEFAULT(AllocatePrefetchInstr)) {
+    if (AllocatePrefetchInstr == 3 && !supports_3dnow_prefetch()) {
+      FLAG_SET_DEFAULT(AllocatePrefetchInstr, 0);
+    } else if (!supports_sse() && supports_3dnow_prefetch()) {
+      FLAG_SET_DEFAULT(AllocatePrefetchInstr, 3);
+    }
+  }
 
   // Allocation prefetch settings
   intx cache_line_size = prefetch_data_size();
-  if( cache_line_size > AllocatePrefetchStepSize )
-    AllocatePrefetchStepSize = cache_line_size;
+  if (FLAG_IS_DEFAULT(AllocatePrefetchStepSize) &&
+      (cache_line_size > AllocatePrefetchStepSize)) {
+    FLAG_SET_DEFAULT(AllocatePrefetchStepSize, cache_line_size);
+  }
 
-  AllocatePrefetchDistance = allocate_prefetch_distance();
-  AllocatePrefetchStyle    = allocate_prefetch_style();
+  if ((AllocatePrefetchDistance == 0) && (AllocatePrefetchStyle != 0)) {
+    assert(!FLAG_IS_DEFAULT(AllocatePrefetchDistance), "default value should not be 0");
+    if (!FLAG_IS_DEFAULT(AllocatePrefetchStyle)) {
+      warning("AllocatePrefetchDistance is set to 0 which disable prefetching. Ignoring AllocatePrefetchStyle flag.");
+    }
+    FLAG_SET_DEFAULT(AllocatePrefetchStyle, 0);
+  }
+
+  if (FLAG_IS_DEFAULT(AllocatePrefetchDistance)) {
+    bool use_watermark_prefetch = (AllocatePrefetchStyle == 2);
+    FLAG_SET_DEFAULT(AllocatePrefetchDistance, allocate_prefetch_distance(use_watermark_prefetch));
+  }
 
   if (is_intel() && cpu_family() == 6 && supports_sse3()) {
-    if (AllocatePrefetchStyle == 2) { // watermark prefetching on Core
-#ifdef _LP64
-      AllocatePrefetchDistance = 384;
-#else
-      AllocatePrefetchDistance = 320;
-#endif
-    }
-    if (supports_sse4_2() && supports_ht()) { // Nehalem based cpus
-      AllocatePrefetchDistance = 192;
-      if (FLAG_IS_DEFAULT(AllocatePrefetchLines)) {
-        FLAG_SET_DEFAULT(AllocatePrefetchLines, 4);
-      }
+    if (FLAG_IS_DEFAULT(AllocatePrefetchLines) &&
+        supports_sse4_2() && supports_ht()) { // Nehalem based cpus
+      FLAG_SET_DEFAULT(AllocatePrefetchLines, 4);
     }
 #ifdef COMPILER2
-    if (supports_sse4_2()) {
-      if (FLAG_IS_DEFAULT(UseFPUForSpilling)) {
-        FLAG_SET_DEFAULT(UseFPUForSpilling, true);
-      }
+    if (FLAG_IS_DEFAULT(UseFPUForSpilling) && supports_sse4_2()) {
+      FLAG_SET_DEFAULT(UseFPUForSpilling, true);
     }
 #endif
   }
 
 #ifdef _LP64
   // Prefetch settings
-  PrefetchCopyIntervalInBytes = prefetch_copy_interval_in_bytes();
-  PrefetchScanIntervalInBytes = prefetch_scan_interval_in_bytes();
-  PrefetchFieldsAhead         = prefetch_fields_ahead();
+
+  // Prefetch interval for gc copy/scan == 9 dcache lines.  Derived from
+  // 50-warehouse specjbb runs on a 2-way 1.8ghz opteron using a 4gb heap.
+  // Tested intervals from 128 to 2048 in increments of 64 == one cache line.
+  // 256 bytes (4 dcache lines) was the nearest runner-up to 576.
+
+  // gc copy/scan is disabled if prefetchw isn't supported, because
+  // Prefetch::write emits an inlined prefetchw on Linux.
+  // Do not use the 3dnow prefetchw instruction.  It isn't supported on em64t.
+  // The used prefetcht0 instruction works for both amd64 and em64t.
+
+  if (FLAG_IS_DEFAULT(PrefetchCopyIntervalInBytes)) {
+    FLAG_SET_DEFAULT(PrefetchCopyIntervalInBytes, 576);
+  }
+  if (FLAG_IS_DEFAULT(PrefetchScanIntervalInBytes)) {
+    FLAG_SET_DEFAULT(PrefetchScanIntervalInBytes, 576);
+  }
+  if (FLAG_IS_DEFAULT(PrefetchFieldsAhead)) {
+    FLAG_SET_DEFAULT(PrefetchFieldsAhead, 1);
+  }
 #endif
 
   if (FLAG_IS_DEFAULT(ContendedPaddingWidth) &&
--- a/hotspot/src/cpu/x86/vm/vm_version_x86.hpp	Tue Jun 27 14:29:54 2017 -0400
+++ b/hotspot/src/cpu/x86/vm/vm_version_x86.hpp	Tue Jun 27 14:34:00 2017 -0400
@@ -641,6 +641,8 @@
   static bool is_P6()             { return cpu_family() >= 6; }
   static bool is_amd()            { assert_is_initialized(); return _cpuid_info.std_vendor_name_0 == 0x68747541; } // 'htuA'
   static bool is_intel()          { assert_is_initialized(); return _cpuid_info.std_vendor_name_0 == 0x756e6547; } // 'uneG'
+  static bool is_atom_family()    { return ((cpu_family() == 0x06) && ((extended_cpu_model() == 0x36) || (extended_cpu_model() == 0x37) || (extended_cpu_model() == 0x4D))); } //Silvermont and Centerton
+  static bool is_knights_family() { return ((cpu_family() == 0x06) && ((extended_cpu_model() == 0x57) || (extended_cpu_model() == 0x85))); } // Xeon Phi 3200/5200/7200 and Future Xeon Phi
 
   static bool supports_processor_topology() {
     return (_cpuid_info.std_max_function >= 0xB) &&
@@ -782,9 +784,7 @@
 
   static bool supports_compare_and_exchange() { return true; }
 
-  static intx allocate_prefetch_distance() {
-    // This method should be called before allocate_prefetch_style().
-    //
+  static intx allocate_prefetch_distance(bool use_watermark_prefetch) {
     // Hardware prefetching (distance/size in bytes):
     // Pentium 3 -  64 /  32
     // Pentium 4 - 256 / 128
@@ -800,58 +800,34 @@
     // Core      - 256 / prefetchnta
     // It will be used only when AllocatePrefetchStyle > 0
 
-    intx count = AllocatePrefetchDistance;
-    if (count < 0) {   // default ?
-      if (is_amd()) {  // AMD
-        if (supports_sse2())
-          count = 256; // Opteron
-        else
-          count = 128; // Athlon
-      } else {         // Intel
-        if (supports_sse2())
-          if (cpu_family() == 6) {
-            count = 256; // Pentium M, Core, Core2
-          } else {
-            count = 512; // Pentium 4
-          }
-        else
-          count = 128; // Pentium 3 (and all other old CPUs)
+    if (is_amd()) { // AMD
+      if (supports_sse2()) {
+        return 256; // Opteron
+      } else {
+        return 128; // Athlon
+      }
+    } else { // Intel
+      if (supports_sse3() && cpu_family() == 6) {
+        if (supports_sse4_2() && supports_ht()) { // Nehalem based cpus
+          return 192;
+        } else if (use_watermark_prefetch) { // watermark prefetching on Core
+#ifdef _LP64
+          return 384;
+#else
+          return 320;
+#endif
+        }
+      }
+      if (supports_sse2()) {
+        if (cpu_family() == 6) {
+          return 256; // Pentium M, Core, Core2
+        } else {
+          return 512; // Pentium 4
+        }
+      } else {
+        return 128; // Pentium 3 (and all other old CPUs)
       }
     }
-    return count;
-  }
-  static intx allocate_prefetch_style() {
-    assert(AllocatePrefetchStyle >= 0, "AllocatePrefetchStyle should be positive");
-    // Return 0 if AllocatePrefetchDistance was not defined.
-    return AllocatePrefetchDistance > 0 ? AllocatePrefetchStyle : 0;
-  }
-
-  // Prefetch interval for gc copy/scan == 9 dcache lines.  Derived from
-  // 50-warehouse specjbb runs on a 2-way 1.8ghz opteron using a 4gb heap.
-  // Tested intervals from 128 to 2048 in increments of 64 == one cache line.
-  // 256 bytes (4 dcache lines) was the nearest runner-up to 576.
-
-  // gc copy/scan is disabled if prefetchw isn't supported, because
-  // Prefetch::write emits an inlined prefetchw on Linux.
-  // Do not use the 3dnow prefetchw instruction.  It isn't supported on em64t.
-  // The used prefetcht0 instruction works for both amd64 and em64t.
-  static intx prefetch_copy_interval_in_bytes() {
-    intx interval = PrefetchCopyIntervalInBytes;
-    return interval >= 0 ? interval : 576;
-  }
-  static intx prefetch_scan_interval_in_bytes() {
-    intx interval = PrefetchScanIntervalInBytes;
-    return interval >= 0 ? interval : 576;
-  }
-  static intx prefetch_fields_ahead() {
-    intx count = PrefetchFieldsAhead;
-    return count >= 0 ? count : 1;
-  }
-  static uint32_t get_xsave_header_lower_segment() {
-    return _cpuid_info.xem_xcr0_eax.value;
-  }
-  static uint32_t get_xsave_header_upper_segment() {
-    return _cpuid_info.xem_xcr0_edx;
   }
 
   // SSE2 and later processors implement a 'pause' instruction
--- a/hotspot/src/jdk.aot/share/classes/jdk.tools.jaotc.binformat/src/jdk/tools/jaotc/binformat/BinaryContainer.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/hotspot/src/jdk.aot/share/classes/jdk.tools.jaotc.binformat/src/jdk/tools/jaotc/binformat/BinaryContainer.java	Tue Jun 27 14:34:00 2017 -0400
@@ -308,7 +308,6 @@
                                    graalHotSpotVMConfig.useCompressedClassPointers,
                                    graalHotSpotVMConfig.compactFields,
                                    graalHotSpotVMConfig.useG1GC,
-                                   graalHotSpotVMConfig.useCMSGC,
                                    graalHotSpotVMConfig.useTLAB,
                                    graalHotSpotVMConfig.useBiasedLocking,
                                    TieredAOT.getValue(graalOptions),
--- a/hotspot/src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/GraalFilters.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/hotspot/src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/GraalFilters.java	Tue Jun 27 14:34:00 2017 -0400
@@ -34,7 +34,6 @@
 import jdk.vm.ci.meta.ResolvedJavaMethod;
 import jdk.vm.ci.meta.ResolvedJavaType;
 
-import org.graalvm.api.word.WordBase;
 import org.graalvm.compiler.api.directives.GraalDirectives;
 import org.graalvm.compiler.api.replacements.ClassSubstitution;
 import org.graalvm.compiler.api.replacements.MethodSubstitution;
@@ -44,6 +43,7 @@
 import org.graalvm.compiler.hotspot.replacements.HotSpotClassSubstitutions;
 import org.graalvm.compiler.hotspot.word.MetaspacePointer;
 import org.graalvm.compiler.replacements.Snippets;
+import org.graalvm.word.WordBase;
 
 public class GraalFilters {
     private List<ResolvedJavaType> specialClasses;
--- a/hotspot/src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/Main.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/hotspot/src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/Main.java	Tue Jun 27 14:34:00 2017 -0400
@@ -445,7 +445,7 @@
             if (!TieredAOT.hasBeenSet(graalOptions)) {
                 graalOptions = new OptionValues(graalOptions, TieredAOT, options.tiered);
             }
-            graalOptions = new OptionValues(HotSpotGraalOptionValues.HOTSPOT_OPTIONS, GeneratePIC, true, ImmutableCode, true);
+            graalOptions = new OptionValues(graalOptions, GeneratePIC, true, ImmutableCode, true);
             GraalJVMCICompiler graalCompiler = HotSpotGraalCompilerFactory.createCompiler(JVMCI.getRuntime(), graalOptions, CompilerConfigurationFactory.selectFactory(null, graalOptions));
             HotSpotGraalRuntimeProvider runtime = (HotSpotGraalRuntimeProvider) graalCompiler.getGraalRuntime();
             HotSpotHostBackend backend = (HotSpotHostBackend) runtime.getCapability(RuntimeProvider.class).getHostBackend();
--- a/hotspot/src/jdk.hotspot.agent/share/classes/module-info.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/hotspot/src/jdk.hotspot.agent/share/classes/module-info.java	Tue Jun 27 14:34:00 2017 -0400
@@ -26,6 +26,15 @@
 /**
  * Defines the implementation of the HotSpot Serviceability Agent.
  *
+ * <p> This module includes the <em>{@index jhsdb jhsdb tool}</em> tool to
+ * attach to a running Java Virtual Machine (JVM) or launch a postmortem
+ * debugger to analyze the content of a core-dump from a crashed JVM.
+ *
+ * <dl style="font-family:'DejaVu Sans', Arial, Helvetica, sans serif">
+ * <dt class="simpleTagLabel">Tool Guides:</dt>
+ * <dd> {@extLink jhsdb_tool_reference jhsdb}</dd>
+ * </dl>
+ *
  * @moduleGraph
  * @since 9
  */
--- a/hotspot/src/jdk.internal.vm.compiler/.mx.graal/suite.py	Tue Jun 27 14:29:54 2017 -0400
+++ b/hotspot/src/jdk.internal.vm.compiler/.mx.graal/suite.py	Tue Jun 27 14:34:00 2017 -0400
@@ -61,6 +61,27 @@
   },
 
   "projects" : {
+    # -------------- SDK --------------
+    "org.graalvm.options" : {
+      "subDir" : "share/classes",
+      "sourceDirs" : ["src"],
+      "dependencies" : [],
+      "uses" : [],
+      "exports" : [
+        "<package-info>",  # exports all packages containing package-info.java
+      ],
+      "checkstyle" : "org.graalvm.api.word",
+      "javaCompliance" : "1.8",
+      "workingSets" : "API,SDK",
+    },
+    "org.graalvm.api.word" : {
+      "subDir" : "share/classes",
+      "sourceDirs" : ["src"],
+      "dependencies" : [],
+      "checkstyle" : "org.graalvm.api.word",
+      "javaCompliance" : "1.8",
+      "workingSets" : "API,SDK",
+    },
 
     # ------------- Graal -------------
 
@@ -84,7 +105,7 @@
 
     "org.graalvm.compiler.options" : {
       "subDir" : "share/classes",
-      "dependencies" : ["JVMCI_SERVICES", "JVMCI_API"],
+      "dependencies" : ["JVMCI_SERVICES", "JVMCI_API", "org.graalvm.util"],
       "sourceDirs" : ["src"],
       "dependencies" : ["org.graalvm.util"],
       "checkstyle" : "org.graalvm.compiler.graph",
@@ -594,15 +615,6 @@
       "workingSets" : "Graal,LIR,SPARC",
     },
 
-    "org.graalvm.api.word" : {
-      "subDir" : "share/classes",
-      "sourceDirs" : ["src"],
-      "dependencies" : [],
-      "checkstyle" : "org.graalvm.compiler.graph",
-      "javaCompliance" : "1.8",
-      "workingSets" : "API",
-    },
-
     "org.graalvm.compiler.word" : {
       "subDir" : "share/classes",
       "sourceDirs" : ["src"],
--- a/hotspot/src/jdk.internal.vm.compiler/share/classes/module-info.java	Tue Jun 27 14:29:54 2017 -0400
+++ b/hotspot/src/jdk.internal.vm.compiler/share/classes/module-info.java	Tue Jun 27 14:34:00 2017 -0400
@@ -39,10 +39,10 @@
     uses org.graalvm.compiler.debug.TTYStreamProvider;
     uses org.graalvm.compiler.hotspot.CompilerConfigurationFactory;
     uses org.graalvm.compiler.hotspot.HotSpotBackendFactory;
+    uses org.graalvm.compiler.hotspot.HotSpotCodeCacheListener;
     uses org.graalvm.compiler.options.OptionValuesAccess;
     uses org.graalvm.compiler.nodes.graphbuilderconf.NodeIntrinsicPluginFactory;
 
-    exports org.graalvm.api.word                        to jdk.aot;
     exports org.graalvm.compiler.api.directives         to jdk.aot;
     exports org.graalvm.compiler.api.runtime            to jdk.aot;
     exports org.graalvm.compiler.api.replacements       to jdk.aot;
@@ -71,4 +71,5 @@
     exports org.graalvm.compiler.runtime                to jdk.aot;
     exports org.graalvm.compiler.replacements           to jdk.aot;
     exports org.graalvm.compiler.word                   to jdk.aot;
+    exports org.graalvm.word                            to jdk.aot;
 }
--- a/hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.api.word/src/org/graalvm/api/word/AtomicUnsigned.java	Tue Jun 27 14:29:54 2017 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-/*
- * Copyright (c) 2015, 2015, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-package org.graalvm.api.word;
-
-/**
- * A {@link Unsigned} value that may be updated atomically. See the
- * {@link java.util.concurrent.atomic} package specification for description of the properties of
- * atomic variables.
- */
-public class AtomicUnsigned extends AtomicWord<Unsigned> {
-
-    /**
-     * Atomically adds the given value to the current value.
-     *
-     * @param delta the value to add
-     * @return the previous value
-     */
-    public final Unsigned getAndAdd(Unsigned delta) {
-        return WordFactory.unsigned(value.getAndAdd(delta.rawValue()));
-    }
-
-    /**
-     * Atomically adds the given value to the current value.
-     *
-     * @param delta the value to add
-     * @return the updated value
-     */
-    public final Unsigned addAndGet(Unsigned delta) {
-        return WordFactory.unsigned(value.addAndGet(delta.rawValue()));
-    }
-
-    /**
-     * Atomically subtracts the given value from the current value.
-     *
-     * @param delta the value to add
-     * @return the previous value
-     */
-    public final Unsigned getAndSubtract(Unsigned delta) {
-        return WordFactory.unsigned(value.getAndAdd(-delta.rawValue()));
-    }
-
-    /**
-     * Atomically subtracts the given value from the current value.
-     *
-     * @param delta the value to add
-     * @return the updated value
-     */
-    public final Unsigned subtractAndGet(Unsigned delta) {
-        return WordFactory.unsigned(value.addAndGet(-delta.rawValue()));
-    }
-}
--- a/hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.api.word/src/org/graalvm/api/word/AtomicWord.java	Tue Jun 27 14:29:54 2017 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +0,0 @@
-/*
- * Copyright (c) 2015, 2015, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-package org.graalvm.api.word;
-
-import java.util.concurrent.atomic.AtomicLong;
-import java.util.concurrent.atomic.AtomicReference;
-
-/**
- * A {@link WordBase word} value that may be updated atomically. See the
- * {@link java.util.concurrent.atomic} package specification for description of the properties of
- * atomic variables.
- *
- * Similar to {@link AtomicReference}, but for {@link WordBase word} types. A dedicated
- * implementation is necessary because Object and word types cannot be mixed.
- */
-public class AtomicWord<T extends WordBase> {
-
-    /**
-     * For simplicity, we convert the word value to a long and delegate to existing atomic
-     * operations.
-     */
-    protected final AtomicLong value;
-
-    /**
-     * Creates a new AtomicWord with initial value {@link WordFactory#zero}.
-     */
-    public AtomicWord() {
-        value = new AtomicLong();
-    }
-
-    /**
-     * Gets the current value.
-     *
-     * @return the current value
-     */
-    public final T get() {
-        return WordFactory.unsigned(value.get());
-    }
-
-    /**
-     * Sets to the given value.
-     *
-     * @param newValue the new value
-     */
-    public final void set(T newValue) {
-        value.set(newValue.rawValue());
-    }
-
-    /**
-     * Atomically sets to the given value and returns the old value.
-     *
-     * @param newValue the new value
-     * @return the previous value
-     */
-    public final T getAndSet(T newValue) {
-        return WordFactory.unsigned(value.getAndSet(newValue.rawValue()));
-    }
-
-    /**
-     * Atomically sets the value to the given updated value if the current value {@code ==} the
-     * expected value.
-     *
-     * @param expect the expected value
-     * @param update the new value
-     * @return {@code true} if successful. False return indicates that the actual value was not
-     *         equal to the expected value.
-     */
-    public final boolean compareAndSet(T expect, T update) {
-        return value.compareAndSet(expect.rawValue(), update.rawValue());
-    }
-}
--- a/hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.api.word/src/org/graalvm/api/word/ComparableWord.java	Tue Jun 27 14:29:54 2017 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-/*
- * Copyright (c) 2012, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-package org.graalvm.api.word;
-
-public interface ComparableWord extends WordBase {
-
-    /**
-     * Compares this word with the specified value.
-     *
-     * @param val value to which this word is to be compared.
-     * @return {@code this == val}
-     */
-    boolean equal(ComparableWord val);
-
-    /**
-     * Compares this word with the specified value.
-     *
-     * @param val value to which this word is to be compared.
-     * @return {@code this != val}
-     */
-    boolean notEqual(ComparableWord val);
-}
--- a/hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.api.word/src/org/graalvm/api/word/LocationIdentity.java	Tue Jun 27 14:29:54 2017 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,107 +0,0 @@
-/*
- * Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-package org.graalvm.api.word;
-
-// JaCoCo Exclude
-
-/**
- * Marker interface for location identities. A different location identity of two memory accesses
- * guarantees that the two accesses do not interfere.
- *
- * Clients of {@link LocationIdentity} must use {@link #equals(Object)}, not {@code ==}, when
- * comparing two {@link LocationIdentity} values for equality. Likewise, they must not use
- * {@link java.util.IdentityHashMap}s with {@link LocationIdentity} values as keys.
- */
-public abstract class LocationIdentity {
-
-    private static final class AnyLocationIdentity extends LocationIdentity {
-        @Override
-        public boolean isImmutable() {
-            return false;
-        }
-
-        @Override
-        public String toString() {
-            return "ANY_LOCATION";
-        }
-    }
-
-    private static final class InitLocationIdentity extends LocationIdentity {
-        @Override
-        public boolean isImmutable() {
-            return true;
-        }
-
-        @Override
-        public String toString() {
-            return "INIT_LOCATION";
-        }
-    }
-
-    public static final LocationIdentity ANY_LOCATION = new AnyLocationIdentity();
-    public static final LocationIdentity INIT_LOCATION = new InitLocationIdentity();
-
-    /**
-     * Indicates that the given location is the union of all possible mutable locations. A write to
-     * such a location kill all reads from mutable locations and a read from this location is killed
-     * by any write (except for initialization writes).
-     */
-    public static LocationIdentity any() {
-        return ANY_LOCATION;
-    }
-
-    /**
-     * Location only allowed to be used for writes. Indicates that a completely new memory location
-     * is written. Kills no read. The previous value at the given location must be either
-     * uninitialized or null. Writes to this location do not need a GC pre-barrier.
-     */
-    public static LocationIdentity init() {
-        return INIT_LOCATION;
-    }
-
-    /**
-     * Denotes a location is unchanging in all cases. Not that this is different than the Java
-     * notion of final which only requires definite assignment.
-     */
-    public abstract boolean isImmutable();
-
-    public final boolean isMutable() {
-        return !isImmutable();
-    }
-
-    public final boolean isAny() {
-        return this == ANY_LOCATION;
-    }
-
-    public final boolean isInit() {
-        return this == INIT_LOCATION;
-    }
-
-    public final boolean isSingle() {
-        return this != ANY_LOCATION;
-    }
-
-    public final boolean overlaps(LocationIdentity other) {
-        return isAny() || other.isAny() || this.equals(other);
-    }
-}
--- a/hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.api.word/src/org/graalvm/api/word/Pointer.java	Tue Jun 27 14:29:54 2017 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,963 +0,0 @@
-/*
- * Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-package org.graalvm.api.word;
-
-/**
- * Lowest-level memory access of native C memory.
- * <p>
- * Do not use these methods to access Java objects. These methods access the raw memory without any
- * null checks, read- or write barriers. Even when the VM uses compressed pointers, then readObject
- * and writeObject methods access uncompressed pointers.
- */
-public interface Pointer extends Unsigned, PointerBase {
-
-    /**
-     * Unsafe conversion of this Pointer to a Java language object. No correctness checks or type
-     * checks are performed. The caller must ensure that the Pointer contains a valid Java object
-     * that can i.e., processed by the garbage collector.
-     *
-     * @return this Pointer cast to Object.
-     */
-    Object toObject();
-
-    /**
-     * Unsafe conversion of this Pointer to a Java language object. No correctness checks or type
-     * checks are performed. The caller must ensure that the Pointer contains a valid Java object
-     * that can i.e., processed by the garbage collector and the Pointer does not contain 0.
-     *
-     * @return this Pointer cast to non-null Object.
-     */
-    Object toObjectNonNull();
-
-    /**
-     * Reads the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     * <p>
-     * The offset is always treated as a {@link Signed} value. However, the static type is
-     * {@link WordBase} to avoid the frequent casts to of {@link Unsigned} values (where the caller
-     * knows that the highest-order bit of the unsigned value is never used).
-     *
-     * @param offset the signed offset for the memory access
-     * @param locationIdentity the identity of the read
-     * @return the result of the memory access
-     */
-    byte readByte(WordBase offset, LocationIdentity locationIdentity);
-
-    /**
-     * Reads the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     * <p>
-     * The offset is always treated as a {@link Signed} value. However, the static type is
-     * {@link WordBase} to avoid the frequent casts to of {@link Unsigned} values (where the caller
-     * knows that the highest-order bit of the unsigned value is never used).
-     *
-     * @param offset the signed offset for the memory access
-     * @param locationIdentity the identity of the read
-     * @return the result of the memory access
-     */
-    char readChar(WordBase offset, LocationIdentity locationIdentity);
-
-    /**
-     * Reads the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     * <p>
-     * The offset is always treated as a {@link Signed} value. However, the static type is
-     * {@link WordBase} to avoid the frequent casts to of {@link Unsigned} values (where the caller
-     * knows that the highest-order bit of the unsigned value is never used).
-     *
-     * @param offset the signed offset for the memory access
-     * @param locationIdentity the identity of the read
-     * @return the result of the memory access
-     */
-    short readShort(WordBase offset, LocationIdentity locationIdentity);
-
-    /**
-     * Reads the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     * <p>
-     * The offset is always treated as a {@link Signed} value. However, the static type is
-     * {@link WordBase} to avoid the frequent casts to of {@link Unsigned} values (where the caller
-     * knows that the highest-order bit of the unsigned value is never used).
-     *
-     * @param offset the signed offset for the memory access
-     * @param locationIdentity the identity of the read
-     * @return the result of the memory access
-     */
-    int readInt(WordBase offset, LocationIdentity locationIdentity);
-
-    /**
-     * Reads the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     * <p>
-     * The offset is always treated as a {@link Signed} value. However, the static type is
-     * {@link WordBase} to avoid the frequent casts to of {@link Unsigned} values (where the caller
-     * knows that the highest-order bit of the unsigned value is never used).
-     *
-     * @param offset the signed offset for the memory access
-     * @param locationIdentity the identity of the read
-     * @return the result of the memory access
-     */
-    long readLong(WordBase offset, LocationIdentity locationIdentity);
-
-    /**
-     * Reads the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     * <p>
-     * The offset is always treated as a {@link Signed} value. However, the static type is
-     * {@link WordBase} to avoid the frequent casts to of {@link Unsigned} values (where the caller
-     * knows that the highest-order bit of the unsigned value is never used).
-     *
-     * @param offset the signed offset for the memory access
-     * @param locationIdentity the identity of the read
-     * @return the result of the memory access
-     */
-    float readFloat(WordBase offset, LocationIdentity locationIdentity);
-
-    /**
-     * Reads the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     * <p>
-     * The offset is always treated as a {@link Signed} value. However, the static type is
-     * {@link WordBase} to avoid the frequent casts to of {@link Unsigned} values (where the caller
-     * knows that the highest-order bit of the unsigned value is never used).
-     *
-     * @param offset the signed offset for the memory access
-     * @param locationIdentity the identity of the read
-     * @return the result of the memory access
-     */
-    double readDouble(WordBase offset, LocationIdentity locationIdentity);
-
-    /**
-     * Reads the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     * <p>
-     * The offset is always treated as a {@link Signed} value. However, the static type is
-     * {@link WordBase} to avoid the frequent casts to of {@link Unsigned} values (where the caller
-     * knows that the highest-order bit of the unsigned value is never used).
-     *
-     * @param offset the signed offset for the memory access
-     * @param locationIdentity the identity of the read
-     * @return the result of the memory access
-     */
-    <T extends WordBase> T readWord(WordBase offset, LocationIdentity locationIdentity);
-
-    /**
-     * Reads the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     * <p>
-     * The offset is always treated as a {@link Signed} value. However, the static type is
-     * {@link WordBase} to avoid the frequent casts to of {@link Unsigned} values (where the caller
-     * knows that the highest-order bit of the unsigned value is never used).
-     *
-     * @param offset the signed offset for the memory access
-     * @param locationIdentity the identity of the read
-     * @return the result of the memory access
-     */
-    Object readObject(WordBase offset, LocationIdentity locationIdentity);
-
-    /**
-     * Reads the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     *
-     * @param offset the signed offset for the memory access
-     * @param locationIdentity the identity of the read
-     * @return the result of the memory access
-     */
-    byte readByte(int offset, LocationIdentity locationIdentity);
-
-    /**
-     * Reads the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     *
-     * @param offset the signed offset for the memory access
-     * @param locationIdentity the identity of the read
-     * @return the result of the memory access
-     */
-    char readChar(int offset, LocationIdentity locationIdentity);
-
-    /**
-     * Reads the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     *
-     * @param offset the signed offset for the memory access
-     * @param locationIdentity the identity of the read
-     * @return the result of the memory access
-     */
-    short readShort(int offset, LocationIdentity locationIdentity);
-
-    /**
-     * Reads the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     *
-     * @param offset the signed offset for the memory access
-     * @param locationIdentity the identity of the read
-     * @return the result of the memory access
-     */
-    int readInt(int offset, LocationIdentity locationIdentity);
-
-    /**
-     * Reads the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     *
-     * @param offset the signed offset for the memory access
-     * @param locationIdentity the identity of the read
-     * @return the result of the memory access
-     */
-    long readLong(int offset, LocationIdentity locationIdentity);
-
-    /**
-     * Reads the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     *
-     * @param offset the signed offset for the memory access
-     * @param locationIdentity the identity of the read
-     * @return the result of the memory access
-     */
-    float readFloat(int offset, LocationIdentity locationIdentity);
-
-    /**
-     * Reads the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     *
-     * @param offset the signed offset for the memory access
-     * @param locationIdentity the identity of the read
-     * @return the result of the memory access
-     */
-    double readDouble(int offset, LocationIdentity locationIdentity);
-
-    /**
-     * Reads the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     *
-     * @param offset the signed offset for the memory access
-     * @param locationIdentity the identity of the read
-     * @return the result of the memory access
-     */
-    <T extends WordBase> T readWord(int offset, LocationIdentity locationIdentity);
-
-    /**
-     * Reads the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     *
-     * @param offset the signed offset for the memory access
-     * @param locationIdentity the identity of the read
-     * @return the result of the memory access
-     */
-    Object readObject(int offset, LocationIdentity locationIdentity);
-
-    /**
-     * Writes the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     * <p>
-     * The offset is always treated as a {@link Signed} value. However, the static type is
-     * {@link WordBase} to avoid the frequent casts to of {@link Unsigned} values (where the caller
-     * knows that the highest-order bit of the unsigned value is never used).
-     *
-     * @param offset the signed offset for the memory access
-     * @param locationIdentity the identity of the write
-     * @param val the value to be written to memory
-     */
-    void writeByte(WordBase offset, byte val, LocationIdentity locationIdentity);
-
-    /**
-     * Writes the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     * <p>
-     * The offset is always treated as a {@link Signed} value. However, the static type is
-     * {@link WordBase} to avoid the frequent casts to of {@link Unsigned} values (where the caller
-     * knows that the highest-order bit of the unsigned value is never used).
-     *
-     * @param offset the signed offset for the memory access
-     * @param locationIdentity the identity of the write
-     * @param val the value to be written to memory
-     */
-    void writeChar(WordBase offset, char val, LocationIdentity locationIdentity);
-
-    /**
-     * Writes the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     * <p>
-     * The offset is always treated as a {@link Signed} value. However, the static type is
-     * {@link WordBase} to avoid the frequent casts to of {@link Unsigned} values (where the caller
-     * knows that the highest-order bit of the unsigned value is never used).
-     *
-     * @param offset the signed offset for the memory access
-     * @param locationIdentity the identity of the write
-     * @param val the value to be written to memory
-     */
-    void writeShort(WordBase offset, short val, LocationIdentity locationIdentity);
-
-    /**
-     * Writes the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     * <p>
-     * The offset is always treated as a {@link Signed} value. However, the static type is
-     * {@link WordBase} to avoid the frequent casts to of {@link Unsigned} values (where the caller
-     * knows that the highest-order bit of the unsigned value is never used).
-     *
-     * @param offset the signed offset for the memory access
-     * @param locationIdentity the identity of the write
-     * @param val the value to be written to memory
-     */
-    void writeInt(WordBase offset, int val, LocationIdentity locationIdentity);
-
-    /**
-     * Writes the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     * <p>
-     * The offset is always treated as a {@link Signed} value. However, the static type is
-     * {@link WordBase} to avoid the frequent casts to of {@link Unsigned} values (where the caller
-     * knows that the highest-order bit of the unsigned value is never used).
-     *
-     * @param offset the signed offset for the memory access
-     * @param locationIdentity the identity of the write
-     * @param val the value to be written to memory
-     */
-    void writeLong(WordBase offset, long val, LocationIdentity locationIdentity);
-
-    /**
-     * Writes the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     * <p>
-     * The offset is always treated as a {@link Signed} value. However, the static type is
-     * {@link WordBase} to avoid the frequent casts to of {@link Unsigned} values (where the caller
-     * knows that the highest-order bit of the unsigned value is never used).
-     *
-     * @param offset the signed offset for the memory access
-     * @param locationIdentity the identity of the write
-     * @param val the value to be written to memory
-     */
-    void writeFloat(WordBase offset, float val, LocationIdentity locationIdentity);
-
-    /**
-     * Writes the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     * <p>
-     * The offset is always treated as a {@link Signed} value. However, the static type is
-     * {@link WordBase} to avoid the frequent casts to of {@link Unsigned} values (where the caller
-     * knows that the highest-order bit of the unsigned value is never used).
-     *
-     * @param offset the signed offset for the memory access
-     * @param locationIdentity the identity of the write
-     * @param val the value to be written to memory
-     */
-    void writeDouble(WordBase offset, double val, LocationIdentity locationIdentity);
-
-    /**
-     * Writes the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     * <p>
-     * The offset is always treated as a {@link Signed} value. However, the static type is
-     * {@link WordBase} to avoid the frequent casts to of {@link Unsigned} values (where the caller
-     * knows that the highest-order bit of the unsigned value is never used).
-     *
-     * @param offset the signed offset for the memory access
-     * @param locationIdentity the identity of the write
-     * @param val the value to be written to memory
-     */
-    void writeWord(WordBase offset, WordBase val, LocationIdentity locationIdentity);
-
-    /**
-     * Initializes the memory at address {@code (this + offset)}. Both the base address and offset
-     * are in bytes. The memory must be uninitialized or zero prior to this operation.
-     * <p>
-     * The offset is always treated as a {@link Signed} value. However, the static type is
-     * {@link WordBase} to avoid the frequent casts to of {@link Unsigned} values (where the caller
-     * knows that the highest-order bit of the unsigned value is never used).
-     *
-     * @param offset the signed offset for the memory access
-     * @param locationIdentity the identity of the write
-     * @param val the value to be written to memory
-     */
-    void initializeLong(WordBase offset, long val, LocationIdentity locationIdentity);
-
-    /**
-     * Writes the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     * <p>
-     * The offset is always treated as a {@link Signed} value. However, the static type is
-     * {@link WordBase} to avoid the frequent casts to of {@link Unsigned} values (where the caller
-     * knows that the highest-order bit of the unsigned value is never used).
-     *
-     * @param offset the signed offset for the memory access
-     * @param locationIdentity the identity of the write
-     * @param val the value to be written to memory
-     */
-    void writeObject(WordBase offset, Object val, LocationIdentity locationIdentity);
-
-    /**
-     * Writes the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     *
-     * @param offset the signed offset for the memory access
-     * @param locationIdentity the identity of the write
-     * @param val the value to be written to memory
-     */
-    void writeByte(int offset, byte val, LocationIdentity locationIdentity);
-
-    /**
-     * Writes the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     *
-     * @param offset the signed offset for the memory access
-     * @param locationIdentity the identity of the write
-     * @param val the value to be written to memory
-     */
-    void writeChar(int offset, char val, LocationIdentity locationIdentity);
-
-    /**
-     * Writes the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     *
-     * @param offset the signed offset for the memory access
-     * @param locationIdentity the identity of the write
-     * @param val the value to be written to memory
-     */
-    void writeShort(int offset, short val, LocationIdentity locationIdentity);
-
-    /**
-     * Writes the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     *
-     * @param offset the signed offset for the memory access
-     * @param locationIdentity the identity of the write
-     * @param val the value to be written to memory
-     */
-    void writeInt(int offset, int val, LocationIdentity locationIdentity);
-
-    /**
-     * Writes the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     *
-     * @param offset the signed offset for the memory access
-     * @param locationIdentity the identity of the write
-     * @param val the value to be written to memory
-     */
-    void writeLong(int offset, long val, LocationIdentity locationIdentity);
-
-    /**
-     * Writes the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     *
-     * @param offset the signed offset for the memory access
-     * @param locationIdentity the identity of the write
-     * @param val the value to be written to memory
-     */
-    void writeFloat(int offset, float val, LocationIdentity locationIdentity);
-
-    /**
-     * Writes the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     *
-     * @param offset the signed offset for the memory access
-     * @param locationIdentity the identity of the write
-     * @param val the value to be written to memory
-     */
-    void writeDouble(int offset, double val, LocationIdentity locationIdentity);
-
-    /**
-     * Writes the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     *
-     * @param offset the signed offset for the memory access
-     * @param locationIdentity the identity of the write
-     * @param val the value to be written to memory
-     */
-    void writeWord(int offset, WordBase val, LocationIdentity locationIdentity);
-
-    /**
-     * Initializes the memory at address {@code (this + offset)}. Both the base address and offset
-     * are in bytes. The memory must be uninitialized or zero prior to this operation.
-     *
-     * @param offset the signed offset for the memory access
-     * @param locationIdentity the identity of the write
-     * @param val the value to be written to memory
-     */
-    void initializeLong(int offset, long val, LocationIdentity locationIdentity);
-
-    /**
-     * Writes the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     *
-     * @param offset the signed offset for the memory access
-     * @param locationIdentity the identity of the write
-     * @param val the value to be written to memory
-     */
-    void writeObject(int offset, Object val, LocationIdentity locationIdentity);
-
-    /**
-     * Reads the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     * <p>
-     * The offset is always treated as a {@link Signed} value. However, the static type is
-     * {@link WordBase} to avoid the frequent casts to of {@link Unsigned} values (where the caller
-     * knows that the highest-order bit of the unsigned value is never used).
-     *
-     * @param offset the signed offset for the memory access
-     * @return the result of the memory access
-     */
-    byte readByte(WordBase offset);
-
-    /**
-     * Reads the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     * <p>
-     * The offset is always treated as a {@link Signed} value. However, the static type is
-     * {@link WordBase} to avoid the frequent casts to of {@link Unsigned} values (where the caller
-     * knows that the highest-order bit of the unsigned value is never used).
-     *
-     * @param offset the signed offset for the memory access
-     * @return the result of the memory access
-     */
-    char readChar(WordBase offset);
-
-    /**
-     * Reads the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     * <p>
-     * The offset is always treated as a {@link Signed} value. However, the static type is
-     * {@link WordBase} to avoid the frequent casts to of {@link Unsigned} values (where the caller
-     * knows that the highest-order bit of the unsigned value is never used).
-     *
-     * @param offset the signed offset for the memory access
-     * @return the result of the memory access
-     */
-    short readShort(WordBase offset);
-
-    /**
-     * Reads the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     * <p>
-     * The offset is always treated as a {@link Signed} value. However, the static type is
-     * {@link WordBase} to avoid the frequent casts to of {@link Unsigned} values (where the caller
-     * knows that the highest-order bit of the unsigned value is never used).
-     *
-     * @param offset the signed offset for the memory access
-     * @return the result of the memory access
-     */
-    int readInt(WordBase offset);
-
-    /**
-     * Reads the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     * <p>
-     * The offset is always treated as a {@link Signed} value. However, the static type is
-     * {@link WordBase} to avoid the frequent casts to of {@link Unsigned} values (where the caller
-     * knows that the highest-order bit of the unsigned value is never used).
-     *
-     * @param offset the signed offset for the memory access
-     * @return the result of the memory access
-     */
-    long readLong(WordBase offset);
-
-    /**
-     * Reads the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     * <p>
-     * The offset is always treated as a {@link Signed} value. However, the static type is
-     * {@link WordBase} to avoid the frequent casts to of {@link Unsigned} values (where the caller
-     * knows that the highest-order bit of the unsigned value is never used).
-     *
-     * @param offset the signed offset for the memory access
-     * @return the result of the memory access
-     */
-    float readFloat(WordBase offset);
-
-    /**
-     * Reads the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     * <p>
-     * The offset is always treated as a {@link Signed} value. However, the static type is
-     * {@link WordBase} to avoid the frequent casts to of {@link Unsigned} values (where the caller
-     * knows that the highest-order bit of the unsigned value is never used).
-     *
-     * @param offset the signed offset for the memory access
-     * @return the result of the memory access
-     */
-    double readDouble(WordBase offset);
-
-    /**
-     * Reads the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     * <p>
-     * The offset is always treated as a {@link Signed} value. However, the static type is
-     * {@link WordBase} to avoid the frequent casts to of {@link Unsigned} values (where the caller
-     * knows that the highest-order bit of the unsigned value is never used).
-     *
-     * @param offset the signed offset for the memory access
-     * @return the result of the memory access
-     */
-    <T extends WordBase> T readWord(WordBase offset);
-
-    /**
-     * Reads the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     * <p>
-     * The offset is always treated as a {@link Signed} value. However, the static type is
-     * {@link WordBase} to avoid the frequent casts to of {@link Unsigned} values (where the caller
-     * knows that the highest-order bit of the unsigned value is never used).
-     *
-     * @param offset the signed offset for the memory access
-     * @return the result of the memory access
-     */
-    Object readObject(WordBase offset);
-
-    /**
-     * Reads the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     *
-     * @param offset the signed offset for the memory access
-     * @return the result of the memory access
-     */
-    byte readByte(int offset);
-
-    /**
-     * Reads the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     *
-     * @param offset the signed offset for the memory access
-     * @return the result of the memory access
-     */
-    char readChar(int offset);
-
-    /**
-     * Reads the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     *
-     * @param offset the signed offset for the memory access
-     * @return the result of the memory access
-     */
-    short readShort(int offset);
-
-    /**
-     * Reads the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     *
-     * @param offset the signed offset for the memory access
-     * @return the result of the memory access
-     */
-    int readInt(int offset);
-
-    /**
-     * Reads the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     *
-     * @param offset the signed offset for the memory access
-     * @return the result of the memory access
-     */
-    long readLong(int offset);
-
-    /**
-     * Reads the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     *
-     * @param offset the signed offset for the memory access
-     * @return the result of the memory access
-     */
-    float readFloat(int offset);
-
-    /**
-     * Reads the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     *
-     * @param offset the signed offset for the memory access
-     * @return the result of the memory access
-     */
-    double readDouble(int offset);
-
-    /**
-     * Reads the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     *
-     * @param offset the signed offset for the memory access
-     * @return the result of the memory access
-     */
-    <T extends WordBase> T readWord(int offset);
-
-    /**
-     * Reads the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     *
-     * @param offset the signed offset for the memory access
-     * @return the result of the memory access
-     */
-    Object readObject(int offset);
-
-    /**
-     * Writes the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     * <p>
-     * The offset is always treated as a {@link Signed} value. However, the static type is
-     * {@link WordBase} to avoid the frequent casts to of {@link Unsigned} values (where the caller
-     * knows that the highest-order bit of the unsigned value is never used).
-     *
-     * @param offset the signed offset for the memory access
-     * @param val the value to be written to memory
-     */
-    void writeByte(WordBase offset, byte val);
-
-    /**
-     * Writes the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     * <p>
-     * The offset is always treated as a {@link Signed} value. However, the static type is
-     * {@link WordBase} to avoid the frequent casts to of {@link Unsigned} values (where the caller
-     * knows that the highest-order bit of the unsigned value is never used).
-     *
-     * @param offset the signed offset for the memory access
-     * @param val the value to be written to memory
-     */
-    void writeChar(WordBase offset, char val);
-
-    /**
-     * Writes the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     * <p>
-     * The offset is always treated as a {@link Signed} value. However, the static type is
-     * {@link WordBase} to avoid the frequent casts to of {@link Unsigned} values (where the caller
-     * knows that the highest-order bit of the unsigned value is never used).
-     *
-     * @param offset the signed offset for the memory access
-     * @param val the value to be written to memory
-     */
-    void writeShort(WordBase offset, short val);
-
-    /**
-     * Writes the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     * <p>
-     * The offset is always treated as a {@link Signed} value. However, the static type is
-     * {@link WordBase} to avoid the frequent casts to of {@link Unsigned} values (where the caller
-     * knows that the highest-order bit of the unsigned value is never used).
-     *
-     * @param offset the signed offset for the memory access
-     * @param val the value to be written to memory
-     */
-    void writeInt(WordBase offset, int val);
-
-    /**
-     * Writes the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     * <p>
-     * The offset is always treated as a {@link Signed} value. However, the static type is
-     * {@link WordBase} to avoid the frequent casts to of {@link Unsigned} values (where the caller
-     * knows that the highest-order bit of the unsigned value is never used).
-     *
-     * @param offset the signed offset for the memory access
-     * @param val the value to be written to memory
-     */
-    void writeLong(WordBase offset, long val);
-
-    /**
-     * Writes the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     * <p>
-     * The offset is always treated as a {@link Signed} value. However, the static type is
-     * {@link WordBase} to avoid the frequent casts to of {@link Unsigned} values (where the caller
-     * knows that the highest-order bit of the unsigned value is never used).
-     *
-     * @param offset the signed offset for the memory access
-     * @param val the value to be written to memory
-     */
-    void writeFloat(WordBase offset, float val);
-
-    /**
-     * Writes the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     * <p>
-     * The offset is always treated as a {@link Signed} value. However, the static type is
-     * {@link WordBase} to avoid the frequent casts to of {@link Unsigned} values (where the caller
-     * knows that the highest-order bit of the unsigned value is never used).
-     *
-     * @param offset the signed offset for the memory access
-     * @param val the value to be written to memory
-     */
-    void writeDouble(WordBase offset, double val);
-
-    /**
-     * Writes the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     * <p>
-     * The offset is always treated as a {@link Signed} value. However, the static type is
-     * {@link WordBase} to avoid the frequent casts to of {@link Unsigned} values (where the caller
-     * knows that the highest-order bit of the unsigned value is never used).
-     *
-     * @param offset the signed offset for the memory access
-     * @param val the value to be written to memory
-     */
-    void writeWord(WordBase offset, WordBase val);
-
-    /**
-     * Writes the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     * <p>
-     * The offset is always treated as a {@link Signed} value. However, the static type is
-     * {@link WordBase} to avoid the frequent casts to of {@link Unsigned} values (where the caller
-     * knows that the highest-order bit of the unsigned value is never used).
-     *
-     * @param offset the signed offset for the memory access
-     * @param val the value to be written to memory
-     */
-    void writeObject(WordBase offset, Object val);
-
-    int compareAndSwapInt(WordBase offset, int expectedValue, int newValue, LocationIdentity locationIdentity);
-
-    long compareAndSwapLong(WordBase offset, long expectedValue, long newValue, LocationIdentity locationIdentity);
-
-    <T extends WordBase> T compareAndSwapWord(WordBase offset, T expectedValue, T newValue, LocationIdentity locationIdentity);
-
-    Object compareAndSwapObject(WordBase offset, Object expectedValue, Object newValue, LocationIdentity locationIdentity);
-
-    boolean logicCompareAndSwapInt(WordBase offset, int expectedValue, int newValue, LocationIdentity locationIdentity);
-
-    boolean logicCompareAndSwapLong(WordBase offset, long expectedValue, long newValue, LocationIdentity locationIdentity);
-
-    boolean logicCompareAndSwapWord(WordBase offset, WordBase expectedValue, WordBase newValue, LocationIdentity locationIdentity);
-
-    boolean logicCompareAndSwapObject(WordBase offset, Object expectedValue, Object newValue, LocationIdentity locationIdentity);
-
-    /**
-     * Writes the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     *
-     * @param offset the signed offset for the memory access
-     * @param val the value to be written to memory
-     */
-    void writeByte(int offset, byte val);
-
-    /**
-     * Writes the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     *
-     * @param offset the signed offset for the memory access
-     * @param val the value to be written to memory
-     */
-    void writeChar(int offset, char val);
-
-    /**
-     * Writes the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     *
-     * @param offset the signed offset for the memory access
-     * @param val the value to be written to memory
-     */
-    void writeShort(int offset, short val);
-
-    /**
-     * Writes the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     *
-     * @param offset the signed offset for the memory access
-     * @param val the value to be written to memory
-     */
-    void writeInt(int offset, int val);
-
-    /**
-     * Writes the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     *
-     * @param offset the signed offset for the memory access
-     * @param val the value to be written to memory
-     */
-    void writeLong(int offset, long val);
-
-    /**
-     * Writes the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     *
-     * @param offset the signed offset for the memory access
-     * @param val the value to be written to memory
-     */
-    void writeFloat(int offset, float val);
-
-    /**
-     * Writes the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     *
-     * @param offset the signed offset for the memory access
-     * @param val the value to be written to memory
-     */
-    void writeDouble(int offset, double val);
-
-    /**
-     * Writes the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     *
-     * @param offset the signed offset for the memory access
-     * @param val the value to be written to memory
-     */
-    void writeWord(int offset, WordBase val);
-
-    /**
-     * Writes the memory at address {@code (this + offset)}. Both the base address and offset are in
-     * bytes.
-     *
-     * @param offset the signed offset for the memory access
-     * @param val the value to be written to memory
-     */
-    void writeObject(int offset, Object val);
-
-    int compareAndSwapInt(int offset, int expectedValue, int newValue, LocationIdentity locationIdentity);
-
-    long compareAndSwapLong(int offset, long expectedValue, long newValue, LocationIdentity locationIdentity);
-
-    <T extends WordBase> T compareAndSwapWord(int offset, T expectedValue, T newValue, LocationIdentity locationIdentity);
-
-    Object compareAndSwapObject(int offset, Object expectedValue, Object newValue, LocationIdentity locationIdentity);
-
-    boolean logicCompareAndSwapInt(int offset, int expectedValue, int newValue, LocationIdentity locationIdentity);
-
-    boolean logicCompareAndSwapLong(int offset, long expectedValue, long newValue, LocationIdentity locationIdentity);
-
-    boolean logicCompareAndSwapWord(int offset, WordBase expectedValue, WordBase newValue, LocationIdentity locationIdentity);
-
-    boolean logicCompareAndSwapObject(int offset, Object expectedValue, Object newValue, LocationIdentity locationIdentity);
-
-    // Math functions that are defined in Unsigned, but known to preserve the
-    // pointer-characteristics.
-    // It is therefore safe that they return a static type of Pointer instead of Unsigned.
-
-    @Override
-    Pointer add(Unsigned val);
-
-    @Override
-    Pointer add(int val);
-
-    @Override
-    Pointer subtract(Unsigned val);
-
-    @Override
-    Pointer subtract(int val);
-
-    @Override
-    Pointer and(Unsigned val);
-
-    @Override
-    Pointer and(int val);
-
-    @Override
-    Pointer or(Unsigned val);
-
-    @Override
-    Pointer or(int val);
-}
--- a/hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.api.word/src/org/graalvm/api/word/PointerBase.java	Tue Jun 27 14:29:54 2017 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-/*
- * Copyright (c) 2013, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-package org.graalvm.api.word;
-
-/**
- * Marker interface for all {@link WordBase word types} that have the semantic of a pointer (but not
- * necessarily all the memory access methods defined in {@link Pointer}).
- */
-public interface PointerBase extends ComparableWord {
-}
--- a/hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.api.word/src/org/graalvm/api/word/PointerUtils.java	Tue Jun 27 14:29:54 2017 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,135 +0,0 @@
-/*
- * Copyright (c) 2015, 2015, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-package org.graalvm.api.word;
-
-/**
- * Utility methods on Pointers.
- */
-public final class PointerUtils {
-
-    private PointerUtils() {
-        // This is a class of static methods, so no need for any instances.
-    }
-
-    /**
-     * The value of a null Pointer.
-     *
-     * @return A null Pointer value.
-     */
-    @SuppressWarnings("unchecked")
-    public static <T extends PointerBase> T nullPointer() {
-        return (T) WordFactory.zero();
-    }
-
-    /**
-     * Predicate to check for the null Pointer value.
-     *
-     * @return Whether that Pointer is the null Pointer.
-     */
-    public static boolean isNull(ComparableWord that) {
-        return that.equal(nullPointer());
-    }
-
-    /**
-     * Predicate to check for a non-null Pointer value.
-     *
-     * @return Whether that Pointer is not the null Pointer.
-     */
-    public static boolean isNonNull(ComparableWord that) {
-        return that.notEqual(nullPointer());
-    }
-
-    /**
-     * Round a Pointer down to the nearest smaller multiple.
-     *
-     * @param that The Pointer to be rounded up.
-     * @param multiple The multiple to which that Pointer should be decreased.
-     * @return That Pointer, but rounded down.
-     */
-    public static Pointer roundDown(PointerBase that, Unsigned multiple) {
-        return (Pointer) UnsignedUtils.roundDown((Unsigned) that, multiple);
-    }
-
-    /**
-     * Round a Pointer up to the nearest larger multiple.
-     *
-     * @param that The Pointer to be rounded up.
-     * @param multiple The multiple to which that Pointer should be increased.
-     * @return That Pointer, but rounded up.
-     */
-    public static Pointer roundUp(PointerBase that, Unsigned multiple) {
-        return (Pointer) UnsignedUtils.roundUp((Unsigned) that, multiple);
-    }
-
-    /**
-     * Check that a Pointer is an even multiple.
-     *
-     * @param that The Pointer to be verified as a multiple.
-     * @param multiple The multiple against which the Pointer should be verified.
-     * @return true if that Pointer is a multiple, false otherwise.
-     */
-    public static boolean isAMultiple(PointerBase that, Unsigned multiple) {
-        return that.equal(PointerUtils.roundDown(that, multiple));
-    }
-
-    /**
-     * Return the distance between two Pointers.
-     *
-     * @param pointer1 A first Pointer.
-     * @param pointer2 A second Pointer.
-     * @return The distance in bytes between the two Pointers.
-     */
-    public static Unsigned absoluteDifference(PointerBase pointer1, PointerBase pointer2) {
-        Pointer p1 = (Pointer) pointer1;
-        Pointer p2 = (Pointer) pointer2;
-        final Unsigned result;
-        if (p1.aboveOrEqual(p2)) {
-            result = p1.subtract(p2);
-        } else {
-            result = p2.subtract(p1);
-        }
-        return result;
-    }
-
-    /**
-     * The minimum of two Pointers.
-     *
-     * @param x A Pointer.
-     * @param y Another Pointer.
-     * @return The whichever Pointer is smaller.
-     */
-    public static <T extends PointerBase> T min(T x, T y) {
-        return (((Pointer) x).belowOrEqual((Pointer) y)) ? x : y;
-    }
-
-    /**
-     * The maximum of two Pointers.
-     *
-     * @param x A Pointer.
-     * @param y Another Pointer.
-     * @return The whichever Pointer is larger.
-     */
-    public static <T extends PointerBase> T max(T x, T y) {
-        return (((Pointer) x).aboveOrEqual((Pointer) y)) ? x : y;
-    }
-}
--- a/hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.api.word/src/org/graalvm/api/word/Signed.java	Tue Jun 27 14:29:54 2017 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,296 +0,0 @@
-/*
- * Copyright (c) 2012, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-package org.graalvm.api.word;
-
-public interface Signed extends ComparableWord {
-
-    /**
-     * Returns a Signed whose value is {@code (this + val)}.
-     *
-     * @param val value to be added to this Signed.
-     * @return {@code this + val}
-     */
-    Signed add(Signed val);
-
-    /**
-     * Returns a Signed whose value is {@code (this - val)}.
-     *
-     * @param val value to be subtracted from this Signed.
-     * @return {@code this - val}
-     */
-    Signed subtract(Signed val);
-
-    /**
-     * Returns a Signed whose value is {@code (this * val)}.
-     *
-     * @param val value to be multiplied by this Signed.
-     * @return {@code this * val}
-     */
-    Signed multiply(Signed val);
-
-    /**
-     * Returns a Signed whose value is {@code (this / val)}.
-     *
-     * @param val value by which this Signed is to be divided.
-     * @return {@code this / val}
-     */
-    Signed signedDivide(Signed val);
-
-    /**
-     * Returns a Signed whose value is {@code (this % val)}.
-     *
-     * @param val value by which this Signed is to be divided, and the remainder computed.
-     * @return {@code this % val}
-     */
-    Signed signedRemainder(Signed val);
-
-    /**
-     * Returns a Signed whose value is {@code (this << n)}.
-     *
-     * @param n shift distance, in bits.
-     * @return {@code this << n}
-     */
-    Signed shiftLeft(Unsigned n);
-
-    /**
-     * Returns a Signed whose value is {@code (this >> n)}. Sign extension is performed.
-     *
-     * @param n shift distance, in bits.
-     * @return {@code this >> n}
-     */
-    Signed signedShiftRight(Unsigned n);
-
-    /**
-     * Returns a Signed whose value is {@code (this & val)}. (This method returns a negative Signed
-     * if and only if this and val are both negative.)
-     *
-     * @param val value to be AND'ed with this Signed.
-     * @return {@code this & val}
-     */
-    Signed and(Signed val);
-
-    /**
-     * Returns a Signed whose value is {@code (this | val)}. (This method returns a negative Signed
-     * if and only if either this or val is negative.)
-     *
-     * @param val value to be OR'ed with this Signed.
-     * @return {@code this | val}
-     */
-    Signed or(Signed val);
-
-    /**
-     * Returns a Signed whose value is {@code (this ^ val)}. (This method returns a negative Signed
-     * if and only if exactly one of this and val are negative.)
-     *
-     * @param val value to be XOR'ed with this Signed.
-     * @return {@code this ^ val}
-     */
-    Signed xor(Signed val);
-
-    /**
-     * Returns a Signed whose value is {@code (~this)}. (This method returns a negative value if and
-     * only if this Signed is non-negative.)
-     *
-     * @return {@code ~this}
-     */
-    Signed not();
-
-    /**
-     * Compares this Signed with the specified value.
-     *
-     * @param val value to which this Signed is to be compared.
-     * @return {@code this == val}
-     */
-    boolean equal(Signed val);
-
-    /**
-     * Compares this Signed with the specified value.
-     *
-     * @param val value to which this Signed is to be compared.
-     * @return {@code this != val}
-     */
-    boolean notEqual(Signed val);
-
-    /**
-     * Compares this Signed with the specified value.
-     *
-     * @param val value to which this Signed is to be compared.
-     * @return {@code this < val}
-     */
-    boolean lessThan(Signed val);
-
-    /**
-     * Compares this Signed with the specified value.
-     *
-     * @param val value to which this Signed is to be compared.
-     * @return {@code this <= val}
-     */
-    boolean lessOrEqual(Signed val);
-
-    /**
-     * Compares this Signed with the specified value.
-     *
-     * @param val value to which this Signed is to be compared.
-     * @return {@code this > val}
-     */
-    boolean greaterThan(Signed val);
-
-    /**
-     * Compares this Signed with the specified value.
-     *
-     * @param val value to which this Signed is to be compared.
-     * @return {@code this >= val}
-     */
-    boolean greaterOrEqual(Signed val);
-
-    /**
-     * Returns a Signed whose value is {@code (this + val)}.
-     *
-     * @param val value to be added to this Signed.
-     * @return {@code this + val}
-     */
-    Signed add(int val);
-
-    /**
-     * Returns a Signed whose value is {@code (this - val)}.
-     *
-     * @param val value to be subtracted from this Signed.
-     * @return {@code this - val}
-     */
-    Signed subtract(int val);
-
-    /**
-     * Returns a Signed whose value is {@code (this * val)}.
-     *
-     * @param val value to be multiplied by this Signed.
-     * @return {@code this * val}
-     */
-    Signed multiply(int val);
-
-    /**
-     * Returns a Signed whose value is {@code (this / val)}.
-     *
-     * @param val value by which this Signed is to be divided.
-     * @return {@code this / val}
-     */
-    Signed signedDivide(int val);
-
-    /**
-     * Returns a Signed whose value is {@code (this % val)}.
-     *
-     * @param val value by which this Signed is to be divided, and the remainder computed.
-     * @return {@code this % val}
-     */
-    Signed signedRemainder(int val);
-
-    /**
-     * Returns a Signed whose value is {@code (this << n)}.
-     *
-     * @param n shift distance, in bits.
-     * @return {@code this << n}
-     */
-    Signed shiftLeft(int n);
-
-    /**
-     * Returns a Signed whose value is {@code (this >> n)}. Sign extension is performed.
-     *
-     * @param n shift distance, in bits.
-     * @return {@code this >> n}
-     */
-    Signed signedShiftRight(int n);
-
-    /**
-     * Returns a Signed whose value is {@code (this & val)}. (This method returns a negative Signed
-     * if and only if this and val are both negative.)
-     *
-     * @param val value to be AND'ed with this Signed.
-     * @return {@code this & val}
-     */
-    Signed and(int val);
-
-    /**
-     * Returns a Signed whose value is {@code (this | val)}. (This method returns a negative Signed
-     * if and only if either this or val is negative.)
-     *
-     * @param val value to be OR'ed with this Signed.
-     * @return {@code this | val}
-     */
-    Signed or(int val);
-
-    /**
-     * Returns a Signed whose value is {@code (this ^ val)}. (This method returns a negative Signed
-     * if and only if exactly one of this and val are negative.)
-     *
-     * @param val value to be XOR'ed with this Signed.
-     * @return {@code this ^ val}
-     */
-    Signed xor(int val);
-
-    /**
-     * Compares this Signed with the specified value.
-     *
-     * @param val value to which this Signed is to be compared.
-     * @return {@code this == val}
-     */
-    boolean equal(int val);
-
-    /**
-     * Compares this Signed with the specified value.
-     *
-     * @param val value to which this Signed is to be compared.
-     * @return {@code this != val}
-     */
-    boolean notEqual(int val);
-
-    /**
-     * Compares this Signed with the specified value.
-     *
-     * @param val value to which this Signed is to be compared.
-     * @return {@code this < val}
-     */
-    boolean lessThan(int val);
-
-    /**
-     * Compares this Signed with the specified value.
-     *
-     * @param val value to which this Signed is to be compared.
-     * @return {@code this <= val}
-     */
-    boolean lessOrEqual(int val);
-
-    /**
-     * Compares this Signed with the specified value.
-     *
-     * @param val value to which this Signed is to be compared.
-     * @return {@code this > val}
-     */
-    boolean greaterThan(int val);
-
-    /**
-     * Compares this Signed with the specified value.
-     *
-     * @param val value to which this Signed is to be compared.
-     * @return {@code this >= val}
-     */
-    boolean greaterOrEqual(int val);
-}
--- a/hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.api.word/src/org/graalvm/api/word/Unsigned.java	Tue Jun 27 14:29:54 2017 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,337 +0,0 @@
-/*
- * Copyright (c) 2012, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-package org.graalvm.api.word;
-
-public interface Unsigned extends ComparableWord {
-
-    /**
-     * Returns a Unsigned whose value is {@code (this + val)}.
-     *
-     * @param val value to be added to this Unsigned.
-     * @return {@code this + val}
-     */
-    Unsigned add(Unsigned val);
-
-    /**
-     * Returns a Unsigned whose value is {@code (this - val)}.
-     *
-     * @param val value to be subtracted from this Unsigned.
-     * @return {@code this - val}
-     */
-    Unsigned subtract(Unsigned val);
-
-    /**
-     * Returns a Unsigned whose value is {@code (this * val)}.
-     *
-     * @param val value to be multiplied by this Unsigned.
-     * @return {@code this * val}
-     */
-    Unsigned multiply(Unsigned val);
-
-    /**
-     * Returns a Unsigned whose value is {@code (this / val)}.
-     *
-     * @param val value by which this Unsigned is to be divided.
-     * @return {@code this / val}
-     */
-    Unsigned unsignedDivide(Unsigned val);
-
-    /**
-     * Returns a Unsigned whose value is {@code (this % val)}.
-     *
-     * @param val value by which this Unsigned is to be divided, and the remainder computed.
-     * @return {@code this % val}
-     */
-    Unsigned unsignedRemainder(Unsigned val);
-
-    /**
-     * Returns a Unsigned whose value is {@code (this << n)}.
-     *
-     * @param n shift distance, in bits.
-     * @return {@code this << n}
-     */
-    Unsigned shiftLeft(Unsigned n);
-
-    /**
-     * Returns a Unsigned whose value is {@code (this >>> n)}. No sign extension is performed.
-     *
-     * @param n shift distance, in bits.
-     * @return {@code this >> n}
-     */
-    Unsigned unsignedShiftRight(Unsigned n);
-
-    /**
-     * Returns a Unsigned whose value is {@code (this & val)}.
-     *
-     * @param val value to be AND'ed with this Unsigned.
-     * @return {@code this & val}
-     */
-    Unsigned and(Unsigned val);
-
-    /**
-     * Returns a Unsigned whose value is {@code (this | val)}.
-     *
-     * @param val value to be OR'ed with this Unsigned.
-     * @return {@code this | val}
-     */
-    Unsigned or(Unsigned val);
-
-    /**
-     * Returns a Unsigned whose value is {@code (this ^ val)}.
-     *
-     * @param val value to be XOR'ed with this Unsigned.
-     * @return {@code this ^ val}
-     */
-    Unsigned xor(Unsigned val);
-
-    /**
-     * Returns a Unsigned whose value is {@code (~this)}.
-     *
-     * @return {@code ~this}
-     */
-    Unsigned not();
-
-    /**
-     * Compares this Unsigned with the specified value.
-     *
-     * @param val value to which this Unsigned is to be compared.
-     * @return {@code this == val}
-     */
-    boolean equal(Unsigned val);
-
-    /**
-     * Compares this Unsigned with the specified value.
-     *
-     * @param val value to which this Unsigned is to be compared.
-     * @return {@code this != val}
-     */
-    boolean notEqual(Unsigned val);
-
-    /**
-     * Compares this Unsigned with the specified value.
-     *
-     * @param val value to which this Unsigned is to be compared.
-     * @return {@code this < val}
-     */
-    boolean belowThan(Unsigned val);
-
-    /**
-     * Compares this Unsigned with the specified value.
-     *
-     * @param val value to which this Unsigned is to be compared.
-     * @return {@code this <= val}
-     */
-    boolean belowOrEqual(Unsigned val);
-
-    /**
-     * Compares this Unsigned with the specified value.
-     *
-     * @param val value to which this Unsigned is to be compared.
-     * @return {@code this > val}
-     */
-    boolean aboveThan(Unsigned val);
-
-    /**
-     * Compares this Unsigned with the specified value.
-     *
-     * @param val value to which this Unsigned is to be compared.
-     * @return {@code this >= val}
-     */
-    boolean aboveOrEqual(Unsigned val);
-
-    /**
-     * Returns a Unsigned whose value is {@code (this + val)}.
-     * <p>
-     * Note that the right operand is a signed value, while the operation is performed unsigned.
-     * Therefore, the result is only well-defined for positive right operands.
-     *
-     * @param val value to be added to this Unsigned.
-     * @return {@code this + val}
-     */
-    Unsigned add(int val);
-
-    /**
-     * Returns a Unsigned whose value is {@code (this - val)}.
-     * <p>
-     * Note that the right operand is a signed value, while the operation is performed unsigned.
-     * Therefore, the result is only well-defined for positive right operands.
-     *
-     * @param val value to be subtracted from this Unsigned.
-     * @return {@code this - val}
-     */
-    Unsigned subtract(int val);
-
-    /**
-     * Returns a Unsigned whose value is {@code (this * val)}.
-     * <p>
-     * Note that the right operand is a signed value, while the operation is performed unsigned.
-     * Therefore, the result is only well-defined for positive right operands.
-     *
-     * @param val value to be multiplied by this Unsigned.
-     * @return {@code this * val}
-     */
-    Unsigned multiply(int val);
-
-    /**
-     * Returns a Unsigned whose value is {@code (this / val)}.
-     * <p>
-     * Note that the right operand is a signed value, while the operation is performed unsigned.
-     * Therefore, the result is only well-defined for positive right operands.
-     *
-     * @param val value by which this Unsigned is to be divided.
-     * @return {@code this / val}
-     */
-    Unsigned unsignedDivide(int val);
-
-    /**
-     * Returns a Unsigned whose value is {@code (this % val)}.
-     * <p>
-     * Note that the right operand is a signed value, while the operation is performed unsigned.
-     * Therefore, the result is only well-defined for positive right operands.
-     *
-     * @param val value by which this Unsigned is to be divided, and the remainder computed.
-     * @return {@code this % val}
-     */
-    Unsigned unsignedRemainder(int val);
-
-    /**
-     * Returns a Unsigned whose value is {@code (this << n)}.
-     * <p>
-     * Note that the right operand is a signed value, while the operation is performed unsigned.
-     * Therefore, the result is only well-defined for positive right operands.
-     *
-     * @param n shift distance, in bits.
-     * @return {@code this << n}
-     */
-    Unsigned shiftLeft(int n);
-
-    /**
-     * Returns a Unsigned whose value is {@code (this >>> n)}. No sign extension is performed.
-     * <p>
-     * Note that the right operand is a signed value, while the operation is performed unsigned.
-     * Therefore, the result is only well-defined for positive right operands.
-     *
-     * @param n shift distance, in bits.
-     * @return {@code this >> n}
-     */
-    Unsigned unsignedShiftRight(int n);
-
-    /**
-     * Returns a Unsigned whose value is {@code (this & val)}.
-     * <p>
-     * Note that the right operand is a signed value, while the operation is performed unsigned.
-     * Therefore, the result is only well-defined for positive right operands.
-     *
-     * @param val value to be AND'ed with this Unsigned.
-     * @return {@code this & val}
-     */
-    Unsigned and(int val);
-
-    /**
-     * Returns a Unsigned whose value is {@code (this | val)}.
-     * <p>
-     * Note that the right operand is a signed value, while the operation is performed unsigned.
-     * Therefore, the result is only well-defined for positive right operands.
-     *
-     * @param val value to be OR'ed with this Unsigned.
-     * @return {@code this | val}
-     */
-    Unsigned or(int val);
-
-    /**
-     * Returns a Unsigned whose value is {@code (this ^ val)}.
-     * <p>
-     * Note that the right operand is a signed value, while the operation is performed unsigned.
-     * Therefore, the result is only well-defined for positive right operands.
-     *
-     * @param val value to be XOR'ed with this Unsigned.
-     * @return {@code this ^ val}
-     */
-    Unsigned xor(int val);
-
-    /**
-     * Compares this Unsigned with the specified value.
-     * <p>
-     * Note that the right operand is a signed value, while the operation is performed unsigned.
-     * Therefore, the result is only well-defined for positive right operands.
-     *
-     * @param val value to which this Unsigned is to be compared.
-     * @return {@code this == val}
-     */
-    boolean equal(int val);
-
-    /**
-     * Compares this Unsigned with the specified value.
-     * <p>
-     * Note that the right operand is a signed value, while the operation is performed unsigned.
-     * Therefore, the result is only well-defined for positive right operands.
-     *
-     * @param val value to which this Unsigned is to be compared.
-     * @return {@code this != val}
-     */
-    boolean notEqual(int val);
-