# HG changeset patch # User jbachorik # Date 1431453139 -7200 # Node ID 2cf987c37b5ea2fcf0219b01801cebffdc6ba480 # Parent 3c8b53552a43caefa1504b997b1b8a274343a190# Parent b99f1bf208f385277b03a985d35b6614b4095f3e Merge diff -r 3c8b53552a43 -r 2cf987c37b5e .hgtags --- a/.hgtags Mon Feb 24 10:28:22 2014 +0100 +++ b/.hgtags Tue May 12 19:52:19 2015 +0200 @@ -639,3 +639,4 @@ 30e04eba9e298cc5094793e279306535239187cc hs25.60-b13 1f0d760ccac1ff82a03a9b7d6bd5c697ef0a7c4a hs25.60-b14 c9f8b7319d0a5ab07310cf53507642a8fd91589b jdk8u60-b14 +4187dc92e90b16b4097627b8af4f5e6e63f3b497 hs25.60-b15 diff -r 3c8b53552a43 -r 2cf987c37b5e make/hotspot_version --- a/make/hotspot_version Mon Feb 24 10:28:22 2014 +0100 +++ b/make/hotspot_version Tue May 12 19:52:19 2015 +0200 @@ -35,7 +35,7 @@ HS_MAJOR_VER=25 HS_MINOR_VER=60 -HS_BUILD_NUMBER=14 +HS_BUILD_NUMBER=15 JDK_MAJOR_VER=1 JDK_MINOR_VER=8 diff -r 3c8b53552a43 -r 2cf987c37b5e src/os/bsd/vm/os_bsd.cpp --- a/src/os/bsd/vm/os_bsd.cpp Mon Feb 24 10:28:22 2014 +0100 +++ b/src/os/bsd/vm/os_bsd.cpp Tue May 12 19:52:19 2015 +0200 @@ -1197,12 +1197,18 @@ guarantee(retval != 0, "just checking"); return retval; -#elif __FreeBSD__ +#else + #ifdef __FreeBSD__ retval = syscall(SYS_thr_self); -#elif __OpenBSD__ + #else + #ifdef __OpenBSD__ retval = syscall(SYS_getthrid); -#elif __NetBSD__ + #else + #ifdef __NetBSD__ retval = (pid_t) syscall(SYS__lwp_self); + #endif + #endif + #endif #endif if (retval == -1) { diff -r 3c8b53552a43 -r 2cf987c37b5e src/os/linux/vm/os_linux.cpp --- a/src/os/linux/vm/os_linux.cpp Mon Feb 24 10:28:22 2014 +0100 +++ b/src/os/linux/vm/os_linux.cpp Tue May 12 19:52:19 2015 +0200 @@ -209,17 +209,23 @@ #ifndef SYS_gettid // i386: 224, ia64: 1105, amd64: 186, sparc 143 -#ifdef __ia64__ -#define SYS_gettid 1105 -#elif __i386__ -#define SYS_gettid 224 -#elif __amd64__ -#define SYS_gettid 186 -#elif __sparc__ -#define SYS_gettid 143 -#else -#error define gettid for the arch -#endif + #ifdef __ia64__ + #define SYS_gettid 1105 + #else + #ifdef __i386__ + #define SYS_gettid 224 + #else + #ifdef __amd64__ + #define SYS_gettid 186 + #else + #ifdef __sparc__ + #define SYS_gettid 143 + #else + #error define gettid for the arch + #endif + #endif + #endif + #endif #endif // Cpu architecture string diff -r 3c8b53552a43 -r 2cf987c37b5e src/os/windows/vm/os_windows.cpp --- a/src/os/windows/vm/os_windows.cpp Mon Feb 24 10:28:22 2014 +0100 +++ b/src/os/windows/vm/os_windows.cpp Tue May 12 19:52:19 2015 +0200 @@ -110,11 +110,13 @@ static FILETIME process_kernel_time; #ifdef _M_IA64 -#define __CPU__ ia64 -#elif _M_AMD64 -#define __CPU__ amd64 + #define __CPU__ ia64 #else -#define __CPU__ i486 + #ifdef _M_AMD64 + #define __CPU__ amd64 + #else + #define __CPU__ i486 + #endif #endif // save DLL module handle, used by GetModuleFileName @@ -2138,20 +2140,22 @@ // at the beginning of the target bundle. exceptionInfo->ContextRecord->StIPSR &= 0xFFFFF9FFFFFFFFFF; assert(((DWORD64)handler & 0xF) == 0, "Target address must point to the beginning of a bundle!"); -#elif _M_AMD64 +#else + #ifdef _M_AMD64 // Do not blow up if no thread info available. if (thread) { thread->set_saved_exception_pc((address)(DWORD_PTR)exceptionInfo->ContextRecord->Rip); } // Set pc to handler exceptionInfo->ContextRecord->Rip = (DWORD64)handler; -#else + #else // Do not blow up if no thread info available. if (thread) { thread->set_saved_exception_pc((address)(DWORD_PTR)exceptionInfo->ContextRecord->Eip); } // Set pc to handler exceptionInfo->ContextRecord->Eip = (DWORD)(DWORD_PTR)handler; + #endif #endif // Continue the execution @@ -2250,7 +2254,8 @@ // (division by zero is handled explicitly) #ifdef _M_IA64 assert(0, "Fix Handle_IDiv_Exception"); -#elif _M_AMD64 +#else + #ifdef _M_AMD64 PCONTEXT ctx = exceptionInfo->ContextRecord; address pc = (address)ctx->Rip; assert(pc[0] == 0xF7, "not an idiv opcode"); @@ -2261,7 +2266,7 @@ ctx->Rax = (DWORD)min_jint; // result ctx->Rdx = (DWORD)0; // remainder // Continue the execution -#else + #else PCONTEXT ctx = exceptionInfo->ContextRecord; address pc = (address)ctx->Eip; assert(pc[0] == 0xF7, "not an idiv opcode"); @@ -2272,6 +2277,7 @@ ctx->Eax = (DWORD)min_jint; // result ctx->Edx = (DWORD)0; // remainder // Continue the execution + #endif #endif return EXCEPTION_CONTINUE_EXECUTION; } @@ -2351,10 +2357,12 @@ // This is needed for IA64 because "relocation" / "implicit null check" / "poll instruction" // information is saved in the Unix format. address pc_unix_format = (address) ((((uint64_t)pc) & 0xFFFFFFFFFFFFFFF0) | ((((uint64_t)pc) & 0xF) >> 2)); -#elif _M_AMD64 +#else + #ifdef _M_AMD64 address pc = (address) exceptionInfo->ContextRecord->Rip; -#else + #else address pc = (address) exceptionInfo->ContextRecord->Eip; + #endif #endif Thread* t = ThreadLocalStorage::get_thread_slow(); // slow & steady diff -r 3c8b53552a43 -r 2cf987c37b5e src/share/vm/interpreter/interpreterRuntime.cpp --- a/src/share/vm/interpreter/interpreterRuntime.cpp Mon Feb 24 10:28:22 2014 +0100 +++ b/src/share/vm/interpreter/interpreterRuntime.cpp Tue May 12 19:52:19 2015 +0200 @@ -1306,6 +1306,8 @@ member_name_oop = java_lang_invoke_DirectMethodHandle::member(member_name_oop); } thread->set_vm_result(member_name_oop); + } else { + thread->set_vm_result(NULL); } IRT_END #endif // INCLUDE_JVMTI diff -r 3c8b53552a43 -r 2cf987c37b5e src/share/vm/memory/allocation.inline.hpp --- a/src/share/vm/memory/allocation.inline.hpp Mon Feb 24 10:28:22 2014 +0100 +++ b/src/share/vm/memory/allocation.inline.hpp Tue May 12 19:52:19 2015 +0200 @@ -62,11 +62,18 @@ } return p; } + +#ifdef __GNUC__ +__attribute__((always_inline)) +#endif inline char* AllocateHeap(size_t size, MEMFLAGS flags, AllocFailType alloc_failmode = AllocFailStrategy::EXIT_OOM) { return AllocateHeap(size, flags, CURRENT_PC, alloc_failmode); } +#ifdef __GNUC__ +__attribute__((always_inline)) +#endif inline char* ReallocateHeap(char *old, size_t size, MEMFLAGS flag, AllocFailType alloc_failmode = AllocFailStrategy::EXIT_OOM) { char* p = (char*) os::realloc(old, size, flag, CURRENT_PC); diff -r 3c8b53552a43 -r 2cf987c37b5e test/runtime/lambda-features/InvokespecialInterface.java --- a/test/runtime/lambda-features/InvokespecialInterface.java Mon Feb 24 10:28:22 2014 +0100 +++ b/test/runtime/lambda-features/InvokespecialInterface.java Tue May 12 19:52:19 2015 +0200 @@ -28,7 +28,7 @@ * @bug 8025937 * @bug 8033528 * @summary [JDK 8] Test invokespecial and invokeinterface with the same JVM_CONSTANT_InterfaceMethodref - * @run main/othervm -XX:+StressRewriter InvokespecialInterface + * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:+StressRewriter InvokespecialInterface */ import java.util.function.*; import java.util.*;