summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/java.scm388
-rw-r--r--gnu/packages/patches/icedtea-6-extend-hotspot-aarch64-support.patch1831
3 files changed, 0 insertions, 2220 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 0f7eddc864..aa0117a3f5 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1264,7 +1264,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/icecat-use-older-reveal-hidden-html.patch	\
   %D%/packages/patches/icecat-use-system-graphite2+harfbuzz.patch	\
   %D%/packages/patches/icecat-use-system-media-libs.patch	\
-  %D%/packages/patches/icedtea-6-extend-hotspot-aarch64-support.patch	\
   %D%/packages/patches/icedtea-7-hotspot-aarch64-use-c++98.patch\
   %D%/packages/patches/id3lib-CVE-2007-4460.patch			\
   %D%/packages/patches/id3lib-UTF16-writing-bug.patch			\
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
-