diff -r 82134a118aea -r 6bf7a358ca17 hotspot/src/share/vm/runtime/stubRoutines.cpp --- a/hotspot/src/share/vm/runtime/stubRoutines.cpp Tue Jul 07 15:04:25 2015 +0000 +++ b/hotspot/src/share/vm/runtime/stubRoutines.cpp Thu Jul 09 14:35:13 2015 -0700 @@ -24,6 +24,7 @@ #include "precompiled.hpp" #include "asm/codeBuffer.hpp" +#include "code/codeCacheExtensions.hpp" #include "memory/resourceArea.hpp" #include "oops/oop.inline.hpp" #include "runtime/interfaceSupport.hpp" @@ -190,6 +191,12 @@ // simple tests of generated arraycopy functions static void test_arraycopy_func(address func, int alignment) { + if (CodeCacheExtensions::use_pregenerated_interpreter() || !CodeCacheExtensions::is_executable(func)) { + // Exit safely if stubs were generated but cannot be used. + // Also excluding pregenerated interpreter since the code may depend on + // some registers being properly initialized (for instance Rthread) + return; + } int v = 0xcc; int v2 = 0x11; jlong lbuffer[8];