--- /local/jdk9/hotspot/agent/src/os/linux/libproc.h 2014-07-21 13:42:16.132841029 -0400 +++ hotspot/agent/src/os/linux/libproc.h 2014-07-21 07:16:48.193813010 -0400 @@ -36,6 +36,10 @@ #include +#if defined(aarch64) +#include "asm/ptrace.h" +#endif + /************************************************************************************ 0. This is very minimal subset of Solaris libproc just enough for current application. @@ -71,6 +75,9 @@ #if defined(sparc) || defined(sparcv9) || defined(ppc64) #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 --- /local/jdk9/hotspot/agent/src/os/linux/LinuxDebuggerLocal.c 2014-07-21 13:42:16.122841978 -0400 +++ hotspot/agent/src/os/linux/LinuxDebuggerLocal.c 2014-07-21 07:16:48.193813010 -0400 @@ -330,7 +330,7 @@ return (err == PS_OK)? array : 0; } -#if defined(i386) || defined(amd64) || defined(sparc) || defined(sparcv9) +#if defined(i386) || defined(amd64) || defined(sparc) || defined(sparcv9) || defined(aarch64) JNIEXPORT jlongArray JNICALL Java_sun_jvm_hotspot_debugger_linux_LinuxDebuggerLocal_getThreadIntegerRegisterSet0 (JNIEnv *env, jobject this_obj, jint lwp_id) { @@ -352,6 +352,9 @@ #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 @@ -447,6 +450,12 @@ 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; --- /local/jdk9/hotspot/src/os/linux/vm/os_linux.cpp 2014-07-21 13:54:09.875150374 -0400 +++ hotspot/src/os/linux/vm/os_linux.cpp 2014-07-21 07:16:48.363796920 -0400 @@ -273,6 +273,8 @@ # else static char cpu_arch[] = "sparc"; # endif +#elif defined(AARCH64) +static char cpu_arch[] = "aarch64"; #else #error Add appropriate cpu_arch setting #endif @@ -1392,7 +1394,7 @@ #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" @@ -1947,7 +1949,8 @@ {EM_MIPS_RS3_LE, EM_MIPS_RS3_LE, ELFCLASS32, ELFDATA2LSB, (char*)"MIPSel"}, {EM_MIPS, EM_MIPS, ELFCLASS32, ELFDATA2MSB, (char*)"MIPS"}, {EM_PARISC, EM_PARISC, ELFCLASS32, ELFDATA2MSB, (char*)"PARISC"}, - {EM_68K, EM_68K, ELFCLASS32, ELFDATA2MSB, (char*)"M68k"} + {EM_68K, EM_68K, ELFCLASS32, ELFDATA2MSB, (char*)"M68k"}, + {EM_AARCH64, EM_AARCH64, ELFCLASS64, ELFDATA2LSB, (char*)"AARCH64"}, }; #if (defined IA32) @@ -1978,9 +1981,11 @@ static Elf32_Half running_arch_code=EM_MIPS; #elif (defined M68K) static Elf32_Half running_arch_code=EM_68K; + #elif (defined AARCH64) + 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 + IA32, AMD64, IA64, __sparc, __powerpc__, ARM, S390, ALPHA, MIPS, MIPSEL, PARISC, M68K, AARCH64 #endif // Identify compatability class for VM's architecture and library's architecture @@ -3270,7 +3275,7 @@ #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"); @@ -5834,11 +5839,11 @@ 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, --- /local/jdk9/hotspot/src/share/vm/runtime/relocator.hpp 2014-07-21 13:42:16.222832495 -0400 +++ hotspot/src/share/vm/runtime/relocator.hpp 2014-07-21 07:16:48.333799759 -0400 @@ -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 --- /local/jdk9/hotspot/src/share/vm/runtime/deoptimization.cpp 2014-07-21 13:42:16.102843874 -0400 +++ hotspot/src/share/vm/runtime/deoptimization.cpp 2014-07-21 07:16:48.213811117 -0400 @@ -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" @@ -87,6 +90,9 @@ #ifdef TARGET_ARCH_MODEL_ppc_64 # include "adfiles/ad_ppc_64.hpp" #endif +#ifdef TARGET_ARCH_MODEL_aarch64 +# include "adfiles/ad_aarch64.hpp" +#endif #endif // COMPILER2 PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC --- /local/jdk9/hotspot/src/share/vm/runtime/java.cpp 2014-07-21 13:42:16.162838185 -0400 +++ hotspot/src/share/vm/runtime/java.cpp 2014-07-21 07:16:48.273805438 -0400 @@ -80,6 +80,9 @@ #ifdef TARGET_ARCH_ppc # include "vm_version_ppc.hpp" #endif +#ifdef TARGET_ARCH_aarch64 +# include "vm_version_aarch64.hpp" +#endif #if INCLUDE_ALL_GCS #include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp" #include "gc_implementation/parallelScavenge/psScavenge.hpp" --- /local/jdk9/hotspot/src/share/vm/runtime/dtraceJSDT.hpp 2014-07-21 13:42:16.102843874 -0400 +++ hotspot/src/share/vm/runtime/dtraceJSDT.hpp 2014-07-21 07:16:48.223810170 -0400 @@ -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; --- /local/jdk9/hotspot/src/share/vm/runtime/statSampler.cpp 2014-07-21 13:42:16.262828702 -0400 +++ hotspot/src/share/vm/runtime/statSampler.cpp 2014-07-21 07:16:48.373795973 -0400 @@ -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 --- /local/jdk9/hotspot/src/share/vm/runtime/os.hpp 2014-07-21 13:54:10.325107701 -0400 +++ hotspot/src/share/vm/runtime/os.hpp 2014-07-21 07:16:48.313801652 -0400 @@ -812,6 +812,9 @@ #ifdef TARGET_OS_ARCH_aix_ppc # include "os_aix_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 --- /local/jdk9/hotspot/src/share/vm/runtime/sharedRuntime.cpp 2014-07-21 13:54:10.335106752 -0400 +++ hotspot/src/share/vm/runtime/sharedRuntime.cpp 2014-07-21 07:16:48.353797866 -0400 @@ -79,6 +79,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 --- /local/jdk9/hotspot/src/share/vm/runtime/stackValueCollection.cpp 2014-07-21 13:42:16.262828702 -0400 +++ hotspot/src/share/vm/runtime/stackValueCollection.cpp 2014-07-21 07:16:48.363796920 -0400 @@ -39,6 +39,9 @@ #ifdef TARGET_ARCH_ppc # include "jniTypes_ppc.hpp" #endif +#ifdef TARGET_ARCH_aarch64 +# include "jniTypes_aarch64.hpp" +#endif PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC --- /local/jdk9/hotspot/src/share/vm/runtime/orderAccess.inline.hpp 2014-07-21 13:42:16.192835340 -0400 +++ hotspot/src/share/vm/runtime/orderAccess.inline.hpp 2014-07-21 07:16:48.303802599 -0400 @@ -41,6 +41,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 --- /local/jdk9/hotspot/src/share/vm/runtime/icache.hpp 2014-07-21 13:42:16.152839133 -0400 +++ hotspot/src/share/vm/runtime/icache.hpp 2014-07-21 07:16:48.273805438 -0400 @@ -83,6 +83,9 @@ #ifdef TARGET_ARCH_ppc # include "icache_ppc.hpp" #endif +#ifdef TARGET_ARCH_aarch64 +# include "icache_aarch64.hpp" +#endif --- /local/jdk9/hotspot/src/share/vm/runtime/atomic.inline.hpp 2014-07-21 13:42:16.092844823 -0400 +++ hotspot/src/share/vm/runtime/atomic.inline.hpp 2014-07-21 07:16:48.203812063 -0400 @@ -43,6 +43,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 // Solaris #ifdef TARGET_OS_ARCH_solaris_x86 --- /local/jdk9/hotspot/src/share/vm/runtime/frame.cpp 2014-07-21 13:54:10.275112442 -0400 +++ hotspot/src/share/vm/runtime/frame.cpp 2014-07-21 07:16:48.233809224 -0400 @@ -62,6 +62,9 @@ #ifdef TARGET_ARCH_ppc # include "nativeInst_ppc.hpp" #endif +#ifdef TARGET_ARCH_aarch64 +# include "nativeInst_aarch64.hpp" +#endif PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC --- /local/jdk9/hotspot/src/share/vm/runtime/safepoint.cpp 2014-07-21 13:54:10.325107701 -0400 +++ hotspot/src/share/vm/runtime/safepoint.cpp 2014-07-21 07:16:48.343798813 -0400 @@ -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 #if INCLUDE_ALL_GCS #include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp" #include "gc_implementation/shared/suspendibleThreadSet.hpp" --- /local/jdk9/hotspot/src/share/vm/runtime/stubRoutines.hpp 2014-07-21 13:42:16.262828702 -0400 +++ hotspot/src/share/vm/runtime/stubRoutines.hpp 2014-07-21 07:16:48.373795973 -0400 @@ -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 @@ -120,6 +123,9 @@ #ifdef TARGET_ARCH_MODEL_ppc_64 # include "stubRoutines_ppc_64.hpp" #endif +#ifdef TARGET_ARCH_MODEL_aarch64 +# include "stubRoutines_aarch64.hpp" +#endif static jint _verify_oop_count; --- /local/jdk9/hotspot/src/share/vm/runtime/javaCalls.hpp 2014-07-21 13:42:16.162838185 -0400 +++ hotspot/src/share/vm/runtime/javaCalls.hpp 2014-07-21 07:16:48.283804491 -0400 @@ -46,6 +46,9 @@ #ifdef TARGET_ARCH_ppc # include "jniTypes_ppc.hpp" #endif +#ifdef TARGET_ARCH_aarch64 +# include "jniTypes_aarch64.hpp" +#endif // A JavaCallWrapper is constructed before each JavaCall and destructed after the call. // Its purpose is to allocate/deallocate a new handle block and to save/restore the last --- /local/jdk9/hotspot/src/share/vm/runtime/frame.inline.hpp 2014-07-21 13:42:16.112842926 -0400 +++ hotspot/src/share/vm/runtime/frame.inline.hpp 2014-07-21 07:16:48.233809224 -0400 @@ -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" @@ -111,6 +114,9 @@ #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 --- /local/jdk9/hotspot/src/share/vm/runtime/javaFrameAnchor.hpp 2014-07-21 13:42:16.162838185 -0400 +++ hotspot/src/share/vm/runtime/javaFrameAnchor.hpp 2014-07-21 07:16:48.283804491 -0400 @@ -92,6 +92,9 @@ #ifdef TARGET_ARCH_ppc # include "javaFrameAnchor_ppc.hpp" #endif +#ifdef TARGET_ARCH_aarch64 +# include "javaFrameAnchor_aarch64.hpp" +#endif public: --- /local/jdk9/hotspot/src/share/vm/runtime/vm_version.cpp 2014-07-21 13:42:16.342821115 -0400 +++ hotspot/src/share/vm/runtime/vm_version.cpp 2014-07-21 07:16:48.443789348 -0400 @@ -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(); @@ -209,6 +212,7 @@ ARM_ONLY("arm") \ PPC32_ONLY("ppc") \ PPC64_ONLY("ppc64") \ + AARCH64_ONLY("aarch64") \ SPARC_ONLY("sparc") #endif // ZERO --- /local/jdk9/hotspot/src/share/vm/runtime/prefetch.inline.hpp 2014-07-21 13:42:16.212833443 -0400 +++ hotspot/src/share/vm/runtime/prefetch.inline.hpp 2014-07-21 07:16:48.323800706 -0400 @@ -40,6 +40,9 @@ #ifdef TARGET_OS_ARCH_linux_arm # include "prefetch_linux_arm.inline.hpp" #endif +#ifdef TARGET_OS_ARCH_linux_aarch64 +# include "prefetch_linux_aarch64.inline.hpp" +#endif #ifdef TARGET_OS_ARCH_linux_ppc # include "prefetch_linux_ppc.inline.hpp" #endif --- /local/jdk9/hotspot/src/share/vm/runtime/threadLocalStorage.hpp 2014-07-21 13:42:16.302824908 -0400 +++ hotspot/src/share/vm/runtime/threadLocalStorage.hpp 2014-07-21 07:16:48.403793134 -0400 @@ -68,6 +68,9 @@ #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_aix_ppc # include "threadLS_aix_ppc.hpp" #endif --- /local/jdk9/hotspot/src/share/vm/runtime/frame.hpp 2014-07-21 13:42:16.112842926 -0400 +++ hotspot/src/share/vm/runtime/frame.hpp 2014-07-21 07:16:48.233809224 -0400 @@ -52,6 +52,9 @@ #ifdef TARGET_ARCH_MODEL_ppc_64 # include "adfiles/adGlobals_ppc_64.hpp" #endif +#ifdef TARGET_ARCH_MODEL_aarch64 +# include "adfiles/adGlobals_aarch64.hpp" +#endif #endif // COMPILER2 #ifdef ZERO #ifdef TARGET_ARCH_zero @@ -498,6 +501,9 @@ #ifdef TARGET_ARCH_ppc # include "frame_ppc.hpp" #endif +#ifdef TARGET_ARCH_aarch64 +# include "frame_aarch64.hpp" +#endif }; --- /local/jdk9/hotspot/src/share/vm/runtime/registerMap.hpp 2014-07-21 13:42:16.222832495 -0400 +++ hotspot/src/share/vm/runtime/registerMap.hpp 2014-07-21 07:16:48.333799759 -0400 @@ -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 @@ #ifdef TARGET_ARCH_ppc # include "registerMap_ppc.hpp" #endif +#ifdef TARGET_ARCH_aarch64 +# include "registerMap_aarch64.hpp" +#endif }; --- /local/jdk9/hotspot/src/share/vm/runtime/thread.hpp 2014-07-21 13:54:10.355104856 -0400 +++ hotspot/src/share/vm/runtime/thread.hpp 2014-07-21 07:16:48.403793134 -0400 @@ -1699,6 +1699,9 @@ #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_aix_ppc # include "thread_aix_ppc.hpp" #endif --- /local/jdk9/hotspot/src/share/vm/runtime/vmStructs.cpp 2014-07-21 13:42:16.332822063 -0400 +++ hotspot/src/share/vm/runtime/vmStructs.cpp 2014-07-21 07:16:48.433790295 -0400 @@ -120,6 +120,9 @@ #ifdef TARGET_ARCH_ppc # include "vmStructs_ppc.hpp" #endif +#ifdef TARGET_ARCH_aarch64 +# include "vmStructs_aarch64.hpp" +#endif #ifdef TARGET_OS_ARCH_linux_x86 # include "vmStructs_linux_x86.hpp" #endif @@ -144,6 +147,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_aix_ppc # include "vmStructs_aix_ppc.hpp" #endif @@ -220,6 +226,9 @@ #ifdef TARGET_ARCH_MODEL_ppc_64 # include "adfiles/adGlobals_ppc_64.hpp" #endif +#ifdef TARGET_ARCH_MODEL_aarch64 +# include "adfiles/adGlobals_aarch64.hpp" +#endif #endif // COMPILER2 // Note: the cross-product of (c1, c2, product, nonproduct, ...), --- /local/jdk9/hotspot/src/share/vm/runtime/globals.hpp 2014-07-21 13:54:10.295110545 -0400 +++ hotspot/src/share/vm/runtime/globals.hpp 2014-07-21 07:16:48.263806384 -0400 @@ -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 @@ -91,6 +94,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_aix_ppc # include "globals_aix_ppc.hpp" #endif @@ -110,8 +116,8 @@ #ifdef TARGET_ARCH_arm # include "c1_globals_arm.hpp" #endif -#ifdef TARGET_ARCH_ppc -# include "c1_globals_ppc.hpp" +#ifdef TARGET_ARCH_aarch64 +# include "c1_globals_aarch64.hpp" #endif #ifdef TARGET_OS_FAMILY_linux # include "c1_globals_linux.hpp" @@ -142,6 +148,9 @@ #ifdef TARGET_ARCH_ppc # include "c2_globals_ppc.hpp" #endif +#ifdef TARGET_ARCH_aarch64 +# include "c2_globals_aarch64.hpp" +#endif #ifdef TARGET_OS_FAMILY_linux # include "c2_globals_linux.hpp" #endif --- /local/jdk9/hotspot/src/share/vm/opto/buildOopMap.cpp 2014-07-21 13:42:16.612795511 -0400 +++ hotspot/src/share/vm/opto/buildOopMap.cpp 2014-07-21 07:16:48.733761901 -0400 @@ -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. // --- /local/jdk9/hotspot/src/share/vm/opto/regmask.cpp 2014-07-21 13:42:16.852772752 -0400 +++ hotspot/src/share/vm/opto/regmask.cpp 2014-07-21 07:16:48.953741079 -0400 @@ -46,6 +46,9 @@ #ifdef TARGET_ARCH_MODEL_ppc_64 # include "adfiles/ad_ppc_64.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 */ --- /local/jdk9/hotspot/src/share/vm/opto/compile.cpp 2014-07-21 13:54:10.205119080 -0400 +++ hotspot/src/share/vm/opto/compile.cpp 2014-07-21 07:16:48.783757169 -0400 @@ -89,6 +89,9 @@ #ifdef TARGET_ARCH_MODEL_ppc_64 # include "adfiles/ad_ppc_64.hpp" #endif +#ifdef TARGET_ARCH_MODEL_aarch64 +# include "adfiles/ad_aarch64.hpp" +#endif // -------------------- Compile::mach_constant_base_node ----------------------- --- /local/jdk9/hotspot/src/share/vm/opto/regmask.hpp 2014-07-21 13:42:16.852772752 -0400 +++ hotspot/src/share/vm/opto/regmask.hpp 2014-07-21 07:16:48.953741079 -0400 @@ -48,6 +48,9 @@ #ifdef TARGET_ARCH_MODEL_ppc_64 # include "adfiles/adGlobals_ppc_64.hpp" #endif +#ifdef TARGET_ARCH_MODEL_aarch64 +# include "adfiles/adGlobals_aarch64.hpp" +#endif // Some fun naming (textual) substitutions: // --- /local/jdk9/hotspot/src/share/vm/opto/lcm.cpp 2014-07-21 13:42:16.712786028 -0400 +++ hotspot/src/share/vm/opto/lcm.cpp 2014-07-21 07:16:48.833752437 -0400 @@ -51,6 +51,9 @@ #ifdef TARGET_ARCH_MODEL_ppc_64 # include "adfiles/ad_ppc_64.hpp" #endif +#ifdef TARGET_ARCH_MODEL_aarch64 +# include "adfiles/ad_aarch64.hpp" +#endif // Optimization - Graph Style --- /local/jdk9/hotspot/src/share/vm/opto/matcher.cpp 2014-07-21 13:42:16.772780338 -0400 +++ hotspot/src/share/vm/opto/matcher.cpp 2014-07-21 07:16:48.883747704 -0400 @@ -58,6 +58,9 @@ #ifdef TARGET_ARCH_MODEL_ppc_64 # include "adfiles/ad_ppc_64.hpp" #endif +#ifdef TARGET_ARCH_MODEL_aarch64 +# include "adfiles/ad_aarch64.hpp" +#endif OptoReg::Name OptoReg::c_frame_pointer; --- /local/jdk9/hotspot/src/share/vm/opto/c2_globals.hpp 2014-07-21 13:42:16.612795511 -0400 +++ hotspot/src/share/vm/opto/c2_globals.hpp 2014-07-21 07:16:48.743760955 -0400 @@ -38,6 +38,9 @@ #ifdef TARGET_ARCH_ppc # include "c2_globals_ppc.hpp" #endif +#ifdef TARGET_ARCH_aarch64 +# include "c2_globals_aarch64.hpp" +#endif #ifdef TARGET_OS_FAMILY_linux # include "c2_globals_linux.hpp" #endif --- /local/jdk9/hotspot/src/share/vm/opto/c2compiler.cpp 2014-07-21 13:42:16.622794563 -0400 +++ hotspot/src/share/vm/opto/c2compiler.cpp 2014-07-21 07:16:48.743760955 -0400 @@ -46,6 +46,9 @@ #ifdef TARGET_ARCH_MODEL_ppc_64 # include "adfiles/ad_ppc_64.hpp" #endif +#ifdef TARGET_ARCH_MODEL_aarch64 +# include "adfiles/ad_aarch64.hpp" +#endif // register information defined by ADLC extern const char register_save_policy[]; --- /local/jdk9/hotspot/src/share/vm/opto/gcm.cpp 2014-07-21 13:42:16.682788873 -0400 +++ hotspot/src/share/vm/opto/gcm.cpp 2014-07-21 07:16:48.813754330 -0400 @@ -56,6 +56,9 @@ #ifdef TARGET_ARCH_MODEL_ppc_64 # include "adfiles/ad_ppc_64.hpp" #endif +#ifdef TARGET_ARCH_MODEL_aarch64 +# include "adfiles/ad_aarch64.hpp" +#endif // Portions of code courtesy of Clifford Click --- /local/jdk9/hotspot/src/share/vm/opto/runtime.cpp 2014-07-21 13:42:16.852772752 -0400 +++ hotspot/src/share/vm/opto/runtime.cpp 2014-07-21 07:16:48.963740133 -0400 @@ -89,6 +89,9 @@ #ifdef TARGET_ARCH_MODEL_ppc_64 # include "adfiles/ad_ppc_64.hpp" #endif +#ifdef TARGET_ARCH_MODEL_aarch64 +# include "adfiles/ad_aarch64.hpp" +#endif // For debugging purposes: --- /local/jdk9/hotspot/src/share/vm/opto/locknode.hpp 2014-07-21 13:42:16.732784131 -0400 +++ hotspot/src/share/vm/opto/locknode.hpp 2014-07-21 07:16:48.853750544 -0400 @@ -49,6 +49,9 @@ #ifdef TARGET_ARCH_MODEL_ppc_64 # include "adfiles/ad_ppc_64.hpp" #endif +#ifdef TARGET_ARCH_MODEL_aarch64 +# include "adfiles/ad_aarch64.hpp" +#endif //------------------------------BoxLockNode------------------------------------ class BoxLockNode : public Node { --- /local/jdk9/hotspot/src/share/vm/opto/generateOptoStub.cpp 2014-07-21 13:42:16.682788873 -0400 +++ hotspot/src/share/vm/opto/generateOptoStub.cpp 2014-07-21 07:16:48.813754330 -0400 @@ -95,8 +95,6 @@ in_bytes(JavaThread::frame_anchor_offset()) + in_bytes(JavaFrameAnchor::flags_offset())); #endif /* defined(SPARC) */ - - // Drop in the last_Java_sp. last_Java_fp is not touched. // Always do this after the other "last_Java_frame" fields are set since // as soon as last_Java_sp != NULL the has_last_Java_frame is true and --- /local/jdk9/hotspot/src/share/vm/opto/output.hpp 2014-07-21 13:42:16.812776545 -0400 +++ hotspot/src/share/vm/opto/output.hpp 2014-07-21 07:16:48.923743919 -0400 @@ -48,6 +48,9 @@ #ifdef TARGET_ARCH_MODEL_ppc_64 # include "adfiles/ad_ppc_64.hpp" #endif +#ifdef TARGET_ARCH_MODEL_aarch64 +# include "adfiles/ad_aarch64.hpp" +#endif class Arena; class Bundle; --- /local/jdk9/hotspot/src/share/vm/interpreter/interpreterRuntime.hpp 2014-07-21 13:42:16.312823960 -0400 +++ hotspot/src/share/vm/interpreter/interpreterRuntime.hpp 2014-07-21 07:16:48.463787455 -0400 @@ -177,6 +177,9 @@ #ifdef TARGET_ARCH_ppc # include "interpreterRT_ppc.hpp" #endif +#ifdef TARGET_ARCH_aarch64 +# include "interpreterRT_aarch64.hpp" +#endif // Interpreter's frequency counter overflow --- /local/jdk9/hotspot/src/share/vm/interpreter/templateTable.hpp 2014-07-21 13:42:16.332822063 -0400 +++ hotspot/src/share/vm/interpreter/templateTable.hpp 2014-07-21 07:16:48.483785562 -0400 @@ -46,6 +46,9 @@ #ifdef TARGET_ARCH_MODEL_ppc_64 # include "interp_masm_ppc_64.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 @@ -379,6 +382,9 @@ #ifdef TARGET_ARCH_MODEL_ppc_64 # include "templateTable_ppc_64.hpp" #endif +#ifdef TARGET_ARCH_MODEL_aarch64 +# include "templateTable_aarch64.hpp" +#endif }; #endif /* !CC_INTERP */ --- /local/jdk9/hotspot/src/share/vm/interpreter/interpreter.hpp 2014-07-21 13:42:16.312823960 -0400 +++ hotspot/src/share/vm/interpreter/interpreter.hpp 2014-07-21 07:16:48.453788402 -0400 @@ -160,6 +160,9 @@ #ifdef TARGET_ARCH_ppc # include "interpreter_ppc.hpp" #endif +#ifdef TARGET_ARCH_aarch64 +# include "interpreter_aarch64.hpp" +#endif }; --- /local/jdk9/hotspot/src/share/vm/interpreter/bytecodeInterpreter.hpp 2014-07-21 13:42:16.282826805 -0400 +++ hotspot/src/share/vm/interpreter/bytecodeInterpreter.hpp 2014-07-21 07:16:48.433790295 -0400 @@ -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 @@ -601,6 +604,9 @@ #ifdef TARGET_ARCH_ppc # include "bytecodeInterpreter_ppc.hpp" #endif +#ifdef TARGET_ARCH_aarch64 +# include "bytecodeInterpreter_aarch64.hpp" +#endif }; // BytecodeInterpreter --- /local/jdk9/hotspot/src/share/vm/interpreter/interpreterGenerator.hpp 2014-07-21 13:42:16.312823960 -0400 +++ hotspot/src/share/vm/interpreter/interpreterGenerator.hpp 2014-07-21 07:16:48.453788402 -0400 @@ -56,6 +56,9 @@ #ifdef TARGET_ARCH_ppc # include "interpreterGenerator_ppc.hpp" #endif +#ifdef TARGET_ARCH_aarch64 +# include "interpreterGenerator_aarch64.hpp" +#endif }; --- /local/jdk9/hotspot/src/share/vm/interpreter/templateInterpreter.hpp 2014-07-21 13:42:16.332822063 -0400 +++ hotspot/src/share/vm/interpreter/templateInterpreter.hpp 2014-07-21 07:16:48.473786509 -0400 @@ -202,6 +202,9 @@ #ifdef TARGET_ARCH_ppc # include "templateInterpreter_ppc.hpp" #endif +#ifdef TARGET_ARCH_aarch64 +# include "templateInterpreter_aarch64.hpp" +#endif }; --- /local/jdk9/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp 2014-07-21 13:54:10.135125718 -0400 +++ hotspot/src/share/vm/interpreter/interpreterRuntime.cpp 2014-07-21 07:16:48.463787455 -0400 @@ -72,6 +72,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 --- /local/jdk9/hotspot/src/share/vm/interpreter/bytecodes.hpp 2014-07-21 13:42:16.292825857 -0400 +++ hotspot/src/share/vm/interpreter/bytecodes.hpp 2014-07-21 07:16:48.453788402 -0400 @@ -287,7 +287,6 @@ _shouldnotreachhere, // For debugging - number_of_codes }; --- /local/jdk9/hotspot/src/share/vm/interpreter/cppInterpreterGenerator.hpp 2014-07-21 13:42:16.302824908 -0400 +++ hotspot/src/share/vm/interpreter/cppInterpreterGenerator.hpp 2014-07-21 07:16:48.453788402 -0400 @@ -59,6 +59,9 @@ #ifdef TARGET_ARCH_ppc # include "cppInterpreterGenerator_ppc.hpp" #endif +#ifdef TARGET_ARCH_aarch64 +# include "cppInterpreterGenerator_aarch64.hpp" +#endif }; --- /local/jdk9/hotspot/src/share/vm/interpreter/cppInterpreter.hpp 2014-07-21 13:42:16.302824908 -0400 +++ hotspot/src/share/vm/interpreter/cppInterpreter.hpp 2014-07-21 07:16:48.453788402 -0400 @@ -96,6 +96,9 @@ #ifdef TARGET_ARCH_ppc # include "cppInterpreter_ppc.hpp" #endif +#ifdef TARGET_ARCH_aarch64 +# include "cppInterpreter_aarch64.hpp" +#endif }; --- /local/jdk9/hotspot/src/share/vm/interpreter/abstractInterpreter.hpp 2014-07-21 13:42:16.272827753 -0400 +++ hotspot/src/share/vm/interpreter/abstractInterpreter.hpp 2014-07-21 07:16:48.423791241 -0400 @@ -48,6 +48,9 @@ #ifdef TARGET_ARCH_MODEL_ppc_64 # include "interp_masm_ppc_64.hpp" #endif +#ifdef TARGET_ARCH_MODEL_aarch64 +# include "interp_masm_aarch64.hpp" +#endif // This file contains the platform-independent parts // of the abstract interpreter and the abstract interpreter generator. --- /local/jdk9/hotspot/src/share/vm/interpreter/bytecodeStream.hpp 2014-07-21 13:42:16.292825857 -0400 +++ hotspot/src/share/vm/interpreter/bytecodeStream.hpp 2014-07-21 07:16:48.443789348 -0400 @@ -44,6 +44,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 Method*. --- /local/jdk9/hotspot/src/share/vm/interpreter/bytecodes.cpp 2014-07-21 13:42:16.292825857 -0400 +++ hotspot/src/share/vm/interpreter/bytecodes.cpp 2014-07-21 07:16:48.443789348 -0400 @@ -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)) --- /local/jdk9/hotspot/src/share/vm/interpreter/bytecode.hpp 2014-07-21 13:42:16.272827753 -0400 +++ hotspot/src/share/vm/interpreter/bytecode.hpp 2014-07-21 07:16:48.433790295 -0400 @@ -43,6 +43,9 @@ #ifdef TARGET_ARCH_ppc # include "bytes_ppc.hpp" #endif +#ifdef TARGET_ARCH_aarch64 +# include "bytes_aarch64.hpp" +#endif class ciBytecodeStream; --- /local/jdk9/hotspot/src/share/vm/interpreter/templateInterpreterGenerator.hpp 2014-07-21 13:42:16.332822063 -0400 +++ hotspot/src/share/vm/interpreter/templateInterpreterGenerator.hpp 2014-07-21 07:16:48.483785562 -0400 @@ -101,6 +101,9 @@ #ifdef TARGET_ARCH_ppc # include "templateInterpreterGenerator_ppc.hpp" #endif +#ifdef TARGET_ARCH_aarch64 +# include "templateInterpreterGenerator_aarch64.hpp" +#endif }; --- /local/jdk9/hotspot/src/share/vm/interpreter/bytecodeInterpreter.inline.hpp 2014-07-21 13:42:16.282826805 -0400 +++ hotspot/src/share/vm/interpreter/bytecodeInterpreter.inline.hpp 2014-07-21 07:16:48.443789348 -0400 @@ -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 --- /local/jdk9/hotspot/src/share/vm/oops/oop.inline.hpp 2014-07-21 13:42:16.592797408 -0400 +++ hotspot/src/share/vm/oops/oop.inline.hpp 2014-07-21 07:16:48.713763794 -0400 @@ -57,6 +57,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 --- /local/jdk9/hotspot/src/share/vm/oops/constantPool.hpp 2014-07-21 13:42:16.512804994 -0400 +++ hotspot/src/share/vm/oops/constantPool.hpp 2014-07-21 07:16:48.643770419 -0400 @@ -47,6 +47,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. --- /local/jdk9/hotspot/src/share/vm/compiler/disassembler.hpp 2014-07-21 13:54:10.005138046 -0400 +++ hotspot/src/share/vm/compiler/disassembler.hpp 2014-07-21 07:16:48.723762848 -0400 @@ -93,6 +93,9 @@ #ifdef TARGET_ARCH_ppc # include "disassembler_ppc.hpp" #endif +#ifdef TARGET_ARCH_aarch64 +# include "disassembler_aarch64.hpp" +#endif public: --- /local/jdk9/hotspot/src/share/vm/compiler/disassembler.cpp 2014-07-21 13:54:10.005138046 -0400 +++ hotspot/src/share/vm/compiler/disassembler.cpp 2014-07-21 07:16:48.713763794 -0400 @@ -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 --- /local/jdk9/hotspot/src/share/vm/utilities/macros.hpp 2014-07-21 13:42:16.522804046 -0400 +++ hotspot/src/share/vm/utilities/macros.hpp 2014-07-21 07:16:48.613773259 -0400 @@ -401,6 +401,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) --- /local/jdk9/hotspot/src/share/vm/utilities/copy.hpp 2014-07-21 13:42:16.482807839 -0400 +++ hotspot/src/share/vm/utilities/copy.hpp 2014-07-21 07:16:48.573777044 -0400 @@ -337,6 +337,9 @@ #ifdef TARGET_ARCH_ppc # include "copy_ppc.hpp" #endif +#ifdef TARGET_ARCH_aarch64 +# include "copy_aarch64.hpp" +#endif }; --- /local/jdk9/hotspot/src/share/vm/utilities/globalDefinitions.hpp 2014-07-21 13:42:16.512804994 -0400 +++ hotspot/src/share/vm/utilities/globalDefinitions.hpp 2014-07-21 07:16:48.603774205 -0400 @@ -429,6 +429,9 @@ #ifdef TARGET_ARCH_ppc # include "globalDefinitions_ppc.hpp" #endif +#ifdef TARGET_ARCH_aarch64 +# include "globalDefinitions_aarch64.hpp" +#endif /* * If a platform does not support native stack walking --- /local/jdk9/hotspot/src/share/vm/code/vmreg.hpp 2014-07-21 13:42:16.622794563 -0400 +++ hotspot/src/share/vm/code/vmreg.hpp 2014-07-21 07:16:48.703764740 -0400 @@ -53,6 +53,9 @@ #ifdef TARGET_ARCH_MODEL_ppc_64 # include "adfiles/adGlobals_ppc_64.hpp" #endif +#ifdef TARGET_ARCH_MODEL_aarch64 +# include "adfiles/adGlobals_aarch64.hpp" +#endif #endif //------------------------------VMReg------------------------------------------ @@ -176,6 +179,9 @@ #ifdef TARGET_ARCH_ppc # include "vmreg_ppc.hpp" #endif +#ifdef TARGET_ARCH_aarch64 +# include "vmreg_aarch64.hpp" +#endif }; --- /local/jdk9/hotspot/src/share/vm/code/relocInfo.hpp 2014-07-21 13:42:16.622794563 -0400 +++ hotspot/src/share/vm/code/relocInfo.hpp 2014-07-21 07:16:48.693765687 -0400 @@ -430,7 +430,9 @@ #ifdef TARGET_ARCH_ppc # include "relocInfo_ppc.hpp" #endif - +#ifdef TARGET_ARCH_aarch64 +# include "relocInfo_aarch64.hpp" +#endif protected: // Derived constant, based on format_width which is PD: --- /local/jdk9/hotspot/src/share/vm/code/compiledIC.hpp 2014-07-21 13:54:09.985139943 -0400 +++ hotspot/src/share/vm/code/compiledIC.hpp 2014-07-21 07:16:48.663768526 -0400 @@ -42,6 +42,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. @@ -308,7 +311,11 @@ friend CompiledStaticCall* compiledStaticCall_at(Relocation* call_site); // Code +#if defined AARCH64 && !defined ZERO + static void emit_to_interp_stub(CodeBuffer &cbuf, address mark); +#else static void emit_to_interp_stub(CodeBuffer &cbuf); +#endif static int to_interp_stub_size(); static int reloc_to_interp_stub(); --- /local/jdk9/hotspot/src/share/vm/code/codeBlob.cpp 2014-07-21 13:42:16.572799304 -0400 +++ hotspot/src/share/vm/code/codeBlob.cpp 2014-07-21 07:16:48.653769473 -0400 @@ -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 --- /local/jdk9/hotspot/src/share/vm/c1/c1_LIRAssembler.hpp 2014-07-21 13:42:16.342821115 -0400 +++ hotspot/src/share/vm/c1/c1_LIRAssembler.hpp 2014-07-21 07:16:48.433790295 -0400 @@ -274,6 +274,9 @@ #ifdef TARGET_ARCH_ppc # include "c1_LIRAssembler_ppc.hpp" #endif +#ifdef TARGET_ARCH_aarch64 +# include "c1_LIRAssembler_aarch64.hpp" +#endif }; --- /local/jdk9/hotspot/src/share/vm/c1/c1_LinearScan.hpp 2014-07-21 13:42:16.362819219 -0400 +++ hotspot/src/share/vm/c1/c1_LinearScan.hpp 2014-07-21 07:16:48.453788402 -0400 @@ -985,6 +985,9 @@ #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 --- /local/jdk9/hotspot/src/share/vm/c1/c1_MacroAssembler.hpp 2014-07-21 13:42:16.362819219 -0400 +++ hotspot/src/share/vm/c1/c1_MacroAssembler.hpp 2014-07-21 07:16:48.453788402 -0400 @@ -59,6 +59,9 @@ #ifdef TARGET_ARCH_ppc # include "c1_MacroAssembler_ppc.hpp" #endif +#ifdef TARGET_ARCH_aarch64 +# include "c1_MacroAssembler_aarch64.hpp" +#endif }; --- /local/jdk9/hotspot/src/share/vm/c1/c1_FrameMap.cpp 2014-07-21 13:42:16.312823960 -0400 +++ hotspot/src/share/vm/c1/c1_FrameMap.cpp 2014-07-21 07:16:48.403793134 -0400 @@ -41,6 +41,9 @@ #ifdef TARGET_ARCH_ppc # include "vmreg_ppc.inline.hpp" #endif +#ifdef TARGET_ARCH_aarch64 +# include "vmreg_aarch64.inline.hpp" +#endif --- /local/jdk9/hotspot/src/share/vm/c1/c1_globals.hpp 2014-07-21 13:42:16.382817322 -0400 +++ hotspot/src/share/vm/c1/c1_globals.hpp 2014-07-21 07:16:48.473786509 -0400 @@ -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 --- /local/jdk9/hotspot/src/share/vm/c1/c1_LinearScan.cpp 2014-07-21 13:42:16.362819219 -0400 +++ hotspot/src/share/vm/c1/c1_LinearScan.cpp 2014-07-21 07:16:48.453788402 -0400 @@ -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 @@ -2198,7 +2201,7 @@ 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 --- /local/jdk9/hotspot/src/share/vm/c1/c1_Defs.hpp 2014-07-21 13:42:16.312823960 -0400 +++ hotspot/src/share/vm/c1/c1_Defs.hpp 2014-07-21 07:16:48.403793134 -0400 @@ -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 @@ #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 --- /local/jdk9/hotspot/src/share/vm/c1/c1_FpuStackSim.hpp 2014-07-21 13:42:16.312823960 -0400 +++ hotspot/src/share/vm/c1/c1_FpuStackSim.hpp 2014-07-21 07:16:48.403793134 -0400 @@ -44,6 +44,9 @@ #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 --- /local/jdk9/hotspot/src/share/vm/c1/c1_LIR.cpp 2014-07-21 13:42:16.342821115 -0400 +++ hotspot/src/share/vm/c1/c1_LIR.cpp 2014-07-21 07:16:48.433790295 -0400 @@ -67,7 +67,7 @@ #endif -#ifdef ARM +#if defined(ARM) || defined (TARGET_ARCH_aarch64) FloatRegister LIR_OprDesc::as_float_reg() const { return as_FloatRegister(fpu_regnr()); @@ -154,7 +154,11 @@ #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 || base()->type() == T_METADATA, "wrong type for addresses"); #else @@ -561,7 +565,7 @@ 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 @@ -1576,6 +1580,11 @@ 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()); @@ -1964,7 +1973,7 @@ 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(" "); @@ -2105,8 +2114,12 @@ // LIR_OpProfileType void LIR_OpProfileType::print_instr(outputStream* out) const { - out->print("exact = "); exact_klass()->print_name_on(out); - out->print("current = "); ciTypeEntries::print_ciklass(out, current_klass()); + out->print("exact = "); + if (exact_klass()) + exact_klass()->print_name_on(out); + else + out->print("(null)"); + out->print(" current = "); ciTypeEntries::print_ciklass(out, current_klass()); mdp()->print(out); out->print(" "); obj()->print(out); out->print(" "); tmp()->print(out); out->print(" "); --- /local/jdk9/hotspot/src/share/vm/c1/c1_FrameMap.hpp 2014-07-21 13:42:16.312823960 -0400 +++ hotspot/src/share/vm/c1/c1_FrameMap.hpp 2014-07-21 07:16:48.403793134 -0400 @@ -94,6 +94,9 @@ #ifdef TARGET_ARCH_ppc # include "c1_FrameMap_ppc.hpp" #endif +#ifdef TARGET_ARCH_aarch64 +# include "c1_FrameMap_aarch64.hpp" +#endif friend class LIR_OprDesc; --- /local/jdk9/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp 2014-07-21 13:42:16.342821115 -0400 +++ hotspot/src/share/vm/c1/c1_LIRAssembler.cpp 2014-07-21 07:16:48.433790295 -0400 @@ -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) { --- /local/jdk9/hotspot/src/share/vm/c1/c1_LIR.hpp 2014-07-21 13:42:16.342821115 -0400 +++ hotspot/src/share/vm/c1/c1_LIR.hpp 2014-07-21 07:16:48.433790295 -0400 @@ -450,8 +450,8 @@ 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 @@ -541,7 +541,7 @@ , _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) @@ -622,7 +622,7 @@ 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 | @@ -1474,7 +1474,7 @@ private: Bytecodes::Code _bytecode; ConversionStub* _stub; -#ifdef PPC +#if defined(PPC) || defined(TARGET_ARCH_aarch64) LIR_Opr _tmp1; LIR_Opr _tmp2; #endif @@ -1489,7 +1489,7 @@ #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) @@ -1501,7 +1501,7 @@ 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 @@ -2144,7 +2144,14 @@ #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)); } --- /local/jdk9/hotspot/src/share/vm/c1/c1_Runtime1.hpp 2014-07-21 13:42:16.372818270 -0400 +++ hotspot/src/share/vm/c1/c1_Runtime1.hpp 2014-07-21 07:16:48.463787455 -0400 @@ -164,7 +164,9 @@ static int move_appendix_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 static void initialize(BufferBlob* blob); --- /local/jdk9/hotspot/src/share/vm/c1/c1_Runtime1.cpp 2014-07-21 13:54:09.915146581 -0400 +++ hotspot/src/share/vm/c1/c1_Runtime1.cpp 2014-07-21 07:16:48.463787455 -0400 @@ -1212,6 +1212,7 @@ // 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 @@ -1296,7 +1297,7 @@ return caller_is_deopted(); JRT_END - +#endif JRT_LEAF(void, Runtime1::trace_block_entry(jint block_id)) // for now we just print out the block id --- /local/jdk9/hotspot/src/share/vm/c1/c1_Canonicalizer.cpp 2014-07-21 13:42:16.292825857 -0400 +++ hotspot/src/share/vm/c1/c1_Canonicalizer.cpp 2014-07-21 07:16:48.393794081 -0400 @@ -904,6 +904,13 @@ 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(); --- /local/jdk9/hotspot/src/share/vm/asm/assembler.hpp 2014-07-21 13:42:16.282826805 -0400 +++ hotspot/src/share/vm/asm/assembler.hpp 2014-07-21 07:16:48.383795027 -0400 @@ -53,6 +53,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. @@ -452,6 +456,9 @@ #ifdef TARGET_ARCH_ppc # include "assembler_ppc.hpp" #endif +#ifdef TARGET_ARCH_aarch64 +# include "assembler_aarch64.hpp" +#endif #endif // SHARE_VM_ASM_ASSEMBLER_HPP --- /local/jdk9/hotspot/src/share/vm/asm/codeBuffer.hpp 2014-07-21 13:42:16.292825857 -0400 +++ hotspot/src/share/vm/asm/codeBuffer.hpp 2014-07-21 07:16:48.383795027 -0400 @@ -592,6 +592,9 @@ #ifdef TARGET_ARCH_ppc # include "codeBuffer_ppc.hpp" #endif +#ifdef TARGET_ARCH_aarch64 +# include "codeBuffer_aarch64.hpp" +#endif }; --- /local/jdk9/hotspot/src/share/vm/asm/macroAssembler.hpp 2014-07-21 13:42:16.292825857 -0400 +++ hotspot/src/share/vm/asm/macroAssembler.hpp 2014-07-21 07:16:48.383795027 -0400 @@ -42,5 +42,8 @@ #ifdef TARGET_ARCH_ppc # include "macroAssembler_ppc.hpp" #endif +#ifdef TARGET_ARCH_aarch64 +# include "macroAssembler_aarch64.hpp" +#endif #endif // SHARE_VM_ASM_MACROASSEMBLER_HPP --- /local/jdk9/hotspot/src/share/vm/asm/macroAssembler.inline.hpp 2014-07-21 13:42:16.292825857 -0400 +++ hotspot/src/share/vm/asm/macroAssembler.inline.hpp 2014-07-21 07:16:48.383795027 -0400 @@ -42,5 +42,8 @@ #ifdef TARGET_ARCH_ppc # include "macroAssembler_ppc.inline.hpp" #endif +#ifdef TARGET_ARCH_aarch64 +# include "macroAssembler_aarch64.inline.hpp" +#endif #endif // SHARE_VM_ASM_MACROASSEMBLER_INLINE_HPP --- /local/jdk9/hotspot/src/share/vm/asm/register.hpp 2014-07-21 13:42:16.292825857 -0400 +++ hotspot/src/share/vm/asm/register.hpp 2014-07-21 07:16:48.383795027 -0400 @@ -108,6 +108,9 @@ #ifdef TARGET_ARCH_ppc # include "register_ppc.hpp" #endif +#ifdef TARGET_ARCH_aarch64 +# include "register_aarch64.hpp" +#endif // Debugging support --- /local/jdk9/hotspot/src/share/vm/asm/assembler.inline.hpp 2014-07-21 13:42:16.282826805 -0400 +++ hotspot/src/share/vm/asm/assembler.inline.hpp 2014-07-21 07:16:48.383795027 -0400 @@ -42,5 +42,8 @@ #ifdef TARGET_ARCH_ppc # include "assembler_ppc.inline.hpp" #endif +#ifdef TARGET_ARCH_aarch64 +# include "assembler_aarch64.inline.hpp" +#endif #endif // SHARE_VM_ASM_ASSEMBLER_INLINE_HPP --- /local/jdk9/hotspot/src/share/vm/classfile/bytecodeAssembler.cpp 2014-07-21 13:42:16.472808787 -0400 +++ hotspot/src/share/vm/classfile/bytecodeAssembler.cpp 2014-07-21 07:16:48.553778937 -0400 @@ -44,6 +44,9 @@ #ifdef TARGET_ARCH_ppc # include "bytes_ppc.hpp" #endif +#ifdef TARGET_ARCH_aarch64 +# include "bytes_aarch64.hpp" +#endif u2 BytecodeConstantPool::find_or_add(BytecodeCPEntry const& bcpe) { u2 index; --- /local/jdk9/hotspot/src/share/vm/classfile/classFileStream.hpp 2014-07-21 13:42:16.492806891 -0400 +++ hotspot/src/share/vm/classfile/classFileStream.hpp 2014-07-21 07:16:48.573777044 -0400 @@ -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 // --- /local/jdk9/hotspot/src/share/vm/classfile/stackMapTable.hpp 2014-07-21 13:42:16.542802149 -0400 +++ hotspot/src/share/vm/classfile/stackMapTable.hpp 2014-07-21 07:16:48.613773259 -0400 @@ -46,6 +46,9 @@ #ifdef TARGET_ARCH_ppc # include "bytes_ppc.hpp" #endif +#ifdef TARGET_ARCH_aarch64 +# include "bytes_aarch64.hpp" +#endif class StackMapReader; --- /local/jdk9/hotspot/src/share/vm/classfile/verifier.cpp 2014-07-21 13:54:09.975140891 -0400 +++ hotspot/src/share/vm/classfile/verifier.cpp 2014-07-21 07:16:48.643770419 -0400 @@ -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 #define NONZERO_PADDING_BYTES_IN_SWITCH_MAJOR_VERSION 51 --- /local/jdk9/hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.cpp 2014-07-21 13:42:16.932765165 -0400 +++ hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.cpp 2014-07-21 07:16:49.033733508 -0400 @@ -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 attribute // FIXME: fix Synthetic attribute // FIXME: per Serguei, add error return handling for ConstantPool::copy_cpool_bytes() --- /local/jdk9/hotspot/src/share/vm/prims/jni_md.h 2014-07-21 13:42:16.902768010 -0400 +++ hotspot/src/share/vm/prims/jni_md.h 2014-07-21 07:16:49.013735400 -0400 @@ -39,6 +39,9 @@ #ifdef TARGET_ARCH_ppc # include "jni_ppc.h" #endif +#ifdef TARGET_ARCH_aarch64 +# include "jni_aarch64.h" +#endif /* --- /local/jdk9/hotspot/src/share/vm/prims/jniCheck.cpp 2014-07-21 13:42:16.902768010 -0400 +++ hotspot/src/share/vm/prims/jniCheck.cpp 2014-07-21 07:16:49.003736347 -0400 @@ -52,6 +52,9 @@ #ifdef TARGET_ARCH_ppc # include "jniTypes_ppc.hpp" #endif +#ifdef TARGET_ARCH_aarch64 +# include "jniTypes_aarch64.hpp" +#endif // Complain every extra number of unplanned local refs #define CHECK_JNI_LOCAL_REF_CAP_WARN_THRESHOLD 32 --- /local/jdk9/hotspot/src/share/vm/prims/methodHandles.hpp 2014-07-21 13:42:16.042849564 -0400 +++ hotspot/src/share/vm/prims/methodHandles.hpp 2014-07-21 07:16:48.163815849 -0400 @@ -194,6 +194,9 @@ #ifdef TARGET_ARCH_ppc # include "methodHandles_ppc.hpp" #endif +#ifdef TARGET_ARCH_aarch64 +# include "methodHandles_aarch64.hpp" +#endif // Tracing static void trace_method_handle(MacroAssembler* _masm, const char* adaptername) PRODUCT_RETURN; --- /local/jdk9/hotspot/src/share/vm/adlc/main.cpp 2014-07-21 13:42:16.272827753 -0400 +++ hotspot/src/share/vm/adlc/main.cpp 2014-07-21 07:16:48.363796920 -0400 @@ -246,6 +246,10 @@ AD.addInclude(AD._CPP_file, "nativeInst_ppc.hpp"); AD.addInclude(AD._CPP_file, "vmreg_ppc.inline.hpp"); #endif +#ifdef TARGET_ARCH_aarch64 + 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"); AD.addInclude(AD._HPP_file, "opto/node.hpp"); --- /local/jdk9/hotspot/test/compiler/intrinsics/mathexact/sanity/IntrinsicBase.java 2014-07-21 13:42:16.172837236 -0400 +++ hotspot/test/compiler/intrinsics/mathexact/sanity/IntrinsicBase.java 2014-07-21 07:16:48.213811117 -0400 @@ -128,7 +128,7 @@ @Override protected boolean isIntrinsicSupported() { - return isServerVM() && Boolean.valueOf(useMathExactIntrinsics) && (Platform.isX86() || Platform.isX64()); + return isServerVM() && Boolean.valueOf(useMathExactIntrinsics) && (Platform.isX86() || Platform.isX64() || Platform.isAArch64()); } @Override @@ -144,7 +144,7 @@ @Override protected boolean isIntrinsicSupported() { - return isServerVM() && Boolean.valueOf(useMathExactIntrinsics) && Platform.isX64(); + return isServerVM() && Boolean.valueOf(useMathExactIntrinsics) && (Platform.isX64() || Platform.isAArch64()); } @Override --- /local/jdk9/hotspot/test/testlibrary/com/oracle/java/testlibrary/Platform.java 2014-07-21 13:42:16.542802149 -0400 +++ hotspot/test/testlibrary/com/oracle/java/testlibrary/Platform.java 2014-07-21 07:16:48.543779884 -0400 @@ -113,6 +113,10 @@ return (isArch("amd64") || isArch("x86_64")); } + public static boolean isAArch64() { + return isArch("aarch64"); + } + private static boolean isArch(String archname) { return osArch.toLowerCase().startsWith(archname.toLowerCase()); } --- /local/jdk9/hotspot/make/defs.make 2014-07-21 13:42:16.182836288 -0400 +++ hotspot/make/defs.make 2014-07-21 08:44:13.277343548 -0400 @@ -280,7 +280,7 @@ # 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 ppc64 zero,$(ARCH))) + SRCARCH = $(ARCH/$(filter sparc sparc64 ia64 amd64 x86_64 arm ppc ppc64 aarch64 zero,$(ARCH))) ARCH/ = x86 ARCH/sparc = sparc ARCH/sparc64= sparc @@ -290,6 +290,7 @@ 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 @@ -320,11 +321,12 @@ LIBARCH/sparcv9 = sparcv9 LIBARCH/ia64 = ia64 LIBARCH/ppc64 = ppc64 + LIBARCH/aarch64 = aarch64 LIBARCH/ppc = ppc LIBARCH/arm = arm LIBARCH/zero = $(ZERO_LIBARCH) - LP64_ARCH = sparcv9 amd64 ia64 ppc64 zero + LP64_ARCH = sparcv9 amd64 ia64 ppc64 aarch64 zero endif # Required make macro settings for all platforms --- /local/jdk9/hotspot/make/linux/makefiles/gcc.make 2014-07-21 13:54:09.825155116 -0400 +++ hotspot/make/linux/makefiles/gcc.make 2014-07-21 14:02:29.767733843 -0400 @@ -172,6 +172,7 @@ ARCHFLAG = $(ARCHFLAG/$(BUILDARCH)) ARCHFLAG/i486 = -m32 -march=i586 ARCHFLAG/amd64 = -m64 $(STACK_ALIGNMENT_OPT) +ARCHFLAG/aarch64 = ARCHFLAG/ia64 = ARCHFLAG/sparc = -m32 -mcpu=v9 ARCHFLAG/sparcv9 = -m64 -mcpu=v9 --- /local/jdk9/hotspot/make/linux/makefiles/defs.make 2014-07-21 13:54:09.825155116 -0400 +++ hotspot/make/linux/makefiles/defs.make 2014-07-21 08:44:13.327338815 -0400 @@ -122,6 +122,15 @@ 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 + # On 32 bit linux we build server and client, on 64 bit just server. ifeq ($(JVM_VARIANTS),) ifeq ($(ARCH_DATA_MODEL), 32) --- /local/jdk9/hotspot/make/linux/makefiles/buildtree.make 2014-07-21 13:42:16.202834391 -0400 +++ hotspot/make/linux/makefiles/buildtree.make 2014-07-21 08:44:13.327338815 -0400 @@ -194,6 +194,7 @@ DATA_MODE/sparcv9 = 64 DATA_MODE/amd64 = 64 DATA_MODE/ppc64 = 64 +DATA_MODE/aarch64 = 64 DATA_MODE = $(DATA_MODE/$(BUILDARCH))