<pre style='margin:0'>
Ryan Schmidt (ryandesign) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/674c6c47f1d12c3025ca2ddc231d06270f684222">https://github.com/macports/macports-ports/commit/674c6c47f1d12c3025ca2ddc231d06270f684222</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new 674c6c47f1d openjdk8: add arm64 support
</span>674c6c47f1d is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 674c6c47f1d12c3025ca2ddc231d06270f684222
</span>Author: usersxx <97012123+usersxx@users.noreply.github.com>
AuthorDate: Fri May 5 22:20:56 2023 +0530
<span style='display:block; white-space:pre;color:#404040;'> openjdk8: add arm64 support
</span>---
java/openjdk8-bootstrap/Portfile | 77 +++--
java/openjdk8/Portfile | 40 ++-
.../Support-arm64-and-fix-zero-assembler.diff | 318 +++++++++++++++++++++
3 files changed, 393 insertions(+), 42 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/java/openjdk8-bootstrap/Portfile b/java/openjdk8-bootstrap/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 3d3a2e38b23..2bb4bda0478 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/java/openjdk8-bootstrap/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/java/openjdk8-bootstrap/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5,8 +5,8 @@ PortSystem 1.0
</span> name openjdk8-bootstrap
# use format based on macports:
# https://guide.macports.org/chunked/reference.portgroup.html#reference.portgroup.java
<span style='display:block; white-space:pre;background:#ffe0e0;'>-version 1.8.0_201
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-revision 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version 8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 0
</span> categories java devel
platforms darwin
supported_archs x86_64
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14,40 +14,57 @@ license Restrictive/Distributable
</span> maintainers {outlook.com:usersword123 @usersxx} openmaintainer
description Java 8 Boot JDK
long_description Java 8 Boot JDK to bootstrap Openjdk8 port
<span style='display:block; white-space:pre;background:#ffe0e0;'>-homepage https://javadl.sun.com/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-distfiles AutoDL
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-master_sites ${homepage}webapps/download/${distfiles}?BundleId=236866_42970487e3af4f5aa5bca3f542482c60&dummy=
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums rmd160 b237dd06774127454df314a28fa6b297b50a0dbf \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sha256 5b52df4b3efd51480c40ad5abfa18a075365afbb2040bbc5e9f2db568435a6e2 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- size 257863467
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_extract port:xar
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extract {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- system -W ${workpath} "mkdir -p ${worksrcpath}/packages"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- file copy ${distpath}/${distfiles} ${worksrcpath}/packages
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- system -W ${workpath} "mkdir -p ${worksrcpath}/dmg"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- system -W ${workpath} "mkdir -p ${worksrcpath}/pkg"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- system -W ${workpath} "mkdir -p ${worksrcpath}/files"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- system -W ${worksrcpath}/packages "hdiutil attach ${worksrcpath}/packages/${distfiles} -mountroot ${worksrcpath}/dmg"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- system -W ${worksrcpath}/dmg "cp ${worksrcpath}/dmg/*/*.pkg ${worksrcpath}/pkg"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- system -W ${worksrcpath}/dmg "hdiutil detach ${worksrcpath}/dmg/*"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- system -W ${worksrcpath}/pkg "mv ${worksrcpath}/pkg/*.pkg ${worksrcpath}/pkg/jdk${version}.pkg"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- system -W ${worksrcpath}/pkg "${prefix}/bin/xar -xf ${worksrcpath}/pkg/jdk${version}.pkg -C ${worksrcpath}/files"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- system -W ${worksrcpath} "cpio -i < ${worksrcpath}/files/jdk180201.pkg/Payload"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+homepage https://openjdk.org/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${configure.build_arch} eq "x86_64"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set ver 1.8.0_201
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ master_sites ${homepage}webapps/download/${distfiles}?BundleId=236866_42970487e3af4f5aa5bca3f542482c60&dummy=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ distfiles AutoDL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ checksums rmd160 b237dd06774127454df314a28fa6b297b50a0dbf \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 5b52df4b3efd51480c40ad5abfa18a075365afbb2040bbc5e9f2db568435a6e2 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 257863467
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_extract port:xar
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extract {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ system -W ${workpath} "mkdir -p ${worksrcpath}/packages"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file copy ${distpath}/${distfiles} ${worksrcpath}/packages
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ system -W ${workpath} "mkdir -p ${worksrcpath}/dmg"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ system -W ${workpath} "mkdir -p ${worksrcpath}/pkg"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ system -W ${workpath} "mkdir -p ${worksrcpath}/files"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ system -W ${worksrcpath}/packages "hdiutil attach ${worksrcpath}/packages/${distfiles} -mountroot ${worksrcpath}/dmg"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ system -W ${worksrcpath}/dmg "cp ${worksrcpath}/dmg/*/*.pkg ${worksrcpath}/pkg"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ system -W ${worksrcpath}/dmg "hdiutil detach ${worksrcpath}/dmg/*"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ system -W ${worksrcpath}/pkg "mv ${worksrcpath}/pkg/*.pkg ${worksrcpath}/pkg/jdk${ver}.pkg"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ system -W ${worksrcpath}/pkg "${prefix}/bin/xar -xf ${worksrcpath}/pkg/jdk${ver}.pkg -C ${worksrcpath}/files"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ system -W ${worksrcpath} "cpio -i < ${worksrcpath}/files/jdk180201.pkg/Payload"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ worksrcdir jdk${ver}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} elseif {${configure.build_arch} eq "arm64"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set ver 8.54.0.21
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set openjdk_ver
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ master_sites https://cdn.azul.com/zulu/bin/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ distname zulu${ver}-ca-jdk${openjdk_ver}-macosx_aarch64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ checksums rmd160 cafab852e7263d3b1077b7b37f8d9019f4d3797a \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 2cf0af3118dd4b6244724308b190587804a76ad7919b6da5c377392a1d4f8817 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 105926746
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.cxx_stdlib libstdc++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ worksrcdir ${distname}/zulu-8.jdk
</span> }
use_configure no
build {}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-worksrcdir jdk${version}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-pre-destroot {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # MacPorts report `Contents/Home/jre/lib/libdeploy.dylib` as broken file during `port rev update`
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # see https://trac.macports.org/ticket/65049
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- delete ${worksrcpath}/Contents/Home/jre/lib/libdeploy.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${configure.build_arch} eq "x86_64"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pre-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # MacPorts report `Contents/Home/jre/lib/libdeploy.dylib` as broken file during `port rev update`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # see https://trac.macports.org/ticket/65049
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ delete ${worksrcpath}/Contents/Home/jre/lib/libdeploy.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> }
set path /Library/Java/JavaVirtualMachines/${name}
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/java/openjdk8/Portfile b/java/openjdk8/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index a45594a9173..dda438959cf 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/java/openjdk8/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/java/openjdk8/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -15,14 +15,14 @@ version ${major}u${update}
</span> revision 0
categories java devel
platforms darwin
<span style='display:block; white-space:pre;background:#ffe0e0;'>-supported_archs ppc x86_64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+supported_archs ppc x86_64 arm64
</span> license GPL-2+
maintainers {outlook.com:usersword123 @usersxx} openmaintainer
description OpenJDK 8
long_description JDK 8 and JRE 8 builds of OpenJDK, the Open-Source implementation \
of the Java Platform, Standard Edition, and related projects.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-homepage https://openjdk.java.net/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-master_sites https://git.openjdk.java.net/jdk8u/archive/refs/tags/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+homepage https://openjdk.org/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+master_sites https://git.openjdk.org/jdk8u/archive/refs/tags/
</span> distname jdk${major}u${update}-ga
worksrcdir jdk8u-${distname}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -37,7 +37,8 @@ patchfiles 0001-8181503-Can-t-compile-hotspot-with-c-11.patch \
</span> 0005-os_perf_bsd-allow-to-compile-with-ZERO-CPU.patch \
0006-Disable-C-11-warnings.patch \
0007-Added-macosx-bin-zero-jvm.cfg.patch \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- 0008-ExtendedOptionsImpl.c-define-TCP_KEEPINTVL-and-TCP_K.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 0008-ExtendedOptionsImpl.c-define-TCP_KEEPINTVL-and-TCP_K.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Support-arm64-and-fix-zero-assembler.diff
</span>
# NSFullSizeContentViewWindowMask is available since 10.10
if {${os.platform} eq "darwin" && ${os.major} < 14} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -58,7 +59,10 @@ if {${configure.build_arch} eq "ppc"} {
</span> set datamodel 32
} elseif {${configure.build_arch} eq "x86_64"} {
set datamodel 64
<span style='display:block; white-space:pre;background:#e0ffe0;'>+} elseif {${configure.build_arch} eq "arm64"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set datamodel 64
</span> }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> configure.cmd ${prefix}/bin/bash ./configure
configure.pre_args --prefix=${tpath}
set bug_url "https://trac.macports.org/newticket?port=${name}"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -72,8 +76,8 @@ configure.args --with-boot-jdk \
</span> --with-extra-cxxflags="${configure.cxxflags}" \
--with-extra-ldflags="${configure.ldflags}" \
--with-milestone=fcs \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- --with-vendor-name="OpenJDK Porters Group" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- --with-vendor-url="${homepage}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --with-vendor-name="MacPorts" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --with-vendor-url="https://www.macports.org" \
</span> --with-vendor-bug-url="${bug_url}" \
--with-vendor-vm-bug-url="${bug_url}" \
--with-update-version=${update} \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -163,8 +167,12 @@ variant zero \
</span> set archuc [string toupper ${configure.build_arch}]
depends_lib-append port:libffi
configure.args-append --with-jvm-variants=zero \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- --with-extra-cflags="${configure.cflags} -I${prefix}/include -arch ${configure.build_arch}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-delete --with-extra-cflags="${configure.cflags}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --with-extra-cflags="${configure.cflags} -I${prefix}/include -arch ${configure.build_arch}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --with-extra-cxxflags="${configure.cxxflags} -arch ${configure.build_arch}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --with-extra-ldflags="${configure.ldflags} -I${prefix}/lib -arch ${configure.build_arch}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-delete --with-extra-cflags="${configure.cflags}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --with-extra-cxxflags="${configure.cxxflags}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --with-extra-ldflags="${configure.ldflags}"
</span> }
variant zeroshark \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -172,9 +180,13 @@ variant zeroshark \
</span> description {JVM with no assembler, zero interpreter and shark/llvm compiler backend} {
set archuc [string toupper ${configure.build_arch}]
depends_lib-append port:libffi
<span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append --with-jvm-variants=zero \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- --with-extra-cflags="${configure.cflags} -I${prefix}/include -arch ${configure.build_arch}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-delete --with-extra-cflags="${configure.cflags}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append --with-jvm-variants=zeroshark \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --with-extra-cflags="${configure.cflags} -I${prefix}/include -arch ${configure.build_arch}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --with-extra-cxxflags="${configure.cxxflags} -arch ${configure.build_arch}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --with-extra-ldflags="${configure.ldflags} -I${prefix}/lib -arch ${configure.build_arch}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-delete --with-extra-cflags="${configure.cflags}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --with-extra-cxxflags="${configure.cxxflags}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --with-extra-ldflags="${configure.ldflags}"
</span> }
if {![variant_isset debug] && ![variant_isset release]} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -185,7 +197,11 @@ if {![variant_isset core] && ![variant_isset zeroshark] && ![variant_isset zero]
</span> if {${os.major} < 14} {
default_variants-append +zero
} else {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- default_variants-append +server
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${configure.build_arch} eq "x86_64"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ default_variants-append +server
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } elseif {${configure.build_arch} eq "arm64"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ default_variants-append +zero
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> }
}
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/java/openjdk8/files/Support-arm64-and-fix-zero-assembler.diff b/java/openjdk8/files/Support-arm64-and-fix-zero-assembler.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..c1f56450b3f
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/java/openjdk8/files/Support-arm64-and-fix-zero-assembler.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,318 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 13838d9d34..d45973a917 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -370,7 +370,7 @@ int CppInterpreter::native_entry(Method* method, intptr_t UNUSED, TRAPS) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // Make the call
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ intptr_t result[4 - LogBytesPerWord];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ffi_call(handler->cif(), (void (*)()) function, result, arguments);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ffi_call(handler->cif(), CAST_TO_FN_PTR(void (*)(), function), result, arguments);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // Change the thread state back to _thread_in_Java.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // ThreadStateTransition::transition_from_native() cannot be used
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git hotspot/src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp hotspot/src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 9bbabfbcf9..a0ae9201f8 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- hotspot/src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ hotspot/src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -381,42 +381,42 @@ extern "C" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- void _Copy_conjoint_jshorts_atomic(jshort* from, jshort* to, size_t count) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void _Copy_conjoint_jshorts_atomic(const jshort* from, jshort* to, size_t count) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (from > to) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- jshort *end = from + count;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ const jshort *end = from + count;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ while (from < end)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *(to++) = *(from++);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else if (from < to) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- jshort *end = from;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ const jshort *end = from + count;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from += count - 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ to += count - 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ while (from >= end)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *(to--) = *(from--);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- void _Copy_conjoint_jints_atomic(jint* from, jint* to, size_t count) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void _Copy_conjoint_jints_atomic(const jint* from, jint* to, size_t count) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (from > to) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- jint *end = from + count;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ const jint *end = from + count;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ while (from < end)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *(to++) = *(from++);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else if (from < to) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- jint *end = from;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ const jint *end = from;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from += count - 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ to += count - 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ while (from >= end)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *(to--) = *(from--);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- void _Copy_conjoint_jlongs_atomic(jlong* from, jlong* to, size_t count) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void _Copy_conjoint_jlongs_atomic(const jlong* from, jlong* to, size_t count) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (from > to) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- jlong *end = from + count;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ const jlong *end = from + count;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ while (from < end)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ os::atomic_copy64(from++, to++);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else if (from < to) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- jlong *end = from;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ const jlong *end = from;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from += count - 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ to += count - 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ while (from >= end)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -424,22 +424,22 @@ extern "C" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- void _Copy_arrayof_conjoint_bytes(HeapWord* from,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void _Copy_arrayof_conjoint_bytes(const HeapWord* from,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ HeapWord* to,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size_t count) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ memmove(to, from, count);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- void _Copy_arrayof_conjoint_jshorts(HeapWord* from,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void _Copy_arrayof_conjoint_jshorts(const HeapWord* from,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ HeapWord* to,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size_t count) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ memmove(to, from, count * 2);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- void _Copy_arrayof_conjoint_jints(HeapWord* from,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void _Copy_arrayof_conjoint_jints(const HeapWord* from,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ HeapWord* to,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size_t count) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ memmove(to, from, count * 4);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- void _Copy_arrayof_conjoint_jlongs(HeapWord* from,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void _Copy_arrayof_conjoint_jlongs(const HeapWord* from,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ HeapWord* to,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size_t count) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ memmove(to, from, count * 8);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 84d29b2113..a71f4b7855 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -412,42 +412,42 @@ extern "C" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- void _Copy_conjoint_jshorts_atomic(jshort* from, jshort* to, size_t count) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void _Copy_conjoint_jshorts_atomic(const jshort* from, jshort* to, size_t count) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (from > to) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- jshort *end = from + count;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ const jshort *end = from + count;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ while (from < end)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *(to++) = *(from++);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else if (from < to) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- jshort *end = from;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ const jshort *end = from;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from += count - 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ to += count - 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ while (from >= end)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *(to--) = *(from--);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- void _Copy_conjoint_jints_atomic(jint* from, jint* to, size_t count) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void _Copy_conjoint_jints_atomic(const jint* from, jint* to, size_t count) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (from > to) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- jint *end = from + count;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ const jint *end = from + count;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ while (from < end)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *(to++) = *(from++);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else if (from < to) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- jint *end = from;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ const jint *end = from;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from += count - 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ to += count - 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ while (from >= end)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *(to--) = *(from--);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- void _Copy_conjoint_jlongs_atomic(jlong* from, jlong* to, size_t count) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void _Copy_conjoint_jlongs_atomic(const jlong* from, jlong* to, size_t count) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (from > to) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- jlong *end = from + count;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ const jlong *end = from + count;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ while (from < end)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ os::atomic_copy64(from++, to++);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else if (from < to) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- jlong *end = from;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ const jlong *end = from;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from += count - 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ to += count - 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ while (from >= end)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -455,22 +455,22 @@ extern "C" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- void _Copy_arrayof_conjoint_bytes(HeapWord* from,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void _Copy_arrayof_conjoint_bytes(const HeapWord* from,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ HeapWord* to,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size_t count) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ memmove(to, from, count);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- void _Copy_arrayof_conjoint_jshorts(HeapWord* from,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void _Copy_arrayof_conjoint_jshorts(const HeapWord* from,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ HeapWord* to,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size_t count) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ memmove(to, from, count * 2);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- void _Copy_arrayof_conjoint_jints(HeapWord* from,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void _Copy_arrayof_conjoint_jshorts(const HeapWord* from,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ HeapWord* to,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size_t count) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ memmove(to, from, count * 4);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- void _Copy_arrayof_conjoint_jlongs(HeapWord* from,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void _Copy_arrayof_conjoint_jshorts(const HeapWord* from,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ HeapWord* to,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size_t count) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ memmove(to, from, count * 8);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git hotspot/src/share/vm/runtime/java.cpp hotspot/src/share/vm/runtime/java.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0a263b017c..b36671fb2d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- hotspot/src/share/vm/runtime/java.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ hotspot/src/share/vm/runtime/java.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -60,6 +60,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "runtime/thread.inline.hpp"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "runtime/timer.hpp"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "runtime/vm_operations.hpp"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "runtime/vmThread.hpp"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "services/memTracker.hpp"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "utilities/dtrace.hpp"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "utilities/globalDefinitions.hpp"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git hotspot/src/share/vm/runtime/sharedRuntime.cpp hotspot/src/share/vm/runtime/sharedRuntime.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5f540247f9..41e3dc9254 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- hotspot/src/share/vm/runtime/sharedRuntime.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ hotspot/src/share/vm/runtime/sharedRuntime.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -108,12 +108,14 @@ UncommonTrapBlob* SharedRuntime::_uncommon_trap_blob;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ //----------------------------generate_stubs-----------------------------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void SharedRuntime::generate_stubs() {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef ZERO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ _wrong_method_blob = generate_resolve_blob(CAST_FROM_FN_PTR(address, SharedRuntime::handle_wrong_method), "wrong_method_stub");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ _wrong_method_abstract_blob = generate_resolve_blob(CAST_FROM_FN_PTR(address, SharedRuntime::handle_wrong_method_abstract), "wrong_method_abstract_stub");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ _ic_miss_blob = generate_resolve_blob(CAST_FROM_FN_PTR(address, SharedRuntime::handle_wrong_method_ic_miss), "ic_miss_stub");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ _resolve_opt_virtual_call_blob = generate_resolve_blob(CAST_FROM_FN_PTR(address, SharedRuntime::resolve_opt_virtual_call_C), "resolve_opt_virtual_call");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ _resolve_virtual_call_blob = generate_resolve_blob(CAST_FROM_FN_PTR(address, SharedRuntime::resolve_virtual_call_C), "resolve_virtual_call");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ _resolve_static_call_blob = generate_resolve_blob(CAST_FROM_FN_PTR(address, SharedRuntime::resolve_static_call_C), "resolve_static_call");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef COMPILER2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // Vectors are generated only by C2.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2384,7 +2386,12 @@ void AdapterHandlerLibrary::initialize() {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // throw AbstractMethodError just in case.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // Pass wrong_method_abstract for the c2i transitions to return
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // AbstractMethodError for invalid invocations.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- address wrong_method_abstract = SharedRuntime::get_handle_wrong_method_abstract_stub();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ address wrong_method_abstract =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef ZERO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ SharedRuntime::get_handle_wrong_method_abstract_stub();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ _abstract_method_handler = AdapterHandlerLibrary::new_entry(new AdapterFingerPrint(0, NULL),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ StubRoutines::throw_AbstractMethodError_entry(),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ wrong_method_abstract, wrong_method_abstract);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git hotspot/src/share/vm/runtime/stubRoutines.cpp hotspot/src/share/vm/runtime/stubRoutines.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d943248da0..5fc5f7618b 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- hotspot/src/share/vm/runtime/stubRoutines.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ hotspot/src/share/vm/runtime/stubRoutines.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -201,18 +201,21 @@ static void test_arraycopy_func(address func, int alignment) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // Use middle of array to check that memory before it is not modified.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ address buffer = (address) round_to((intptr_t)&lbuffer[4], BytesPerLong);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ address buffer2 = (address) round_to((intptr_t)&lbuffer2[4], BytesPerLong);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ arraycopy_fn copyfunc = CAST_TO_FN_PTR(arraycopy_fn, func);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // do an aligned copy
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ((arraycopy_fn)func)(buffer, buffer2, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ copyfunc(buffer, buffer2, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for (i = 0; i < sizeof(lbuffer); i++) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ assert(fbuffer[i] == v && fbuffer2[i] == v2, "shouldn't have copied anything");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // adjust destination alignment
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ((arraycopy_fn)func)(buffer, buffer2 + alignment, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ copyfunc(buffer, buffer2 + alignment, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for (i = 0; i < sizeof(lbuffer); i++) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ assert(fbuffer[i] == v && fbuffer2[i] == v2, "shouldn't have copied anything");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // adjust source alignment
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ((arraycopy_fn)func)(buffer + alignment, buffer2, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ copyfunc(buffer + alignment, buffer2, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for (i = 0; i < sizeof(lbuffer); i++) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ assert(fbuffer[i] == v && fbuffer2[i] == v2, "shouldn't have copied anything");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git hotspot/src/share/vm/runtime/virtualspace.cpp hotspot/src/share/vm/runtime/virtualspace.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 66392b75f1..521afe6b1c 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- hotspot/src/share/vm/runtime/virtualspace.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ hotspot/src/share/vm/runtime/virtualspace.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -356,7 +356,12 @@ ReservedHeapSpace::ReservedHeapSpace(size_t size, size_t alignment,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ReservedCodeSpace::ReservedCodeSpace(size_t r_size,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size_t rs_align,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool large) :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef __arm64__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ReservedSpace(r_size, rs_align, large, /*executable*/ false) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ReservedSpace(r_size, rs_align, large, /*executable*/ true) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ MemTracker::record_virtual_memory_type((address)base(), mtCode);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git jdk/src/macosx/bin/java_md_macosx.c jdk/src/macosx/bin/java_md_macosx.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6aa0eb588a..098c229bf3 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- jdk/src/macosx/bin/java_md_macosx.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ jdk/src/macosx/bin/java_md_macosx.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -228,6 +228,8 @@ static InvocationFunctions *GetExportedJNIFunctions() {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ preferredJVM = "client";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined(__x86_64__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ preferredJVM = "server";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#elif defined(__arm64__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ preferredJVM = "zero";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #error "Unknown architecture - needs definition"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git jdk/src/macosx/native/sun/awt/AWTView.m jdk/src/macosx/native/sun/awt/AWTView.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 29dd6410ea..cd43be6bc4 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- jdk/src/macosx/native/sun/awt/AWTView.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ jdk/src/macosx/native/sun/awt/AWTView.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -37,7 +37,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #import "JavaTextAccessibility.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #import "JavaAccessibilityUtilities.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #import "GeomUtilities.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#import "OSVersion.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #import "CGLLayer.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @interface AWTView()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -54,13 +53,6 @@ -(BOOL) isCodePointInUnicodeBlockNeedingIMEvent: (unichar) codePoint;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ //#define IM_DEBUG TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ //#define EXTRA_DEBUG
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-static BOOL shouldUsePressAndHold() {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- static int shouldUsePressAndHold = -1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (shouldUsePressAndHold != -1) return shouldUsePressAndHold;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- shouldUsePressAndHold = !isSnowLeopardOrLower();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return shouldUsePressAndHold;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @implementation AWTView
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @synthesize _dropTarget;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -83,7 +75,7 @@ - (id) initWithRect: (NSRect) rect
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fKeyEventsNeeded = NO;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fProcessingKeystroke = NO;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- fEnablePressAndHold = shouldUsePressAndHold();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fEnablePressAndHold = YES;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fInPressAndHold = NO;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fPAHNeedsToSelect = NO;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span></pre><pre style='margin:0'>
</pre>