diff options
Diffstat (limited to 'gnu/packages')
-rw-r--r-- | gnu/packages/java.scm | 388 | ||||
-rw-r--r-- | gnu/packages/patches/icedtea-6-extend-hotspot-aarch64-support.patch | 1831 |
2 files changed, 0 insertions, 2219 deletions
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 51d8ff66a1..facf4fe793 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -885,394 +885,6 @@ supports sufficient parts of Java 7 to build Icedtea 2.x.") (modify-inputs (package-inputs jamvm) (replace "ecj-javac-wrapper" ecj4-javac-wrapper))))) -;; The bootstrap JDK consisting of jamvm, classpath-devel, -;; ecj-javac-wrapper-final cannot build Icedtea 2.x directly, because it's -;; written in Java 7. It can, however, build the unmaintained Icedtea 1.x, -;; which uses Java 6 only. -(define-public icedtea-6 - (package - (name "icedtea") - (version "1.13.13") - (source (origin - (method url-fetch) - (uri (string-append - "http://icedtea.wildebeest.org/download/source/icedtea6-" - version ".tar.xz")) - (sha256 - (base32 - "0bg9sb4f7qbq77c0zf9m17p47ga0kf0r9622g9p12ysg26jd1ksg")) - (patches (search-patches - "icedtea-6-extend-hotspot-aarch64-support.patch")) - (modules '((guix build utils))) - (snippet - '(begin - (substitute* "Makefile.in" - ;; do not leak information about the build host - (("DISTRIBUTION_ID=\"\\$\\(DIST_ID\\)\"") - "DISTRIBUTION_ID=\"\\\"guix\\\"\"")) - #t)))) - (build-system gnu-build-system) - (outputs '("out" ; Java Runtime Environment - "jdk" ; Java Development Kit - "doc")) ; all documentation - (arguments - `(;; There are many failing tests and many are known to fail upstream. - #:tests? #f - - ;; The DSOs use $ORIGIN to refer to each other, but (guix build - ;; gremlin) doesn't support it yet, so skip this phase. - #:validate-runpath? #f - - #:modules ((guix build utils) - (guix build gnu-build-system) - (srfi srfi-19)) - - #:configure-flags - `("--enable-bootstrap" - "--enable-nss" - "--without-rhino" - ,(string-append "--with-parallel-jobs=" - (number->string (parallel-job-count))) - "--disable-downloading" - "--disable-tests" - ,(string-append "--with-ecj=" - (assoc-ref %build-inputs "ecj") - "/share/java/ecj-bootstrap.jar") - ,(string-append "--with-jar=" - (assoc-ref %build-inputs "fastjar") - "/bin/fastjar") - ,(string-append "--with-jdk-home=" - (assoc-ref %build-inputs "classpath")) - ,(string-append "--with-java=" - (assoc-ref %build-inputs "jamvm") - "/bin/jamvm")) - #:phases - (modify-phases %standard-phases - (replace 'unpack - (lambda* (#:key source inputs #:allow-other-keys) - (invoke "tar" "xvf" source) - (chdir (string-append "icedtea6-" ,version)) - (mkdir "openjdk") - (copy-recursively (assoc-ref inputs "openjdk-src") "openjdk") - ;; The convenient OpenJDK source bundle is no longer - ;; available for download, so we have to take the sources - ;; from the Mercurial repositories and change the Makefile - ;; to avoid tests for the OpenJDK zip archive. - (with-directory-excursion "openjdk" - (for-each (lambda (part) - (mkdir part) - (copy-recursively - (assoc-ref inputs - (string-append part "-src")) - part)) - '("jdk" "hotspot" "corba" - "langtools" "jaxp" "jaxws"))) - (substitute* "patches/freetypeversion.patch" - (("REQUIRED_FREETYPE_VERSION = 2.2.1") - "REQUIRED_FREETYPE_VERSION = 2.10.1")) - (substitute* "Makefile.in" - (("echo \"ERROR: No up-to-date OpenJDK zip available\"; exit -1;") - "echo \"trust me\";") - ;; The contents of the bootstrap directory must be - ;; writeable but when copying from the store they are - ;; not. - (("mkdir -p lib/rt" line) - (string-append line "; chmod -R u+w $(BOOT_DIR)"))) - (invoke "chmod" "-R" "u+w" "openjdk"))) - (add-after 'unpack 'use-classpath - (lambda* (#:key inputs #:allow-other-keys) - (let ((jvmlib (assoc-ref inputs "classpath")) - (jamvm (assoc-ref inputs "jamvm"))) - ;; Classpath does not provide rt.jar. - (substitute* "Makefile.in" - (("\\$\\(SYSTEM_JDK_DIR\\)/jre/lib/rt.jar") - (string-append jvmlib "/share/classpath/glibj.zip"))) - ;; Make sure we can find all classes. - (setenv "CLASSPATH" - (string-append jvmlib "/share/classpath/glibj.zip:" - jvmlib "/share/classpath/tools.zip:" - jamvm "/lib/rt.jar")) - (setenv "JAVACFLAGS" - (string-append "-cp " - jvmlib "/share/classpath/glibj.zip:" - jvmlib "/share/classpath/tools.zip"))) - #t)) - (add-after 'unpack 'patch-patches - (lambda _ - ;; shebang in patches so that they apply cleanly - (substitute* '("patches/jtreg-jrunscript.patch" - "patches/hotspot/hs23/drop_unlicensed_test.patch") - (("#!/bin/sh") (string-append "#!" (which "sh")))) - #t)) - (add-after 'unpack 'fix-openjdk - (lambda _ - (substitute* "openjdk/jdk/make/common/Defs-linux.gmk" - (("CFLAGS_COMMON = -fno-strict-aliasing" all) - (string-append all " -fcommon"))) - (substitute* "openjdk/hotspot/src/share/vm/code/relocInfo.hpp" - (("inline friend relocInfo prefix_relocInfo\\(int datalen = 0\\);") - "inline friend relocInfo prefix_relocInfo(int datalen);")) - (substitute* - '("openjdk/jdk/src/solaris/native/java/net/PlainSocketImpl.c" - "openjdk/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c") - (("#include <sys/sysctl.h>") - "#include <linux/sysctl.h>")) - ;; It looks like the "h = 31 * h + c" line of the jsum() - ;; function gets miscompiled. After a few iterations of the loop - ;; the result of "31 * h" is always 0x8000000000000000. - ;; Bad optimization maybe... - ;; Transform "31 * h + c" into a convoluted "32 * h + c - h" - ;; as a workaround. - (substitute* "openjdk/hotspot/src/share/vm/memory/dump.cpp" - (("h = 31 \\* h \\+ c;") - "jlong h0 = h;\nfor(int i = 0; i < 5; i++) h += h;\nh += c - h0;")) - ;; Our gcc version is higher than 4.3; replace the failing - ;; expression to test this by its result. - (substitute* "openjdk/jdk/make/sun/font/Makefile" - (("\"\\$\\(shell expr.*0\"") - "\"1\" \"0\"")))) - (add-after 'unpack 'patch-paths - (lambda* (#:key inputs #:allow-other-keys) - ;; buildtree.make generates shell scripts, so we need to replace - ;; the generated shebang - (substitute* '("openjdk/hotspot/make/linux/makefiles/buildtree.make") - (("/bin/sh") (which "bash"))) - - (let ((corebin (string-append - (assoc-ref inputs "coreutils") "/bin/")) - (binbin (string-append - (assoc-ref inputs "binutils") "/bin/")) - (grepbin (string-append - (assoc-ref inputs "grep") "/bin/"))) - (substitute* '("openjdk/jdk/make/common/shared/Defs-linux.gmk" - "openjdk/corba/make/common/shared/Defs-linux.gmk") - (("UNIXCOMMAND_PATH = /bin/") - (string-append "UNIXCOMMAND_PATH = " corebin)) - (("USRBIN_PATH = /usr/bin/") - (string-append "USRBIN_PATH = " corebin)) - (("DEVTOOLS_PATH *= */usr/bin/") - (string-append "DEVTOOLS_PATH = " corebin)) - (("COMPILER_PATH *= */usr/bin/") - (string-append "COMPILER_PATH = " - (assoc-ref inputs "gcc") "/bin/")) - (("DEF_OBJCOPY *=.*objcopy") - (string-append "DEF_OBJCOPY = " (which "objcopy")))) - - ;; fix path to alsa header - (substitute* "openjdk/jdk/make/common/shared/Sanity.gmk" - (("ALSA_INCLUDE=/usr/include/alsa/version.h") - (string-append "ALSA_INCLUDE=" - (assoc-ref inputs "alsa-lib") - "/include/alsa/version.h"))) - - ;; fix hard-coded utility paths - (substitute* '("openjdk/jdk/make/common/shared/Defs-utils.gmk" - "openjdk/corba/make/common/shared/Defs-utils.gmk") - (("ECHO *=.*echo") - (string-append "ECHO = " (which "echo"))) - (("^GREP *=.*grep") - (string-append "GREP = " (which "grep"))) - (("EGREP *=.*egrep") - (string-append "EGREP = " (which "egrep"))) - (("CPIO *=.*cpio") - (string-append "CPIO = " (which "cpio"))) - (("READELF *=.*readelf") - (string-append "READELF = " (which "readelf"))) - (("^ *AR *=.*ar") - (string-append "AR = " (which "ar"))) - (("^ *TAR *=.*tar") - (string-append "TAR = " (which "tar"))) - (("AS *=.*as") - (string-append "AS = " (which "as"))) - (("LD *=.*ld") - (string-append "LD = " (which "ld"))) - (("STRIP *=.*strip") - (string-append "STRIP = " (which "strip"))) - (("NM *=.*nm") - (string-append "NM = " (which "nm"))) - (("^SH *=.*sh") - (string-append "SH = " (which "bash"))) - (("^FIND *=.*find") - (string-append "FIND = " (which "find"))) - (("LDD *=.*ldd") - (string-append "LDD = " (which "ldd"))) - (("NAWK *=.*(n|g)awk") - (string-append "NAWK = " (which "gawk"))) - (("XARGS *=.*xargs") - (string-append "XARGS = " (which "xargs"))) - (("UNZIP *=.*unzip") - (string-append "UNZIP = " (which "unzip"))) - (("ZIPEXE *=.*zip") - (string-append "ZIPEXE = " (which "zip"))) - (("SED *=.*sed") - (string-append "SED = " (which "sed")))) - - ;; Some of these timestamps cause problems as they are more than - ;; 10 years ago, failing the build process. - (substitute* - "openjdk/jdk/src/share/classes/java/util/CurrencyData.properties" - (("AZ=AZM;2005-12-31-20-00-00;AZN") "AZ=AZN") - (("MZ=MZM;2006-06-30-22-00-00;MZN") "MZ=MZN") - (("RO=ROL;2005-06-30-21-00-00;RON") "RO=RON") - (("TR=TRL;2004-12-31-22-00-00;TRY") "TR=TRY")) - #t))) - (add-before 'configure 'set-additional-paths - (lambda* (#:key inputs #:allow-other-keys) - (setenv "CPATH" - (string-append (assoc-ref inputs "libxrender") - "/include/X11/extensions" ":" - (assoc-ref inputs "libxtst") - "/include/X11/extensions" ":" - (assoc-ref inputs "libxinerama") - "/include/X11/extensions" ":" - (or (getenv "CPATH") ""))) - (setenv "ALT_CUPS_HEADERS_PATH" - (string-append (assoc-ref inputs "cups") - "/include")) - (setenv "ALT_FREETYPE_HEADERS_PATH" - (string-append (assoc-ref inputs "freetype") - "/include")) - (setenv "ALT_FREETYPE_LIB_PATH" - (string-append (assoc-ref inputs "freetype") - "/lib")) - #t)) - (add-before 'build 'disable-os-version-check - ;; allow build on linux major version change - (lambda _ - (setenv "DISABLE_HOTSPOT_OS_VERSION_CHECK" "ok") - #t)) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((doc (string-append (assoc-ref outputs "doc") - "/share/doc/icedtea")) - (jre (assoc-ref outputs "out")) - (jdk (assoc-ref outputs "jdk"))) - (copy-recursively "openjdk.build/docs" doc) - (copy-recursively "openjdk.build/j2re-image" jre) - (copy-recursively "openjdk.build/j2sdk-image" jdk)) - #t))))) - (native-inputs - `(("ant" ,ant-bootstrap) - ("alsa-lib" ,alsa-lib) - ("attr" ,attr) - ("classpath" ,classpath-devel) - ("coreutils" ,coreutils) - ("cpio" ,cpio) - ("cups" ,cups) - ("ecj" ,ecj-bootstrap) - ("ecj-javac" ,ecj-javac-wrapper-final) - ("fastjar" ,fastjar) - ("fontconfig" ,fontconfig) - ("freetype" ,freetype) - ("gtk" ,gtk+-2) - ("gawk" ,gawk) - ("giflib" ,giflib) - ("grep" ,grep) - ("jamvm" ,jamvm) - ("lcms" ,lcms) - ("libjpeg" ,libjpeg-turbo) - ("libnsl" ,libnsl) - ("libpng" ,libpng) - ("libtool" ,libtool) - ("libx11" ,libx11) - ("libxcomposite" ,libxcomposite) - ("libxi" ,libxi) - ("libxinerama" ,libxinerama) - ("libxrender" ,libxrender) - ("libxslt" ,libxslt) ;for xsltproc - ("libxt" ,libxt) - ("libxtst" ,libxtst) - ("mit-krb5" ,mit-krb5) - ("nss" ,nss) - ("nss-certs" ,nss-certs) - ("perl" ,perl) - ("pkg-config" ,pkg-config) - ("procps" ,procps) ;for "free", even though I'm not sure we should use it - ("unzip" ,unzip) - ("wget" ,wget) - ("which" ,which) - ("zip" ,zip) - ("zlib" ,zlib) - ("openjdk-src" - ,(origin - (method hg-fetch) - (uri (hg-reference - (url "http://hg.openjdk.java.net/jdk6/jdk6/") - (changeset "jdk6-b41"))) - (file-name "jdk6-checkout") - (sha256 - (base32 - "14q47yfg586fs64w30g8mk92m5dkxsvr36zzh0ra99xk5x0x96mv")))) - ("jdk-src" - ,(origin - (method hg-fetch) - (uri (hg-reference - (url "http://hg.openjdk.java.net/jdk6/jdk6/jdk/") - (changeset "jdk6-b41"))) - (file-name "jdk-checkout") - (sha256 - (base32 - "165824nhg1k1dx6zs9dny0j49rmk35jw5b13dmz8c77jfajml4v9")))) - ("hotspot-src" - ,(origin - (method hg-fetch) - (uri (hg-reference - (url "http://hg.openjdk.java.net/jdk6/jdk6/hotspot/") - (changeset "jdk6-b41"))) - (file-name "hotspot-checkout") - (sha256 - (base32 - "07lc1z4k5dj9nrc1wvwmpvxr3xgxrdkdh53xb95skk5ij49yagfd")))) - ("corba-src" - ,(origin - (method hg-fetch) - (uri (hg-reference - (url "http://hg.openjdk.java.net/jdk6/jdk6/corba/") - (changeset "jdk6-b41"))) - (file-name "corba-checkout") - (sha256 - (base32 - "1p9g1r9dnax2iwp7yb59qx7m4nmshqhwmrb2b8jj8zgbd9dl2i3q")))) - ("langtools-src" - ,(origin - (method hg-fetch) - (uri (hg-reference - (url "http://hg.openjdk.java.net/jdk6/jdk6/langtools/") - (changeset "jdk6-b41"))) - (file-name "langtools-checkout") - (sha256 - (base32 - "1x52wd67fynbbd9ild6fb4wvba3f5hhwk03qdjfazd0a1qr37z3d")))) - ("jaxp-src" - ,(origin - (method hg-fetch) - (uri (hg-reference - (url "http://hg.openjdk.java.net/jdk6/jdk6/jaxp/") - (changeset "jdk6-b41"))) - (file-name "jaxp-checkout") - (sha256 - (base32 - "0shlqrvzpr4nrkmv215lbxnby63s3yvbdh1yxcayznsyqwa4nlxm")))) - ("jaxws-src" - ,(origin - (method hg-fetch) - (uri (hg-reference - (url "http://hg.openjdk.java.net/jdk6/jdk6/jaxws/") - (changeset "jdk6-b41"))) - (file-name "jaxws-checkout") - (sha256 - (base32 - "0835lkw8vib1xhp8lxnybhlvzdh699hbi4mclxanydjk63zbpxk0")))))) - (home-page "http://icedtea.classpath.org") - (synopsis "Java development kit") - (description - "This package provides the OpenJDK built with the IcedTea build harness. -This version of the OpenJDK is no longer maintained and is only used for -bootstrapping purposes.") - ;; IcedTea is released under the GPL2 + Classpath exception, which is the - ;; same license as both GNU Classpath and OpenJDK. - (license license:gpl2+))) - (define-public icedtea-7 (let* ((version "2.6.13") (drop (lambda (name hash) diff --git a/gnu/packages/patches/icedtea-6-extend-hotspot-aarch64-support.patch b/gnu/packages/patches/icedtea-6-extend-hotspot-aarch64-support.patch deleted file mode 100644 index 9dc112a344..0000000000 --- a/gnu/packages/patches/icedtea-6-extend-hotspot-aarch64-support.patch +++ /dev/null @@ -1,1831 +0,0 @@ -From d51cb8c0f7966ac0b870e90e421cc8a796d98abf Mon Sep 17 00:00:00 2001 -From: Simon South <simon@simonsouth.net> -Date: Tue, 9 Jun 2020 13:48:42 -0400 -Subject: [PATCH] Extend AArch64 support - -This adds to IcedTea 6 a patch that extends the support for AArch64 in -its version of HotSpot, allowing the portable Zero virtual machine to -be built for that platform. - -The patch added is a backport of the one prepared for JDK 9 by the -OpenJDK AArch64 Porting Project, available (as of 11 June 2020) for -download from https://openjdk.java.net/jeps/237. ---- - Makefile.am | 3 +- - Makefile.in | 12 +- - .../hs23/aarch64-extended-support.patch | 1766 +++++++++++++++++ - 3 files changed, 1775 insertions(+), 6 deletions(-) - create mode 100644 patches/hotspot/hs23/aarch64-extended-support.patch - -diff --git a/Makefile.am b/Makefile.am -index 97dac85..f5c917b 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -621,7 +621,8 @@ ICEDTEA_PATCHES = \ - patches/openjdk/6260348-pr3068.patch \ - patches/openjdk/6961123-pr2975.patch \ - patches/pr2800-missing_resources.patch \ -- patches/pr3213-conditional_arm32jit.patch -+ patches/pr3213-conditional_arm32jit.patch \ -+ patches/hotspot/hs23/aarch64-extended-support.patch - - if WITH_RHINO - ICEDTEA_PATCHES += \ -diff --git a/Makefile.in b/Makefile.in -index aced7c2..e3545ee 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -1049,11 +1049,13 @@ ICEDTEA_PATCHES = $(DROP_PATCHES) $(SECURITY_PATCHES) \ - patches/openjdk/6260348-pr3068.patch \ - patches/openjdk/6961123-pr2975.patch \ - patches/pr2800-missing_resources.patch \ -- patches/pr3213-conditional_arm32jit.patch $(am__append_21) \ -- $(am__append_22) $(am__append_23) $(am__append_24) \ -- $(am__append_25) $(am__append_26) $(am__append_27) \ -- $(am__append_28) $(am__append_29) $(am__append_30) \ -- $(am__append_31) $(am__append_32) $(DISTRIBUTION_PATCHES) -+ patches/pr3213-conditional_arm32jit.patch \ -+ patches/hotspot/hs23/aarch64-extended-support.patch \ -+ $(am__append_21) $(am__append_22) $(am__append_23) \ -+ $(am__append_24) $(am__append_25) $(am__append_26) \ -+ $(am__append_27) $(am__append_28) $(am__append_29) \ -+ $(am__append_30) $(am__append_31) $(am__append_32) \ -+ $(DISTRIBUTION_PATCHES) - @ENABLE_NSS_FALSE@NSS_PATCHES = patches/nss-not-enabled-config.patch - @ENABLE_NSS_TRUE@NSS_PATCHES = patches/nss-config.patch - -diff --git a/patches/hotspot/hs23/aarch64-extended-support.patch b/patches/hotspot/hs23/aarch64-extended-support.patch -new file mode 100644 -index 0000000..7817f4d ---- /dev/null -+++ b/patches/hotspot/hs23/aarch64-extended-support.patch -@@ -0,0 +1,1766 @@ -+diff --git openjdk.orig/hotspot/agent/src/os/linux/LinuxDebuggerLocal.c openjdk/hotspot/agent/src/os/linux/LinuxDebuggerLocal.c -+index 5771fdd..b23cc17 100644 -+--- openjdk.orig/hotspot/agent/src/os/linux/LinuxDebuggerLocal.c -++++ openjdk/hotspot/agent/src/os/linux/LinuxDebuggerLocal.c -+@@ -304,6 +304,9 @@ JNIEXPORT jlongArray JNICALL Java_sun_jvm_hotspot_debugger_linux_LinuxDebuggerLo -+ #ifdef amd64 -+ #define NPRGREG sun_jvm_hotspot_debugger_amd64_AMD64ThreadContext_NPRGREG -+ #endif -++#ifdef aarch64 -++#define NPRGREG 32 -++#endif -+ #if defined(sparc) || defined(sparcv9) -+ #define NPRGREG sun_jvm_hotspot_debugger_sparc_SPARCThreadContext_NPRGREG -+ #endif -+@@ -406,6 +409,12 @@ JNIEXPORT jlongArray JNICALL Java_sun_jvm_hotspot_debugger_linux_LinuxDebuggerLo -+ regs[REG_INDEX(R_O7)] = gregs.u_regs[14]; -+ #endif /* sparc */ -+ -++#if defined(aarch64) -++ -++#define REG_INDEX(reg) sun_jvm_hotspot_debugger_aarch64_AARCH64ThreadContext_##reg -++ -++#endif /* aarch64 */ -++ -+ -+ (*env)->ReleaseLongArrayElements(env, array, regs, JNI_COMMIT); -+ return array; -+diff --git openjdk.orig/hotspot/agent/src/os/linux/libproc.h openjdk/hotspot/agent/src/os/linux/libproc.h -+index e4d77f7..c02b841 100644 -+--- openjdk.orig/hotspot/agent/src/os/linux/libproc.h -++++ openjdk/hotspot/agent/src/os/linux/libproc.h -+@@ -54,6 +54,10 @@ struct pt_regs { -+ -+ #endif //sparc or sparcv9 -+ -++#if defined(aarch64) -++#include "asm/ptrace.h" -++#endif -++ -+ /************************************************************************************ -+ -+ 0. This is very minimal subset of Solaris libproc just enough for current application. -+@@ -97,6 +101,9 @@ unsigned long regs[IA64_REG_COUNT]; /* integer and fp regs */ -+ #if defined(sparc) || defined(sparcv9) -+ #define user_regs_struct pt_regs -+ #endif -++#if defined(aarch64) -++#define user_regs_struct user_pt_regs -++#endif -+ -+ // This C bool type must be int for compatibility with Linux calls and -+ // it would be a mistake to equivalence it to C++ bool on many platforms -+diff --git openjdk.orig/hotspot/make/defs.make openjdk/hotspot/make/defs.make -+index 44f21f8..4e8d00b 100644 -+--- openjdk.orig/hotspot/make/defs.make -++++ openjdk/hotspot/make/defs.make -+@@ -232,7 +232,7 @@ ifneq ($(OSNAME),windows) -+ -+ # Use uname output for SRCARCH, but deal with platform differences. If ARCH -+ # is not explicitly listed below, it is treated as x86. -+- SRCARCH = $(ARCH/$(filter sparc sparc64 ia64 amd64 x86_64 arm ppc zero,$(ARCH))) -++ SRCARCH = $(ARCH/$(filter sparc sparc64 ia64 amd64 x86_64 arm ppc aarch64 zero,$(ARCH))) -+ ARCH/ = x86 -+ ARCH/sparc = sparc -+ ARCH/sparc64= sparc -+@@ -242,6 +242,7 @@ ifneq ($(OSNAME),windows) -+ ARCH/ppc64 = ppc -+ ARCH/ppc = ppc -+ ARCH/arm = arm -++ ARCH/aarch64= aarch64 -+ ARCH/zero = zero -+ -+ # BUILDARCH is usually the same as SRCARCH, except for sparcv9 -+@@ -267,11 +268,12 @@ ifneq ($(OSNAME),windows) -+ LIBARCH/sparcv9 = sparcv9 -+ LIBARCH/ia64 = ia64 -+ LIBARCH/ppc64 = ppc -++ LIBARCH/aarch64 = aarch64 -+ LIBARCH/ppc = ppc -+ LIBARCH/arm = arm -+ LIBARCH/zero = $(ZERO_LIBARCH) -+ -+- LP64_ARCH = sparcv9 amd64 ia64 zero -++ LP64_ARCH = sparcv9 amd64 ia64 aarch64 zero -+ endif -+ -+ # Required make macro settings for all platforms -+diff --git openjdk.orig/hotspot/make/linux/makefiles/buildtree.make openjdk/hotspot/make/linux/makefiles/buildtree.make -+index 7c3d4f9..3bc7e8a 100644 -+--- openjdk.orig/hotspot/make/linux/makefiles/buildtree.make -++++ openjdk/hotspot/make/linux/makefiles/buildtree.make -+@@ -385,6 +385,7 @@ DATA_MODE/sparc = 32 -+ DATA_MODE/sparcv9 = 64 -+ DATA_MODE/amd64 = 64 -+ DATA_MODE/ia64 = 64 -++DATA_MODE/aarch64 = 64 -+ DATA_MODE/zero = $(ARCH_DATA_MODEL) -+ -+ JAVA_FLAG/32 = -d32 -+diff --git openjdk.orig/hotspot/make/linux/makefiles/defs.make openjdk/hotspot/make/linux/makefiles/defs.make -+index 7bb3149..39ffda4 100644 -+--- openjdk.orig/hotspot/make/linux/makefiles/defs.make -++++ openjdk/hotspot/make/linux/makefiles/defs.make -+@@ -118,6 +118,15 @@ ifeq ($(ARCH), ppc) -+ HS_ARCH = ppc -+ endif -+ -++# AARCH64 -++ifeq ($(ARCH), aarch64) -++ ARCH_DATA_MODEL = 64 -++ MAKE_ARGS += LP64=1 -++ PLATFORM = linux-aarch64 -++ VM_PLATFORM = linux_aarch64 -++ HS_ARCH = aarch64 -++endif -++ -+ # determine if HotSpot is being built in JDK6 or earlier version -+ JDK6_OR_EARLIER=0 -+ ifeq "$(shell expr \( '$(JDK_MAJOR_VERSION)' != '' \& '$(JDK_MINOR_VERSION)' != '' \& '$(JDK_MICRO_VERSION)' != '' \))" "1" -+diff --git openjdk.orig/hotspot/make/linux/makefiles/gcc.make openjdk/hotspot/make/linux/makefiles/gcc.make -+index 897e3a6..44f1673 100644 -+--- openjdk.orig/hotspot/make/linux/makefiles/gcc.make -++++ openjdk/hotspot/make/linux/makefiles/gcc.make -+@@ -104,6 +104,7 @@ endif -+ ARCHFLAG = $(ARCHFLAG/$(BUILDARCH)) -+ ARCHFLAG/i486 = -m32 -march=i586 -+ ARCHFLAG/amd64 = -m64 -++ARCHFLAG/aarch64 = -+ ARCHFLAG/ia64 = -+ ARCHFLAG/sparc = -m32 -mcpu=v9 -+ ARCHFLAG/sparcv9 = -m64 -mcpu=v9 -+diff --git openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp openjdk/hotspot/src/os/linux/vm/os_linux.cpp -+index c1b0e5c..9f7cda0 100644 -+--- openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp -++++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp -+@@ -296,6 +296,8 @@ static char cpu_arch[] = "sparcv9"; -+ # else -+ static char cpu_arch[] = "sparc"; -+ # endif -++#elif defined(AARCH64) -++static char cpu_arch[] = "aarch64"; -+ #else -+ #error Add appropriate cpu_arch setting -+ #endif -+@@ -1442,7 +1444,7 @@ void os::Linux::clock_init() { -+ #ifndef SYS_clock_getres -+ -+ #if defined(IA32) || defined(AMD64) -+-#define SYS_clock_getres IA32_ONLY(266) AMD64_ONLY(229) -++#define SYS_clock_getres IA32_ONLY(266) AMD64_ONLY(229) AARCH64_ONLY(114) -+ #define sys_clock_getres(x,y) ::syscall(SYS_clock_getres, x, y) -+ #else -+ #warning "SYS_clock_getres not defined for this platform, disabling fast_thread_cpu_time" -+@@ -1930,7 +1932,7 @@ void * os::dll_load(const char *filename, char *ebuf, int ebuflen) -+ static Elf32_Half running_arch_code=EM_AARCH64; -+ #else -+ #error Method os::dll_load requires that one of following is defined:\ -+- IA32, AMD64, IA64, __sparc, __powerpc__, ARM, S390, ALPHA, MIPS, MIPSEL, PARISC, M68K, SH -++ IA32, AMD64, IA64, __sparc, __powerpc__, ARM, S390, ALPHA, MIPS, MIPSEL, PARISC, M68K, SH, AARCH64 -+ #endif -+ -+ // Identify compatability class for VM's architecture and library's architecture -+@@ -3056,7 +3058,7 @@ void os::large_page_init() { -+ -+ #ifndef ZERO -+ _large_page_size = IA32_ONLY(4 * M) AMD64_ONLY(2 * M) IA64_ONLY(256 * M) SPARC_ONLY(4 * M) -+- ARM_ONLY(2 * M) PPC_ONLY(4 * M); -++ ARM_ONLY(2 * M) PPC_ONLY(4 * M) AARCH64_ONLY(2 * M); -+ #endif // ZERO -+ -+ FILE *fp = fopen("/proc/meminfo", "r"); -+@@ -5378,11 +5380,11 @@ void Parker::unpark() { -+ extern char** environ; -+ -+ #ifndef __NR_fork -+-#define __NR_fork IA32_ONLY(2) IA64_ONLY(not defined) AMD64_ONLY(57) -++#define __NR_fork IA32_ONLY(2) IA64_ONLY(not defined) AMD64_ONLY(57) AARCH64_ONLY(1079) -+ #endif -+ -+ #ifndef __NR_execve -+-#define __NR_execve IA32_ONLY(11) IA64_ONLY(1033) AMD64_ONLY(59) -++#define __NR_execve IA32_ONLY(11) IA64_ONLY(1033) AMD64_ONLY(59) AARCH64_ONLY(221) -+ #endif -+ -+ // Run the specified command in a separate process. Return its exit value, -+diff --git openjdk.orig/hotspot/src/share/vm/adlc/main.cpp openjdk/hotspot/src/share/vm/adlc/main.cpp -+index 47e207a..b93504e 100644 -+--- openjdk.orig/hotspot/src/share/vm/adlc/main.cpp -++++ openjdk/hotspot/src/share/vm/adlc/main.cpp -+@@ -244,6 +244,11 @@ int main(int argc, char *argv[]) -+ AD.addInclude(AD._CPP_file, "assembler_arm.inline.hpp"); -+ AD.addInclude(AD._CPP_file, "nativeInst_arm.hpp"); -+ AD.addInclude(AD._CPP_file, "vmreg_arm.inline.hpp"); -++#endif -++#ifdef TARGET_ARCH_aarch64 -++ AD.addInclude(AD._CPP_file, "assembler_aarch64.inline.hpp"); -++ AD.addInclude(AD._CPP_file, "nativeInst_aarch64.hpp"); -++ AD.addInclude(AD._CPP_file, "vmreg_aarch64.inline.hpp"); -+ #endif -+ AD.addInclude(AD._HPP_file, "memory/allocation.hpp"); -+ AD.addInclude(AD._HPP_file, "opto/machnode.hpp"); -+diff --git openjdk.orig/hotspot/src/share/vm/asm/assembler.cpp openjdk/hotspot/src/share/vm/asm/assembler.cpp -+index 2bcdcbc..57787ac 100644 -+--- openjdk.orig/hotspot/src/share/vm/asm/assembler.cpp -++++ openjdk/hotspot/src/share/vm/asm/assembler.cpp -+@@ -43,6 +43,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "assembler_ppc.inline.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "assembler_aarch64.inline.hpp" -++#endif -+ -+ -+ // Implementation of AbstractAssembler -+diff --git openjdk.orig/hotspot/src/share/vm/asm/assembler.hpp openjdk/hotspot/src/share/vm/asm/assembler.hpp -+index c25aa3f..4f77825 100644 -+--- openjdk.orig/hotspot/src/share/vm/asm/assembler.hpp -++++ openjdk/hotspot/src/share/vm/asm/assembler.hpp -+@@ -51,6 +51,10 @@ -+ # include "register_ppc.hpp" -+ # include "vm_version_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "register_aarch64.hpp" -++# include "vm_version_aarch64.hpp" -++#endif -+ -+ // This file contains platform-independent assembler declarations. -+ -+@@ -459,6 +463,9 @@ class AbstractAssembler : public ResourceObj { -+ #ifdef TARGET_ARCH_ppc -+ # include "assembler_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "assembler_aarch64.hpp" -++#endif -+ -+ -+ #endif // SHARE_VM_ASM_ASSEMBLER_HPP -+diff --git openjdk.orig/hotspot/src/share/vm/asm/codeBuffer.hpp openjdk/hotspot/src/share/vm/asm/codeBuffer.hpp -+index 685297a..002faef 100644 -+--- openjdk.orig/hotspot/src/share/vm/asm/codeBuffer.hpp -++++ openjdk/hotspot/src/share/vm/asm/codeBuffer.hpp -+@@ -573,6 +573,9 @@ class CodeBuffer: public StackObj { -+ #ifdef TARGET_ARCH_ppc -+ # include "codeBuffer_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "codeBuffer_aarch64.hpp" -++#endif -+ -+ }; -+ -+diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_Canonicalizer.cpp openjdk/hotspot/src/share/vm/c1/c1_Canonicalizer.cpp -+index c95a23c..2ec31e5 100644 -+--- openjdk.orig/hotspot/src/share/vm/c1/c1_Canonicalizer.cpp -++++ openjdk/hotspot/src/share/vm/c1/c1_Canonicalizer.cpp -+@@ -877,6 +877,13 @@ static bool match(UnsafeRawOp* x, -+ return false; -+ } -+ -++// AARCH64 cannot handle shifts which are not either 0, or log2 of the type size -++#ifdef AARCH64 -++ if (*log2_scale != 0 && -++ (1 << *log2_scale) != type2aelembytes(x->basic_type(), true)) -++ return false; -++#endif -++ -+ // If the value is pinned then it will be always be computed so -+ // there's no profit to reshaping the expression. -+ return !root->is_pinned(); -+diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_Defs.hpp openjdk/hotspot/src/share/vm/c1/c1_Defs.hpp -+index bebb3b0..ddaceb7 100644 -+--- openjdk.orig/hotspot/src/share/vm/c1/c1_Defs.hpp -++++ openjdk/hotspot/src/share/vm/c1/c1_Defs.hpp -+@@ -41,6 +41,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "register_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "register_aarch64.hpp" -++#endif -+ -+ // set frame size and return address offset to these values in blobs -+ // (if the compiled frame uses ebp as link pointer on IA; otherwise, -+@@ -62,6 +65,9 @@ enum { -+ #ifdef TARGET_ARCH_ppc -+ # include "c1_Defs_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "c1_Defs_aarch64.hpp" -++#endif -+ -+ -+ // native word offsets from memory address -+diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_FpuStackSim.hpp openjdk/hotspot/src/share/vm/c1/c1_FpuStackSim.hpp -+index a1e4c38..491b064 100644 -+--- openjdk.orig/hotspot/src/share/vm/c1/c1_FpuStackSim.hpp -++++ openjdk/hotspot/src/share/vm/c1/c1_FpuStackSim.hpp -+@@ -44,6 +44,9 @@ class FpuStackSim; -+ #ifdef TARGET_ARCH_ppc -+ # include "c1_FpuStackSim_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "c1_FpuStackSim_aarch64.hpp" -++#endif -+ -+ -+ #endif // SHARE_VM_C1_C1_FPUSTACKSIM_HPP -+diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_FrameMap.cpp openjdk/hotspot/src/share/vm/c1/c1_FrameMap.cpp -+index ea50b27..6a3dc63 100644 -+--- openjdk.orig/hotspot/src/share/vm/c1/c1_FrameMap.cpp -++++ openjdk/hotspot/src/share/vm/c1/c1_FrameMap.cpp -+@@ -41,6 +41,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "vmreg_ppc.inline.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "vmreg_aarch64.inline.hpp" -++#endif -+ -+ -+ -+diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_FrameMap.hpp openjdk/hotspot/src/share/vm/c1/c1_FrameMap.hpp -+index 288fc5c..e9a0250 100644 -+--- openjdk.orig/hotspot/src/share/vm/c1/c1_FrameMap.hpp -++++ openjdk/hotspot/src/share/vm/c1/c1_FrameMap.hpp -+@@ -93,6 +93,9 @@ class FrameMap : public CompilationResourceObj { -+ #endif -+ #ifdef TARGET_ARCH_ppc -+ # include "c1_FrameMap_ppc.hpp" -++#endif -++#ifdef TARGET_ARCH_aarch64 -++# include "c1_FrameMap_aarch64.hpp" -+ #endif -+ -+ -+diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_LIR.cpp openjdk/hotspot/src/share/vm/c1/c1_LIR.cpp -+index 776a6a3..6e1a362 100644 -+--- openjdk.orig/hotspot/src/share/vm/c1/c1_LIR.cpp -++++ openjdk/hotspot/src/share/vm/c1/c1_LIR.cpp -+@@ -67,7 +67,7 @@ FloatRegister LIR_OprDesc::as_double_reg() const { -+ -+ #endif -+ -+-#ifdef ARM -++#if defined(ARM) || defined (TARGET_ARCH_aarch64) -+ -+ FloatRegister LIR_OprDesc::as_float_reg() const { -+ return as_FloatRegister(fpu_regnr()); -+@@ -147,7 +147,11 @@ void LIR_Address::verify() const { -+ #endif -+ #ifdef _LP64 -+ assert(base()->is_cpu_register(), "wrong base operand"); -++#ifndef TARGET_ARCH_aarch64 -+ assert(index()->is_illegal() || index()->is_double_cpu(), "wrong index operand"); -++#else -++ assert(index()->is_illegal() || index()->is_double_cpu() || index()->is_single_cpu(), "wrong index operand"); -++#endif -+ assert(base()->type() == T_OBJECT || base()->type() == T_LONG, -+ "wrong type for addresses"); -+ #else -+@@ -545,7 +549,7 @@ void LIR_OpVisitState::visit(LIR_Op* op) { -+ assert(opConvert->_info == NULL, "must be"); -+ if (opConvert->_opr->is_valid()) do_input(opConvert->_opr); -+ if (opConvert->_result->is_valid()) do_output(opConvert->_result); -+-#ifdef PPC -++#if defined(PPC) || defined(TARGET_ARCH_aarch64) -+ if (opConvert->_tmp1->is_valid()) do_temp(opConvert->_tmp1); -+ if (opConvert->_tmp2->is_valid()) do_temp(opConvert->_tmp2); -+ #endif -+@@ -1468,6 +1472,11 @@ void LIR_OprDesc::print(outputStream* out) const { -+ out->print("fpu%d", fpu_regnr()); -+ } else if (is_double_fpu()) { -+ out->print("fpu%d", fpu_regnrLo()); -++#elif defined(AARCH64) -++ } else if (is_single_fpu()) { -++ out->print("fpu%d", fpu_regnr()); -++ } else if (is_double_fpu()) { -++ out->print("fpu%d", fpu_regnrLo()); -+ #elif defined(ARM) -+ } else if (is_single_fpu()) { -+ out->print("s%d", fpu_regnr()); -+@@ -1836,7 +1845,7 @@ void LIR_OpConvert::print_instr(outputStream* out) const { -+ print_bytecode(out, bytecode()); -+ in_opr()->print(out); out->print(" "); -+ result_opr()->print(out); out->print(" "); -+-#ifdef PPC -++#if defined(PPC) || defined(TARGET_ARCH_aarch64) -+ if(tmp1()->is_valid()) { -+ tmp1()->print(out); out->print(" "); -+ tmp2()->print(out); out->print(" "); -+diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_LIR.hpp openjdk/hotspot/src/share/vm/c1/c1_LIR.hpp -+index f8589c3..eb3383f 100644 -+--- openjdk.orig/hotspot/src/share/vm/c1/c1_LIR.hpp -++++ openjdk/hotspot/src/share/vm/c1/c1_LIR.hpp -+@@ -437,8 +437,8 @@ class LIR_OprDesc: public CompilationResourceObj { -+ XMMRegister as_xmm_double_reg() const; -+ // for compatibility with RInfo -+ int fpu () const { return lo_reg_half(); } -+-#endif // X86 -+-#if defined(SPARC) || defined(ARM) || defined(PPC) -++#endif -++#if defined(SPARC) || defined(ARM) || defined(PPC) || defined(AARCH64) -+ FloatRegister as_float_reg () const; -+ FloatRegister as_double_reg () const; -+ #endif -+@@ -526,7 +526,7 @@ class LIR_Address: public LIR_OprPtr { -+ , _type(type) -+ , _disp(0) { verify(); } -+ -+-#if defined(X86) || defined(ARM) -++#if defined(X86) || defined(ARM) || defined(AARCH64) -+ LIR_Address(LIR_Opr base, LIR_Opr index, Scale scale, intx disp, BasicType type): -+ _base(base) -+ , _index(index) -+@@ -601,7 +601,7 @@ class LIR_OprFact: public AllStatic { -+ LIR_OprDesc::fpu_register | -+ LIR_OprDesc::double_size); } -+ #endif -+-#ifdef X86 -++#if defined(X86) || defined(AARCH64) -+ static LIR_Opr double_fpu(int reg) { return (LIR_Opr)(intptr_t)((reg << LIR_OprDesc::reg1_shift) | -+ (reg << LIR_OprDesc::reg2_shift) | -+ LIR_OprDesc::double_type | -+@@ -1398,7 +1398,7 @@ class LIR_OpConvert: public LIR_Op1 { -+ private: -+ Bytecodes::Code _bytecode; -+ ConversionStub* _stub; -+-#ifdef PPC -++#if defined(PPC) || defined(TARGET_ARCH_aarch64) -+ LIR_Opr _tmp1; -+ LIR_Opr _tmp2; -+ #endif -+@@ -1413,7 +1413,7 @@ class LIR_OpConvert: public LIR_Op1 { -+ #endif -+ , _bytecode(code) {} -+ -+-#ifdef PPC -++#if defined(PPC) || defined(TARGET_ARCH_aarch64) -+ LIR_OpConvert(Bytecodes::Code code, LIR_Opr opr, LIR_Opr result, ConversionStub* stub -+ ,LIR_Opr tmp1, LIR_Opr tmp2) -+ : LIR_Op1(lir_convert, opr, result) -+@@ -1425,7 +1425,7 @@ class LIR_OpConvert: public LIR_Op1 { -+ -+ Bytecodes::Code bytecode() const { return _bytecode; } -+ ConversionStub* stub() const { return _stub; } -+-#ifdef PPC -++#if defined(PPC) || defined(TARGET_ARCH_aarch64) -+ LIR_Opr tmp1() const { return _tmp1; } -+ LIR_Opr tmp2() const { return _tmp2; } -+ #endif -+@@ -1973,7 +1973,14 @@ class LIR_List: public CompilationResourceObj { -+ #ifdef PPC -+ void convert(Bytecodes::Code code, LIR_Opr left, LIR_Opr dst, LIR_Opr tmp1, LIR_Opr tmp2) { append(new LIR_OpConvert(code, left, dst, NULL, tmp1, tmp2)); } -+ #endif -++#if defined (TARGET_ARCH_aarch64) -++ void convert(Bytecodes::Code code, LIR_Opr left, LIR_Opr dst, -++ ConversionStub* stub = NULL, LIR_Opr tmp1 = LIR_OprDesc::illegalOpr()) { -++ append(new LIR_OpConvert(code, left, dst, stub, tmp1, LIR_OprDesc::illegalOpr())); -++ } -++#else -+ void convert(Bytecodes::Code code, LIR_Opr left, LIR_Opr dst, ConversionStub* stub = NULL/*, bool is_32bit = false*/) { append(new LIR_OpConvert(code, left, dst, stub)); } -++#endif -+ -+ void logical_and (LIR_Opr left, LIR_Opr right, LIR_Opr dst) { append(new LIR_Op2(lir_logic_and, left, right, dst)); } -+ void logical_or (LIR_Opr left, LIR_Opr right, LIR_Opr dst) { append(new LIR_Op2(lir_logic_or, left, right, dst)); } -+diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp openjdk/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp -+index 528f21e..4d83fca 100644 -+--- openjdk.orig/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp -++++ openjdk/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp -+@@ -50,6 +50,10 @@ -+ # include "nativeInst_ppc.hpp" -+ # include "vmreg_ppc.inline.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "nativeInst_aarch64.hpp" -++# include "vmreg_aarch64.inline.hpp" -++#endif -+ -+ -+ void LIR_Assembler::patching_epilog(PatchingStub* patch, LIR_PatchCode patch_code, Register obj, CodeEmitInfo* info) { -+diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_LIRAssembler.hpp openjdk/hotspot/src/share/vm/c1/c1_LIRAssembler.hpp -+index 58adf59..f4a49b3 100644 -+--- openjdk.orig/hotspot/src/share/vm/c1/c1_LIRAssembler.hpp -++++ openjdk/hotspot/src/share/vm/c1/c1_LIRAssembler.hpp -+@@ -261,6 +261,9 @@ class LIR_Assembler: public CompilationResourceObj { -+ #ifdef TARGET_ARCH_ppc -+ # include "c1_LIRAssembler_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "c1_LIRAssembler_aarch64.hpp" -++#endif -+ -+ }; -+ -+diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_LinearScan.cpp openjdk/hotspot/src/share/vm/c1/c1_LinearScan.cpp -+index aaae71d..93f9f5f 100644 -+--- openjdk.orig/hotspot/src/share/vm/c1/c1_LinearScan.cpp -++++ openjdk/hotspot/src/share/vm/c1/c1_LinearScan.cpp -+@@ -47,6 +47,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "vmreg_ppc.inline.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "vmreg_aarch64.inline.hpp" -++#endif -+ -+ -+ #ifndef PRODUCT -+@@ -2190,7 +2193,7 @@ LIR_Opr LinearScan::color_lir_opr(LIR_Opr opr, int op_id, LIR_OpVisitState::OprM -+ -+ LIR_Opr res = operand_for_interval(interval); -+ -+-#ifdef X86 -++#if defined(X86) || defined(AARCH64) -+ // new semantic for is_last_use: not only set on definite end of interval, -+ // but also before hole -+ // This may still miss some cases (e.g. for dead values), but it is not necessary that the -+diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_LinearScan.hpp openjdk/hotspot/src/share/vm/c1/c1_LinearScan.hpp -+index 0c06f1b..a152328 100644 -+--- openjdk.orig/hotspot/src/share/vm/c1/c1_LinearScan.hpp -++++ openjdk/hotspot/src/share/vm/c1/c1_LinearScan.hpp -+@@ -985,6 +985,9 @@ class LinearScanTimers : public StackObj { -+ #ifdef TARGET_ARCH_ppc -+ # include "c1_LinearScan_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "c1_LinearScan_aarch64.hpp" -++#endif -+ -+ -+ #endif // SHARE_VM_C1_C1_LINEARSCAN_HPP -+diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_MacroAssembler.hpp openjdk/hotspot/src/share/vm/c1/c1_MacroAssembler.hpp -+index 55d9803..eda2174 100644 -+--- openjdk.orig/hotspot/src/share/vm/c1/c1_MacroAssembler.hpp -++++ openjdk/hotspot/src/share/vm/c1/c1_MacroAssembler.hpp -+@@ -41,6 +41,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "assembler_ppc.inline.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "assembler_aarch64.inline.hpp" -++#endif -+ -+ class CodeEmitInfo; -+ -+@@ -73,6 +76,9 @@ class C1_MacroAssembler: public MacroAssembler { -+ #ifdef TARGET_ARCH_ppc -+ # include "c1_MacroAssembler_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "c1_MacroAssembler_aarch64.hpp" -++#endif -+ -+ }; -+ -+diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_Runtime1.cpp openjdk/hotspot/src/share/vm/c1/c1_Runtime1.cpp -+index 765dec4..f0b3aae 100644 -+--- openjdk.orig/hotspot/src/share/vm/c1/c1_Runtime1.cpp -++++ openjdk/hotspot/src/share/vm/c1/c1_Runtime1.cpp -+@@ -1103,6 +1103,7 @@ JRT_END -+ // completes we can check for deoptimization. This simplifies the -+ // assembly code in the cpu directories. -+ // -++#ifndef TARGET_ARCH_aarch64 -+ int Runtime1::move_klass_patching(JavaThread* thread) { -+ // -+ // NOTE: we are still in Java -+@@ -1150,6 +1151,7 @@ int Runtime1::access_field_patching(JavaThread* thread) { -+ -+ return caller_is_deopted(); -+ JRT_END -++#endif -+ -+ -+ JRT_LEAF(void, Runtime1::trace_block_entry(jint block_id)) -+diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_Runtime1.hpp openjdk/hotspot/src/share/vm/c1/c1_Runtime1.hpp -+index 2032564..19261be 100644 -+--- openjdk.orig/hotspot/src/share/vm/c1/c1_Runtime1.hpp -++++ openjdk/hotspot/src/share/vm/c1/c1_Runtime1.hpp -+@@ -159,6 +159,9 @@ class Runtime1: public AllStatic { -+ static int move_klass_patching(JavaThread* thread); -+ -+ static void patch_code(JavaThread* thread, StubID stub_id); -++#ifdef TARGET_ARCH_aarch64 -++ static void patch_code_aarch64(JavaThread* thread, StubID stub_id); -++#endif -+ -+ public: -+ // initialization -+diff --git openjdk.orig/hotspot/src/share/vm/c1/c1_globals.hpp openjdk/hotspot/src/share/vm/c1/c1_globals.hpp -+index 15f3cc1..4143a87 100644 -+--- openjdk.orig/hotspot/src/share/vm/c1/c1_globals.hpp -++++ openjdk/hotspot/src/share/vm/c1/c1_globals.hpp -+@@ -38,6 +38,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "c1_globals_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "c1_globals_aarch64.hpp" -++#endif -+ #ifdef TARGET_OS_FAMILY_linux -+ # include "c1_globals_linux.hpp" -+ #endif -+diff --git openjdk.orig/hotspot/src/share/vm/classfile/classFileStream.hpp openjdk/hotspot/src/share/vm/classfile/classFileStream.hpp -+index cf6f0e5..b128b3a 100644 -+--- openjdk.orig/hotspot/src/share/vm/classfile/classFileStream.hpp -++++ openjdk/hotspot/src/share/vm/classfile/classFileStream.hpp -+@@ -41,6 +41,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "bytes_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "bytes_aarch64.hpp" -++#endif -+ -+ // Input stream for reading .class file -+ // -+diff --git openjdk.orig/hotspot/src/share/vm/classfile/stackMapTable.hpp openjdk/hotspot/src/share/vm/classfile/stackMapTable.hpp -+index f876029..ac415b6 100644 -+--- openjdk.orig/hotspot/src/share/vm/classfile/stackMapTable.hpp -++++ openjdk/hotspot/src/share/vm/classfile/stackMapTable.hpp -+@@ -46,6 +46,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "bytes_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "bytes_aarch64.hpp" -++#endif -+ -+ class StackMapReader; -+ -+diff --git openjdk.orig/hotspot/src/share/vm/classfile/verifier.cpp openjdk/hotspot/src/share/vm/classfile/verifier.cpp -+index c5c5e11..9c22a21 100644 -+--- openjdk.orig/hotspot/src/share/vm/classfile/verifier.cpp -++++ openjdk/hotspot/src/share/vm/classfile/verifier.cpp -+@@ -60,6 +60,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "bytes_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "bytes_aarch64.hpp" -++#endif -+ -+ #define NOFAILOVER_MAJOR_VERSION 51 -+ -+diff --git openjdk.orig/hotspot/src/share/vm/code/codeBlob.cpp openjdk/hotspot/src/share/vm/code/codeBlob.cpp -+index 244c320..429e0be 100644 -+--- openjdk.orig/hotspot/src/share/vm/code/codeBlob.cpp -++++ openjdk/hotspot/src/share/vm/code/codeBlob.cpp -+@@ -54,6 +54,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "nativeInst_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "nativeInst_aarch64.hpp" -++#endif -+ #ifdef COMPILER1 -+ #include "c1/c1_Runtime1.hpp" -+ #endif -+diff --git openjdk.orig/hotspot/src/share/vm/code/compiledIC.hpp openjdk/hotspot/src/share/vm/code/compiledIC.hpp -+index fe1cfb3..c9f6a2e 100644 -+--- openjdk.orig/hotspot/src/share/vm/code/compiledIC.hpp -++++ openjdk/hotspot/src/share/vm/code/compiledIC.hpp -+@@ -44,6 +44,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "nativeInst_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "nativeInst_aarch64.hpp" -++#endif -+ -+ //----------------------------------------------------------------------------- -+ // The CompiledIC represents a compiled inline cache. -+diff --git openjdk.orig/hotspot/src/share/vm/code/icBuffer.cpp openjdk/hotspot/src/share/vm/code/icBuffer.cpp -+index ed70457..d022482 100644 -+--- openjdk.orig/hotspot/src/share/vm/code/icBuffer.cpp -++++ openjdk/hotspot/src/share/vm/code/icBuffer.cpp -+@@ -52,6 +52,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "assembler_ppc.inline.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "assembler_aarch64.inline.hpp" -++#endif -+ -+ -+ DEF_STUB_INTERFACE(ICStub); -+diff --git openjdk.orig/hotspot/src/share/vm/code/relocInfo.cpp openjdk/hotspot/src/share/vm/code/relocInfo.cpp -+index 4fd82df..78310e6 100644 -+--- openjdk.orig/hotspot/src/share/vm/code/relocInfo.cpp -++++ openjdk/hotspot/src/share/vm/code/relocInfo.cpp -+@@ -49,6 +49,10 @@ -+ # include "assembler_ppc.inline.hpp" -+ # include "nativeInst_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "assembler_aarch64.inline.hpp" -++# include "nativeInst_aarch64.hpp" -++#endif -+ -+ -+ const RelocationHolder RelocationHolder::none; // its type is relocInfo::none -+diff --git openjdk.orig/hotspot/src/share/vm/code/relocInfo.hpp openjdk/hotspot/src/share/vm/code/relocInfo.hpp -+index 1d14b44..3823889 100644 -+--- openjdk.orig/hotspot/src/share/vm/code/relocInfo.hpp -++++ openjdk/hotspot/src/share/vm/code/relocInfo.hpp -+@@ -435,6 +435,9 @@ class relocInfo VALUE_OBJ_CLASS_SPEC { -+ #endif -+ #ifdef TARGET_ARCH_ppc -+ # include "relocInfo_ppc.hpp" -++#endif -++#ifdef TARGET_ARCH_aarch64 -++# include "relocInfo_aarch64.hpp" -+ #endif -+ -+ -+diff --git openjdk.orig/hotspot/src/share/vm/code/vmreg.hpp openjdk/hotspot/src/share/vm/code/vmreg.hpp -+index d57e6f8..1c18e47 100644 -+--- openjdk.orig/hotspot/src/share/vm/code/vmreg.hpp -++++ openjdk/hotspot/src/share/vm/code/vmreg.hpp -+@@ -42,6 +42,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "register_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "register_aarch64.hpp" -++#endif -+ #ifdef COMPILER2 -+ #include "opto/adlcVMDeps.hpp" -+ #include "utilities/ostream.hpp" -+@@ -63,6 +66,9 @@ -+ #ifdef TARGET_ARCH_MODEL_ppc -+ # include "adfiles/adGlobals_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_MODEL_aarch64 -++# include "adfiles/adGlobals_aarch64.hpp" -++#endif -+ #endif -+ -+ //------------------------------VMReg------------------------------------------ -+@@ -182,6 +188,9 @@ public: -+ #ifdef TARGET_ARCH_ppc -+ # include "vmreg_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "vmreg_aarch64.hpp" -++#endif -+ -+ -+ }; -+diff --git openjdk.orig/hotspot/src/share/vm/compiler/disassembler.cpp openjdk/hotspot/src/share/vm/compiler/disassembler.cpp -+index 9603e86..3a67259 100644 -+--- openjdk.orig/hotspot/src/share/vm/compiler/disassembler.cpp -++++ openjdk/hotspot/src/share/vm/compiler/disassembler.cpp -+@@ -47,6 +47,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "depChecker_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "depChecker_aarch64.hpp" -++#endif -+ #ifdef SHARK -+ #include "shark/sharkEntry.hpp" -+ #endif -+diff --git openjdk.orig/hotspot/src/share/vm/compiler/disassembler.hpp openjdk/hotspot/src/share/vm/compiler/disassembler.hpp -+index a70b8cc..4c90c9a 100644 -+--- openjdk.orig/hotspot/src/share/vm/compiler/disassembler.hpp -++++ openjdk/hotspot/src/share/vm/compiler/disassembler.hpp -+@@ -78,6 +78,9 @@ class Disassembler { -+ #endif -+ #ifdef TARGET_ARCH_ppc -+ # include "disassembler_ppc.hpp" -++#endif -++#ifdef TARGET_ARCH_aarch64 -++# include "disassembler_aarch64.hpp" -+ #endif -+ -+ -+diff --git openjdk.orig/hotspot/src/share/vm/interpreter/abstractInterpreter.hpp openjdk/hotspot/src/share/vm/interpreter/abstractInterpreter.hpp -+index d23f37a..24ca30e 100644 -+--- openjdk.orig/hotspot/src/share/vm/interpreter/abstractInterpreter.hpp -++++ openjdk/hotspot/src/share/vm/interpreter/abstractInterpreter.hpp -+@@ -44,6 +44,9 @@ -+ #ifdef TARGET_ARCH_MODEL_ppc -+ # include "interp_masm_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_MODEL_aarch64 -++# include "interp_masm_aarch64.hpp" -++#endif -+ #ifdef TARGET_OS_FAMILY_linux -+ # include "thread_linux.inline.hpp" -+ #endif -+diff --git openjdk.orig/hotspot/src/share/vm/interpreter/bytecode.hpp openjdk/hotspot/src/share/vm/interpreter/bytecode.hpp -+index 107161a..205d0f7 100644 -+--- openjdk.orig/hotspot/src/share/vm/interpreter/bytecode.hpp -++++ openjdk/hotspot/src/share/vm/interpreter/bytecode.hpp -+@@ -43,6 +43,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "bytes_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "bytes_aarch64.hpp" -++#endif -+ -+ class ciBytecodeStream; -+ -+diff --git openjdk.orig/hotspot/src/share/vm/interpreter/bytecodeInterpreter.hpp openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.hpp -+index e637414..308ad3b 100644 -+--- openjdk.orig/hotspot/src/share/vm/interpreter/bytecodeInterpreter.hpp -++++ openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.hpp -+@@ -47,6 +47,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "bytes_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "bytes_aarch64.hpp" -++#endif -+ -+ #ifdef CC_INTERP -+ -+@@ -618,6 +621,9 @@ void print(); -+ #ifdef TARGET_ARCH_ppc -+ # include "bytecodeInterpreter_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "bytecodeInterpreter_aarch64.hpp" -++#endif -+ -+ -+ }; // BytecodeInterpreter -+diff --git openjdk.orig/hotspot/src/share/vm/interpreter/bytecodeInterpreter.inline.hpp openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.inline.hpp -+index 3715a52..0d6a8aa 100644 -+--- openjdk.orig/hotspot/src/share/vm/interpreter/bytecodeInterpreter.inline.hpp -++++ openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.inline.hpp -+@@ -58,6 +58,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "bytecodeInterpreter_ppc.inline.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "bytecodeInterpreter_aarch64.inline.hpp" -++#endif -+ -+ #endif // CC_INTERP -+ -+diff --git openjdk.orig/hotspot/src/share/vm/interpreter/bytecodeStream.hpp openjdk/hotspot/src/share/vm/interpreter/bytecodeStream.hpp -+index 6106eac..f3dee0a 100644 -+--- openjdk.orig/hotspot/src/share/vm/interpreter/bytecodeStream.hpp -++++ openjdk/hotspot/src/share/vm/interpreter/bytecodeStream.hpp -+@@ -43,6 +43,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "bytes_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "bytes_aarch64.hpp" -++#endif -+ -+ // A BytecodeStream is used for fast iteration over the bytecodes -+ // of a methodOop. -+diff --git openjdk.orig/hotspot/src/share/vm/interpreter/bytecodes.cpp openjdk/hotspot/src/share/vm/interpreter/bytecodes.cpp -+index 04f3f64..48ef30e 100644 -+--- openjdk.orig/hotspot/src/share/vm/interpreter/bytecodes.cpp -++++ openjdk/hotspot/src/share/vm/interpreter/bytecodes.cpp -+@@ -41,6 +41,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "bytes_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "bytes_aarch64.hpp" -++#endif -+ -+ -+ #if defined(WIN32) && (defined(_MSC_VER) && (_MSC_VER < 1600)) -+diff --git openjdk.orig/hotspot/src/share/vm/interpreter/cppInterpreter.hpp openjdk/hotspot/src/share/vm/interpreter/cppInterpreter.hpp -+index e3a9f2e..8347473 100644 -+--- openjdk.orig/hotspot/src/share/vm/interpreter/cppInterpreter.hpp -++++ openjdk/hotspot/src/share/vm/interpreter/cppInterpreter.hpp -+@@ -101,6 +101,9 @@ class CppInterpreter: public AbstractInterpreter { -+ #ifdef TARGET_ARCH_ppc -+ # include "cppInterpreter_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "cppInterpreter_aarch64.hpp" -++#endif -+ -+ -+ }; -+diff --git openjdk.orig/hotspot/src/share/vm/interpreter/cppInterpreterGenerator.hpp openjdk/hotspot/src/share/vm/interpreter/cppInterpreterGenerator.hpp -+index c27805e..272f6e8 100644 -+--- openjdk.orig/hotspot/src/share/vm/interpreter/cppInterpreterGenerator.hpp -++++ openjdk/hotspot/src/share/vm/interpreter/cppInterpreterGenerator.hpp -+@@ -59,6 +59,9 @@ class CppInterpreterGenerator: public AbstractInterpreterGenerator { -+ #ifdef TARGET_ARCH_ppc -+ # include "cppInterpreterGenerator_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "cppInterpreterGenerator_aarch64.hpp" -++#endif -+ -+ }; -+ -+diff --git openjdk.orig/hotspot/src/share/vm/interpreter/interpreter.hpp openjdk/hotspot/src/share/vm/interpreter/interpreter.hpp -+index 0ab0be7..6a6822f 100644 -+--- openjdk.orig/hotspot/src/share/vm/interpreter/interpreter.hpp -++++ openjdk/hotspot/src/share/vm/interpreter/interpreter.hpp -+@@ -158,6 +158,9 @@ class Interpreter: public CC_INTERP_ONLY(CppInterpreter) NOT_CC_INTERP(TemplateI -+ #ifdef TARGET_ARCH_ppc -+ # include "interpreter_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "interpreter_aarch64.hpp" -++#endif -+ -+ }; -+ -+diff --git openjdk.orig/hotspot/src/share/vm/interpreter/interpreterGenerator.hpp openjdk/hotspot/src/share/vm/interpreter/interpreterGenerator.hpp -+index 7bc43ec..0434ca3 100644 -+--- openjdk.orig/hotspot/src/share/vm/interpreter/interpreterGenerator.hpp -++++ openjdk/hotspot/src/share/vm/interpreter/interpreterGenerator.hpp -+@@ -56,6 +56,9 @@ InterpreterGenerator(StubQueue* _code); -+ #ifdef TARGET_ARCH_ppc -+ # include "interpreterGenerator_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "interpreterGenerator_aarch64.hpp" -++#endif -+ -+ -+ }; -+diff --git openjdk.orig/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp openjdk/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp -+index e451c04..37700fb 100644 -+--- openjdk.orig/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp -++++ openjdk/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp -+@@ -71,6 +71,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "vm_version_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "vm_version_aarch64.hpp" -++#endif -+ #ifdef COMPILER2 -+ #include "opto/runtime.hpp" -+ #endif -+diff --git openjdk.orig/hotspot/src/share/vm/interpreter/interpreterRuntime.hpp openjdk/hotspot/src/share/vm/interpreter/interpreterRuntime.hpp -+index 93c1a9e..425400e 100644 -+--- openjdk.orig/hotspot/src/share/vm/interpreter/interpreterRuntime.hpp -++++ openjdk/hotspot/src/share/vm/interpreter/interpreterRuntime.hpp -+@@ -164,6 +164,9 @@ class InterpreterRuntime: AllStatic { -+ #endif -+ #ifdef TARGET_ARCH_ppc -+ # include "interpreterRT_ppc.hpp" -++#endif -++#ifdef TARGET_ARCH_aarch64 -++# include "interpreterRT_aarch64.hpp" -+ #endif -+ -+ -+diff --git openjdk.orig/hotspot/src/share/vm/interpreter/templateInterpreter.hpp openjdk/hotspot/src/share/vm/interpreter/templateInterpreter.hpp -+index 25d74f7..f78a16e 100644 -+--- openjdk.orig/hotspot/src/share/vm/interpreter/templateInterpreter.hpp -++++ openjdk/hotspot/src/share/vm/interpreter/templateInterpreter.hpp -+@@ -198,6 +198,9 @@ class TemplateInterpreter: public AbstractInterpreter { -+ #ifdef TARGET_ARCH_ppc -+ # include "templateInterpreter_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "templateInterpreter_aarch64.hpp" -++#endif -+ -+ -+ }; -+diff --git openjdk.orig/hotspot/src/share/vm/interpreter/templateInterpreterGenerator.hpp openjdk/hotspot/src/share/vm/interpreter/templateInterpreterGenerator.hpp -+index fb7bdc5..6007630 100644 -+--- openjdk.orig/hotspot/src/share/vm/interpreter/templateInterpreterGenerator.hpp -++++ openjdk/hotspot/src/share/vm/interpreter/templateInterpreterGenerator.hpp -+@@ -101,6 +101,9 @@ class TemplateInterpreterGenerator: public AbstractInterpreterGenerator { -+ #ifdef TARGET_ARCH_ppc -+ # include "templateInterpreterGenerator_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "templateInterpreterGenerator_aarch64.hpp" -++#endif -+ -+ -+ }; -+diff --git openjdk.orig/hotspot/src/share/vm/interpreter/templateTable.hpp openjdk/hotspot/src/share/vm/interpreter/templateTable.hpp -+index 5d2a7e8..c5e0f0a 100644 -+--- openjdk.orig/hotspot/src/share/vm/interpreter/templateTable.hpp -++++ openjdk/hotspot/src/share/vm/interpreter/templateTable.hpp -+@@ -43,6 +43,9 @@ -+ #ifdef TARGET_ARCH_MODEL_ppc -+ # include "interp_masm_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_MODEL_aarch64 -++# include "interp_masm_aarch64.hpp" -++#endif -+ -+ #ifndef CC_INTERP -+ // All the necessary definitions used for (bytecode) template generation. Instead of -+@@ -373,6 +376,9 @@ class TemplateTable: AllStatic { -+ #ifdef TARGET_ARCH_MODEL_ppc -+ # include "templateTable_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_MODEL_aarch64 -++# include "templateTable_aarch64.hpp" -++#endif -+ -+ }; -+ #endif /* !CC_INTERP */ -+diff --git openjdk.orig/hotspot/src/share/vm/oops/constantPoolOop.hpp openjdk/hotspot/src/share/vm/oops/constantPoolOop.hpp -+index c2f985d..3d0d0fc 100644 -+--- openjdk.orig/hotspot/src/share/vm/oops/constantPoolOop.hpp -++++ openjdk/hotspot/src/share/vm/oops/constantPoolOop.hpp -+@@ -45,6 +45,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "bytes_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "bytes_aarch64.hpp" -++#endif -+ -+ // A constantPool is an array containing class constants as described in the -+ // class file. -+diff --git openjdk.orig/hotspot/src/share/vm/oops/oop.inline.hpp openjdk/hotspot/src/share/vm/oops/oop.inline.hpp -+index db14b2e..c8b326f 100644 -+--- openjdk.orig/hotspot/src/share/vm/oops/oop.inline.hpp -++++ openjdk/hotspot/src/share/vm/oops/oop.inline.hpp -+@@ -58,6 +58,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "bytes_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "bytes_aarch64.hpp" -++#endif -+ -+ // Implementation of all inlined member functions defined in oop.hpp -+ // We need a separate file to avoid circular references -+diff --git openjdk.orig/hotspot/src/share/vm/opto/buildOopMap.cpp openjdk/hotspot/src/share/vm/opto/buildOopMap.cpp -+index fc73160..2c5ec41 100644 -+--- openjdk.orig/hotspot/src/share/vm/opto/buildOopMap.cpp -++++ openjdk/hotspot/src/share/vm/opto/buildOopMap.cpp -+@@ -47,6 +47,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "vmreg_ppc.inline.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "vmreg_aarch64.inline.hpp" -++#endif -+ -+ // The functions in this file builds OopMaps after all scheduling is done. -+ // -+diff --git openjdk.orig/hotspot/src/share/vm/opto/c2_globals.hpp openjdk/hotspot/src/share/vm/opto/c2_globals.hpp -+index f73dcbd..462c875 100644 -+--- openjdk.orig/hotspot/src/share/vm/opto/c2_globals.hpp -++++ openjdk/hotspot/src/share/vm/opto/c2_globals.hpp -+@@ -35,6 +35,9 @@ -+ #ifdef TARGET_ARCH_arm -+ # include "c2_globals_arm.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "c2_globals_aarch64.hpp" -++#endif -+ #ifdef TARGET_OS_FAMILY_linux -+ # include "c2_globals_linux.hpp" -+ #endif -+diff --git openjdk.orig/hotspot/src/share/vm/opto/c2compiler.cpp openjdk/hotspot/src/share/vm/opto/c2compiler.cpp -+index 713e3f1..948e447 100644 -+--- openjdk.orig/hotspot/src/share/vm/opto/c2compiler.cpp -++++ openjdk/hotspot/src/share/vm/opto/c2compiler.cpp -+@@ -43,6 +43,9 @@ -+ #ifdef TARGET_ARCH_MODEL_ppc -+ # include "adfiles/ad_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_MODEL_aarch64 -++# include "adfiles/ad_aarch64.hpp" -++#endif -+ -+ -+ volatile int C2Compiler::_runtimes = uninitialized; -+diff --git openjdk.orig/hotspot/src/share/vm/opto/compile.cpp openjdk/hotspot/src/share/vm/opto/compile.cpp -+index a7ee07a..91dc290 100644 -+--- openjdk.orig/hotspot/src/share/vm/opto/compile.cpp -++++ openjdk/hotspot/src/share/vm/opto/compile.cpp -+@@ -80,6 +80,9 @@ -+ #ifdef TARGET_ARCH_MODEL_ppc -+ # include "adfiles/ad_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_MODEL_aarch64 -++# include "adfiles/ad_aarch64.hpp" -++#endif -+ -+ -+ // -------------------- Compile::mach_constant_base_node ----------------------- -+diff --git openjdk.orig/hotspot/src/share/vm/opto/gcm.cpp openjdk/hotspot/src/share/vm/opto/gcm.cpp -+index 8b8f311..4deb0b4 100644 -+--- openjdk.orig/hotspot/src/share/vm/opto/gcm.cpp -++++ openjdk/hotspot/src/share/vm/opto/gcm.cpp -+@@ -53,6 +53,9 @@ -+ #ifdef TARGET_ARCH_MODEL_ppc -+ # include "adfiles/ad_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_MODEL_aarch64 -++# include "adfiles/ad_aarch64.hpp" -++#endif -+ -+ // Portions of code courtesy of Clifford Click -+ -+diff --git openjdk.orig/hotspot/src/share/vm/opto/lcm.cpp openjdk/hotspot/src/share/vm/opto/lcm.cpp -+index aee6123..4b9aaed 100644 -+--- openjdk.orig/hotspot/src/share/vm/opto/lcm.cpp -++++ openjdk/hotspot/src/share/vm/opto/lcm.cpp -+@@ -48,6 +48,9 @@ -+ #ifdef TARGET_ARCH_MODEL_ppc -+ # include "adfiles/ad_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_MODEL_aarch64 -++# include "adfiles/ad_aarch64.hpp" -++#endif -+ -+ // Optimization - Graph Style -+ -+diff --git openjdk.orig/hotspot/src/share/vm/opto/locknode.hpp openjdk/hotspot/src/share/vm/opto/locknode.hpp -+index 91b99bc..665594f 100644 -+--- openjdk.orig/hotspot/src/share/vm/opto/locknode.hpp -++++ openjdk/hotspot/src/share/vm/opto/locknode.hpp -+@@ -46,6 +46,9 @@ -+ #ifdef TARGET_ARCH_MODEL_ppc -+ # include "adfiles/ad_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_MODEL_aarch64 -++# include "adfiles/ad_aarch64.hpp" -++#endif -+ -+ //------------------------------BoxLockNode------------------------------------ -+ class BoxLockNode : public Node { -+diff --git openjdk.orig/hotspot/src/share/vm/opto/matcher.cpp openjdk/hotspot/src/share/vm/opto/matcher.cpp -+index ca2d4e3..d0f55c5 100644 -+--- openjdk.orig/hotspot/src/share/vm/opto/matcher.cpp -++++ openjdk/hotspot/src/share/vm/opto/matcher.cpp -+@@ -55,6 +55,9 @@ -+ #ifdef TARGET_ARCH_MODEL_ppc -+ # include "adfiles/ad_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_MODEL_aarch64 -++# include "adfiles/ad_aarch64.hpp" -++#endif -+ -+ OptoReg::Name OptoReg::c_frame_pointer; -+ -+diff --git openjdk.orig/hotspot/src/share/vm/opto/output.hpp openjdk/hotspot/src/share/vm/opto/output.hpp -+index 50b6e76..6a920b2 100644 -+--- openjdk.orig/hotspot/src/share/vm/opto/output.hpp -++++ openjdk/hotspot/src/share/vm/opto/output.hpp -+@@ -45,6 +45,9 @@ -+ #ifdef TARGET_ARCH_MODEL_ppc -+ # include "adfiles/ad_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_MODEL_aarch64 -++# include "adfiles/ad_aarch64.hpp" -++#endif -+ -+ class Arena; -+ class Bundle; -+diff --git openjdk.orig/hotspot/src/share/vm/opto/regmask.cpp openjdk/hotspot/src/share/vm/opto/regmask.cpp -+index ce220f0..20c6028 100644 -+--- openjdk.orig/hotspot/src/share/vm/opto/regmask.cpp -++++ openjdk/hotspot/src/share/vm/opto/regmask.cpp -+@@ -43,6 +43,9 @@ -+ #ifdef TARGET_ARCH_MODEL_ppc -+ # include "adfiles/ad_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_MODEL_aarch64 -++# include "adfiles/ad_aarch64.hpp" -++#endif -+ -+ #define RM_SIZE _RM_SIZE /* a constant private to the class RegMask */ -+ -+diff --git openjdk.orig/hotspot/src/share/vm/opto/regmask.hpp openjdk/hotspot/src/share/vm/opto/regmask.hpp -+index e50ff84..26c6854 100644 -+--- openjdk.orig/hotspot/src/share/vm/opto/regmask.hpp -++++ openjdk/hotspot/src/share/vm/opto/regmask.hpp -+@@ -46,6 +46,9 @@ -+ #ifdef TARGET_ARCH_MODEL_ppc -+ # include "adfiles/adGlobals_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_MODEL_aarch64 -++# include "adfiles/adGlobals_aarch64.hpp" -++#endif -+ -+ // Some fun naming (textual) substitutions: -+ // -+diff --git openjdk.orig/hotspot/src/share/vm/opto/runtime.cpp openjdk/hotspot/src/share/vm/opto/runtime.cpp -+index d315f10..11a58b1 100644 -+--- openjdk.orig/hotspot/src/share/vm/opto/runtime.cpp -++++ openjdk/hotspot/src/share/vm/opto/runtime.cpp -+@@ -86,6 +86,9 @@ -+ #ifdef TARGET_ARCH_MODEL_ppc -+ # include "adfiles/ad_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_MODEL_aarch64 -++# include "adfiles/ad_aarch64.hpp" -++#endif -+ -+ -+ // For debugging purposes: -+diff --git openjdk.orig/hotspot/src/share/vm/prims/jniCheck.cpp openjdk/hotspot/src/share/vm/prims/jniCheck.cpp -+index 3bf4ecd..2ad9014 100644 -+--- openjdk.orig/hotspot/src/share/vm/prims/jniCheck.cpp -++++ openjdk/hotspot/src/share/vm/prims/jniCheck.cpp -+@@ -51,6 +51,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "jniTypes_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "jniTypes_aarch64.hpp" -++#endif -+ -+ -+ // Heap objects are allowed to be directly referenced only in VM code, -+diff --git openjdk.orig/hotspot/src/share/vm/prims/jni_md.h openjdk/hotspot/src/share/vm/prims/jni_md.h -+index 7fa5829..3bd4e31 100644 -+--- openjdk.orig/hotspot/src/share/vm/prims/jni_md.h -++++ openjdk/hotspot/src/share/vm/prims/jni_md.h -+@@ -39,6 +39,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "jni_ppc.h" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "jni_aarch64.h" -++#endif -+ -+ -+ /* -+diff --git openjdk.orig/hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.cpp openjdk/hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.cpp -+index 97dd154..fd1fa43 100644 -+--- openjdk.orig/hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.cpp -++++ openjdk/hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.cpp -+@@ -43,6 +43,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "bytes_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "bytes_aarch64.hpp" -++#endif -+ // FIXME: add Deprecated, LVTT attributes -+ // FIXME: fix Synthetic attribute -+ // FIXME: per Serguei, add error return handling for constantPoolOopDesc::copy_cpool_bytes() -+diff --git openjdk.orig/hotspot/src/share/vm/prims/methodHandles.hpp openjdk/hotspot/src/share/vm/prims/methodHandles.hpp -+index 514ba6a..ea747d0 100644 -+--- openjdk.orig/hotspot/src/share/vm/prims/methodHandles.hpp -++++ openjdk/hotspot/src/share/vm/prims/methodHandles.hpp -+@@ -738,6 +738,9 @@ public: -+ #ifdef TARGET_ARCH_ppc -+ # include "methodHandles_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "methodHandles_aarch64.hpp" -++#endif -+ }; -+ -+ -+diff --git openjdk.orig/hotspot/src/share/vm/runtime/atomic.cpp openjdk/hotspot/src/share/vm/runtime/atomic.cpp -+index 80780d7..5a34f15 100644 -+--- openjdk.orig/hotspot/src/share/vm/runtime/atomic.cpp -++++ openjdk/hotspot/src/share/vm/runtime/atomic.cpp -+@@ -60,6 +60,9 @@ -+ #ifdef TARGET_OS_ARCH_linux_ppc -+ # include "atomic_linux_ppc.inline.hpp" -+ #endif -++#ifdef TARGET_OS_ARCH_linux_aarch64 -++# include "atomic_linux_aarch64.inline.hpp" -++#endif -+ #ifdef TARGET_OS_ARCH_bsd_x86 -+ # include "atomic_bsd_x86.inline.hpp" -+ #endif -+diff --git openjdk.orig/hotspot/src/share/vm/runtime/deoptimization.cpp openjdk/hotspot/src/share/vm/runtime/deoptimization.cpp -+index 4735588..4e7958a 100644 -+--- openjdk.orig/hotspot/src/share/vm/runtime/deoptimization.cpp -++++ openjdk/hotspot/src/share/vm/runtime/deoptimization.cpp -+@@ -65,6 +65,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "vmreg_ppc.inline.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "vmreg_aarch64.inline.hpp" -++#endif -+ #ifdef COMPILER2 -+ #ifdef TARGET_ARCH_MODEL_x86_32 -+ # include "adfiles/ad_x86_32.hpp" -+@@ -84,6 +87,9 @@ -+ #ifdef TARGET_ARCH_MODEL_ppc -+ # include "adfiles/ad_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_MODEL_aarch64 -++# include "adfiles/ad_aarch64.hpp" -++#endif -+ #endif -+ -+ bool DeoptimizationMarker::_is_active = false; -+diff --git openjdk.orig/hotspot/src/share/vm/runtime/dtraceJSDT.hpp openjdk/hotspot/src/share/vm/runtime/dtraceJSDT.hpp -+index bff4310..1129cd6 100644 -+--- openjdk.orig/hotspot/src/share/vm/runtime/dtraceJSDT.hpp -++++ openjdk/hotspot/src/share/vm/runtime/dtraceJSDT.hpp -+@@ -41,6 +41,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "nativeInst_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "nativeInst_aarch64.hpp" -++#endif -+ -+ class RegisteredProbes; -+ typedef jlong OpaqueProbes; -+diff --git openjdk.orig/hotspot/src/share/vm/runtime/frame.cpp openjdk/hotspot/src/share/vm/runtime/frame.cpp -+index 7ae9aa8..6654714 100644 -+--- openjdk.orig/hotspot/src/share/vm/runtime/frame.cpp -++++ openjdk/hotspot/src/share/vm/runtime/frame.cpp -+@@ -59,6 +59,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "nativeInst_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "nativeInst_aarch64.hpp" -++#endif -+ -+ RegisterMap::RegisterMap(JavaThread *thread, bool update_map) { -+ _thread = thread; -+diff --git openjdk.orig/hotspot/src/share/vm/runtime/frame.hpp openjdk/hotspot/src/share/vm/runtime/frame.hpp -+index c55380e..c13caae 100644 -+--- openjdk.orig/hotspot/src/share/vm/runtime/frame.hpp -++++ openjdk/hotspot/src/share/vm/runtime/frame.hpp -+@@ -50,6 +50,9 @@ -+ #ifdef TARGET_ARCH_MODEL_ppc -+ # include "adfiles/adGlobals_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_MODEL_aarch64 -++# include "adfiles/adGlobals_aarch64.hpp" -++#endif -+ #endif -+ #ifdef ZERO -+ #ifdef TARGET_ARCH_zero -+@@ -491,6 +494,9 @@ class frame VALUE_OBJ_CLASS_SPEC { -+ #ifdef TARGET_ARCH_ppc -+ # include "frame_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "frame_aarch64.hpp" -++#endif -+ -+ }; -+ -+diff --git openjdk.orig/hotspot/src/share/vm/runtime/frame.inline.hpp openjdk/hotspot/src/share/vm/runtime/frame.inline.hpp -+index b80b042..f6e1b0e 100644 -+--- openjdk.orig/hotspot/src/share/vm/runtime/frame.inline.hpp -++++ openjdk/hotspot/src/share/vm/runtime/frame.inline.hpp -+@@ -46,6 +46,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "jniTypes_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "jniTypes_aarch64.hpp" -++#endif -+ #ifdef ZERO -+ #ifdef TARGET_ARCH_zero -+ # include "entryFrame_zero.hpp" -+@@ -100,6 +103,9 @@ inline bool frame::is_first_frame() const { -+ #ifdef TARGET_ARCH_ppc -+ # include "frame_ppc.inline.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "frame_aarch64.inline.hpp" -++#endif -+ -+ -+ #endif // SHARE_VM_RUNTIME_FRAME_INLINE_HPP -+diff --git openjdk.orig/hotspot/src/share/vm/runtime/globals.hpp openjdk/hotspot/src/share/vm/runtime/globals.hpp -+index 10d74cd..4cc5dfb 100644 -+--- openjdk.orig/hotspot/src/share/vm/runtime/globals.hpp -++++ openjdk/hotspot/src/share/vm/runtime/globals.hpp -+@@ -52,6 +52,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "globals_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "globals_aarch64.hpp" -++#endif -+ #ifdef TARGET_OS_FAMILY_linux -+ # include "globals_linux.hpp" -+ #endif -+@@ -88,6 +91,9 @@ -+ #ifdef TARGET_OS_ARCH_linux_ppc -+ # include "globals_linux_ppc.hpp" -+ #endif -++#ifdef TARGET_OS_ARCH_linux_aarch64 -++# include "globals_linux_aarch64.hpp" -++#endif -+ #ifdef TARGET_OS_ARCH_bsd_x86 -+ # include "globals_bsd_x86.hpp" -+ #endif -+@@ -107,6 +113,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "c1_globals_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "c1_globals_aarch64.hpp" -++#endif -+ #ifdef TARGET_OS_FAMILY_linux -+ # include "c1_globals_linux.hpp" -+ #endif -+@@ -130,6 +139,9 @@ -+ #ifdef TARGET_ARCH_arm -+ # include "c2_globals_arm.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "c2_globals_aarch64.hpp" -++#endif -+ #ifdef TARGET_OS_FAMILY_linux -+ # include "c2_globals_linux.hpp" -+ #endif -+diff --git openjdk.orig/hotspot/src/share/vm/runtime/icache.hpp openjdk/hotspot/src/share/vm/runtime/icache.hpp -+index d460a0f..9a3b9c8 100644 -+--- openjdk.orig/hotspot/src/share/vm/runtime/icache.hpp -++++ openjdk/hotspot/src/share/vm/runtime/icache.hpp -+@@ -83,6 +83,9 @@ class AbstractICache : AllStatic { -+ #ifdef TARGET_ARCH_ppc -+ # include "icache_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "icache_aarch64.hpp" -++#endif -+ -+ -+ -+diff --git openjdk.orig/hotspot/src/share/vm/runtime/java.cpp openjdk/hotspot/src/share/vm/runtime/java.cpp -+index fc3b67a..46794b0 100644 -+--- openjdk.orig/hotspot/src/share/vm/runtime/java.cpp -++++ openjdk/hotspot/src/share/vm/runtime/java.cpp -+@@ -78,6 +78,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "vm_version_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "vm_version_aarch64.hpp" -++#endif -+ #ifdef TARGET_OS_FAMILY_linux -+ # include "thread_linux.inline.hpp" -+ #endif -+diff --git openjdk.orig/hotspot/src/share/vm/runtime/javaCalls.hpp openjdk/hotspot/src/share/vm/runtime/javaCalls.hpp -+index d4f8595..bc2ca9b 100644 -+--- openjdk.orig/hotspot/src/share/vm/runtime/javaCalls.hpp -++++ openjdk/hotspot/src/share/vm/runtime/javaCalls.hpp -+@@ -45,6 +45,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "jniTypes_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "jniTypes_aarch64.hpp" -++#endif -+ #ifdef TARGET_OS_FAMILY_linux -+ # include "thread_linux.inline.hpp" -+ #endif -+diff --git openjdk.orig/hotspot/src/share/vm/runtime/javaFrameAnchor.hpp openjdk/hotspot/src/share/vm/runtime/javaFrameAnchor.hpp -+index 8374aa2..6be5f79 100644 -+--- openjdk.orig/hotspot/src/share/vm/runtime/javaFrameAnchor.hpp -++++ openjdk/hotspot/src/share/vm/runtime/javaFrameAnchor.hpp -+@@ -47,6 +47,9 @@ -+ #ifdef TARGET_OS_ARCH_linux_arm -+ # include "orderAccess_linux_arm.inline.hpp" -+ #endif -++#ifdef TARGET_OS_ARCH_linux_aarch64 -++# include "orderAccess_linux_aarch64.inline.hpp" -++#endif -+ #ifdef TARGET_OS_ARCH_linux_ppc -+ # include "orderAccess_linux_ppc.inline.hpp" -+ #endif -+@@ -121,6 +124,9 @@ friend class JavaCallWrapper; -+ #ifdef TARGET_ARCH_ppc -+ # include "javaFrameAnchor_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "javaFrameAnchor_aarch64.hpp" -++#endif -+ -+ -+ public: -+diff --git openjdk.orig/hotspot/src/share/vm/runtime/os.hpp openjdk/hotspot/src/share/vm/runtime/os.hpp -+index 5867deb..0f1fbb4 100644 -+--- openjdk.orig/hotspot/src/share/vm/runtime/os.hpp -++++ openjdk/hotspot/src/share/vm/runtime/os.hpp -+@@ -719,6 +719,9 @@ class os: AllStatic { -+ #ifdef TARGET_OS_ARCH_linux_ppc -+ # include "os_linux_ppc.hpp" -+ #endif -++#ifdef TARGET_OS_ARCH_linux_aarch64 -++# include "os_linux_aarch64.hpp" -++#endif -+ #ifdef TARGET_OS_ARCH_bsd_x86 -+ # include "os_bsd_x86.hpp" -+ #endif -+diff --git openjdk.orig/hotspot/src/share/vm/runtime/registerMap.hpp openjdk/hotspot/src/share/vm/runtime/registerMap.hpp -+index 5dd677a..7bd425f 100644 -+--- openjdk.orig/hotspot/src/share/vm/runtime/registerMap.hpp -++++ openjdk/hotspot/src/share/vm/runtime/registerMap.hpp -+@@ -42,6 +42,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "register_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "register_aarch64.hpp" -++#endif -+ -+ class JavaThread; -+ -+@@ -150,6 +153,9 @@ class RegisterMap : public StackObj { -+ #ifdef TARGET_ARCH_ppc -+ # include "registerMap_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "registerMap_aarch64.hpp" -++#endif -+ -+ }; -+ -+diff --git openjdk.orig/hotspot/src/share/vm/runtime/relocator.hpp openjdk/hotspot/src/share/vm/runtime/relocator.hpp -+index c34866f..790bd80 100644 -+--- openjdk.orig/hotspot/src/share/vm/runtime/relocator.hpp -++++ openjdk/hotspot/src/share/vm/runtime/relocator.hpp -+@@ -42,6 +42,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "bytes_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "bytes_aarch64.hpp" -++#endif -+ -+ // This code has been converted from the 1.1E java virtual machine -+ // Thanks to the JavaTopics group for using the code -+diff --git openjdk.orig/hotspot/src/share/vm/runtime/safepoint.cpp openjdk/hotspot/src/share/vm/runtime/safepoint.cpp -+index c29d257..a842bb3 100644 -+--- openjdk.orig/hotspot/src/share/vm/runtime/safepoint.cpp -++++ openjdk/hotspot/src/share/vm/runtime/safepoint.cpp -+@@ -70,6 +70,10 @@ -+ # include "nativeInst_ppc.hpp" -+ # include "vmreg_ppc.inline.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "nativeInst_aarch64.hpp" -++# include "vmreg_aarch64.inline.hpp" -++#endif -+ #ifdef TARGET_OS_FAMILY_linux -+ # include "thread_linux.inline.hpp" -+ #endif -+diff --git openjdk.orig/hotspot/src/share/vm/runtime/sharedRuntime.cpp openjdk/hotspot/src/share/vm/runtime/sharedRuntime.cpp -+index c25dcfe..aa7caff 100644 -+--- openjdk.orig/hotspot/src/share/vm/runtime/sharedRuntime.cpp -++++ openjdk/hotspot/src/share/vm/runtime/sharedRuntime.cpp -+@@ -76,6 +76,10 @@ -+ # include "nativeInst_ppc.hpp" -+ # include "vmreg_ppc.inline.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "nativeInst_aarch64.hpp" -++# include "vmreg_aarch64.inline.hpp" -++#endif -+ #ifdef COMPILER1 -+ #include "c1/c1_Runtime1.hpp" -+ #endif -+diff --git openjdk.orig/hotspot/src/share/vm/runtime/stackValueCollection.cpp openjdk/hotspot/src/share/vm/runtime/stackValueCollection.cpp -+index 110f712..779f994 100644 -+--- openjdk.orig/hotspot/src/share/vm/runtime/stackValueCollection.cpp -++++ openjdk/hotspot/src/share/vm/runtime/stackValueCollection.cpp -+@@ -39,6 +39,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "jniTypes_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "jniTypes_aarch64.hpp" -++#endif -+ -+ jint StackValueCollection::int_at(int slot) const { -+ intptr_t val = at(slot)->get_int(); -+diff --git openjdk.orig/hotspot/src/share/vm/runtime/statSampler.cpp openjdk/hotspot/src/share/vm/runtime/statSampler.cpp -+index 0b24def..c82a214 100644 -+--- openjdk.orig/hotspot/src/share/vm/runtime/statSampler.cpp -++++ openjdk/hotspot/src/share/vm/runtime/statSampler.cpp -+@@ -48,6 +48,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "vm_version_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "vm_version_aarch64.hpp" -++#endif -+ -+ // -------------------------------------------------------- -+ // StatSamplerTask -+diff --git openjdk.orig/hotspot/src/share/vm/runtime/stubCodeGenerator.cpp openjdk/hotspot/src/share/vm/runtime/stubCodeGenerator.cpp -+index b6068a5..4ef7e38 100644 -+--- openjdk.orig/hotspot/src/share/vm/runtime/stubCodeGenerator.cpp -++++ openjdk/hotspot/src/share/vm/runtime/stubCodeGenerator.cpp -+@@ -42,6 +42,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "assembler_ppc.inline.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "assembler_aarch64.inline.hpp" -++#endif -+ -+ -+ // Implementation of StubCodeDesc -+diff --git openjdk.orig/hotspot/src/share/vm/runtime/stubRoutines.hpp openjdk/hotspot/src/share/vm/runtime/stubRoutines.hpp -+index 8481dce..f233b56 100644 -+--- openjdk.orig/hotspot/src/share/vm/runtime/stubRoutines.hpp -++++ openjdk/hotspot/src/share/vm/runtime/stubRoutines.hpp -+@@ -46,6 +46,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "nativeInst_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "nativeInst_aarch64.hpp" -++#endif -+ -+ // StubRoutines provides entry points to assembly routines used by -+ // compiled code and the run-time system. Platform-specific entry -+@@ -116,6 +119,9 @@ class StubRoutines: AllStatic { -+ #endif -+ #ifdef TARGET_ARCH_MODEL_ppc -+ # include "stubRoutines_ppc.hpp" -++#endif -++#ifdef TARGET_ARCH_MODEL_aarch64 -++# include "stubRoutines_aarch64.hpp" -+ #endif -+ -+ -+diff --git openjdk.orig/hotspot/src/share/vm/runtime/thread.hpp openjdk/hotspot/src/share/vm/runtime/thread.hpp -+index 7846cc0..6964c22 100644 -+--- openjdk.orig/hotspot/src/share/vm/runtime/thread.hpp -++++ openjdk/hotspot/src/share/vm/runtime/thread.hpp -+@@ -1651,6 +1651,9 @@ public: -+ #ifdef TARGET_OS_ARCH_linux_ppc -+ # include "thread_linux_ppc.hpp" -+ #endif -++#ifdef TARGET_OS_ARCH_linux_aarch64 -++# include "thread_linux_aarch64.hpp" -++#endif -+ #ifdef TARGET_OS_ARCH_bsd_x86 -+ # include "thread_bsd_x86.hpp" -+ #endif -+diff --git openjdk.orig/hotspot/src/share/vm/runtime/threadLocalStorage.hpp openjdk/hotspot/src/share/vm/runtime/threadLocalStorage.hpp -+index c2f7a9e..26ef559 100644 -+--- openjdk.orig/hotspot/src/share/vm/runtime/threadLocalStorage.hpp -++++ openjdk/hotspot/src/share/vm/runtime/threadLocalStorage.hpp -+@@ -68,6 +68,9 @@ class ThreadLocalStorage : AllStatic { -+ #ifdef TARGET_OS_ARCH_linux_ppc -+ # include "threadLS_linux_ppc.hpp" -+ #endif -++#ifdef TARGET_OS_ARCH_linux_aarch64 -++# include "threadLS_linux_aarch64.hpp" -++#endif -+ #ifdef TARGET_OS_ARCH_bsd_x86 -+ # include "threadLS_bsd_x86.hpp" -+ #endif -+diff --git openjdk.orig/hotspot/src/share/vm/runtime/vmStructs.cpp openjdk/hotspot/src/share/vm/runtime/vmStructs.cpp -+index 8afd933..359f9fc 100644 -+--- openjdk.orig/hotspot/src/share/vm/runtime/vmStructs.cpp -++++ openjdk/hotspot/src/share/vm/runtime/vmStructs.cpp -+@@ -125,6 +125,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "vmStructs_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "vmStructs_aarch64.hpp" -++#endif -+ #ifdef TARGET_OS_FAMILY_linux -+ # include "thread_linux.inline.hpp" -+ #endif -+@@ -161,6 +164,9 @@ -+ #ifdef TARGET_OS_ARCH_linux_ppc -+ # include "vmStructs_linux_ppc.hpp" -+ #endif -++#ifdef TARGET_OS_ARCH_linux_aarch64 -++# include "vmStructs_linux_aarch64.hpp" -++#endif -+ #ifdef TARGET_OS_ARCH_bsd_x86 -+ # include "vmStructs_bsd_x86.hpp" -+ #endif -+@@ -221,6 +227,9 @@ -+ #ifdef TARGET_ARCH_MODEL_ppc -+ # include "adfiles/adGlobals_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_MODEL_aarch64 -++# include "adfiles/adGlobals_aarch64.hpp" -++#endif -+ #endif -+ -+ // Note: the cross-product of (c1, c2, product, nonproduct, ...), -+diff --git openjdk.orig/hotspot/src/share/vm/runtime/vm_version.cpp openjdk/hotspot/src/share/vm/runtime/vm_version.cpp -+index 2d51b67..bba9b01 100644 -+--- openjdk.orig/hotspot/src/share/vm/runtime/vm_version.cpp -++++ openjdk/hotspot/src/share/vm/runtime/vm_version.cpp -+@@ -41,6 +41,9 @@ -+ #ifdef TARGET_ARCH_ppc -+ # include "vm_version_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "vm_version_aarch64.hpp" -++#endif -+ -+ const char* Abstract_VM_Version::_s_vm_release = Abstract_VM_Version::vm_release(); -+ const char* Abstract_VM_Version::_s_internal_vm_info_string = Abstract_VM_Version::internal_vm_info_string(); -+@@ -185,6 +188,7 @@ const char* Abstract_VM_Version::jre_release_version() { -+ AMD64_ONLY("amd64") \ -+ ARM_ONLY("arm") \ -+ PPC_ONLY("ppc") \ -++ AARCH64_ONLY("aarch64") \ -+ SPARC_ONLY("sparc") -+ #endif // ZERO -+ -+diff --git openjdk.orig/hotspot/src/share/vm/utilities/copy.hpp openjdk/hotspot/src/share/vm/utilities/copy.hpp -+index 3dcbfee..198590f 100644 -+--- openjdk.orig/hotspot/src/share/vm/utilities/copy.hpp -++++ openjdk/hotspot/src/share/vm/utilities/copy.hpp -+@@ -337,6 +337,9 @@ class Copy : AllStatic { -+ #ifdef TARGET_ARCH_ppc -+ # include "copy_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "copy_aarch64.hpp" -++#endif -+ -+ }; -+ -+diff --git openjdk.orig/hotspot/src/share/vm/utilities/globalDefinitions.hpp openjdk/hotspot/src/share/vm/utilities/globalDefinitions.hpp -+index b55b0ac..5d11e26 100644 -+--- openjdk.orig/hotspot/src/share/vm/utilities/globalDefinitions.hpp -++++ openjdk/hotspot/src/share/vm/utilities/globalDefinitions.hpp -+@@ -346,6 +346,9 @@ extern int LogMinObjAlignmentInBytes; -+ #ifdef TARGET_ARCH_ppc -+ # include "globalDefinitions_ppc.hpp" -+ #endif -++#ifdef TARGET_ARCH_aarch64 -++# include "globalDefinitions_aarch64.hpp" -++#endif -+ -+ -+ // The byte alignment to be used by Arena::Amalloc. See bugid 4169348. -+diff --git openjdk.orig/hotspot/src/share/vm/utilities/macros.hpp openjdk/hotspot/src/share/vm/utilities/macros.hpp -+index 003f2af..2aa7f87 100644 -+--- openjdk.orig/hotspot/src/share/vm/utilities/macros.hpp -++++ openjdk/hotspot/src/share/vm/utilities/macros.hpp -+@@ -261,6 +261,14 @@ -+ #define NOT_ARM(code) code -+ #endif -+ -++#ifdef AARCH64 -++#define AARCH64_ONLY(code) code -++#define NOT_AARCH64(code) -++#else -++#define AARCH64_ONLY(code) -++#define NOT_AARCH64(code) code -++#endif -++ -+ #ifdef JAVASE_EMBEDDED -+ #define EMBEDDED_ONLY(code) code -+ #define NOT_EMBEDDED(code) --- -2.26.2 - |