equal
deleted
inserted
replaced
22 * |
22 * |
23 */ |
23 */ |
24 |
24 |
25 #include "precompiled.hpp" |
25 #include "precompiled.hpp" |
26 #include "asm/codeBuffer.hpp" |
26 #include "asm/codeBuffer.hpp" |
|
27 #include "code/codeCacheExtensions.hpp" |
27 #include "memory/resourceArea.hpp" |
28 #include "memory/resourceArea.hpp" |
28 #include "oops/oop.inline.hpp" |
29 #include "oops/oop.inline.hpp" |
29 #include "runtime/interfaceSupport.hpp" |
30 #include "runtime/interfaceSupport.hpp" |
30 #include "runtime/sharedRuntime.hpp" |
31 #include "runtime/sharedRuntime.hpp" |
31 #include "runtime/stubRoutines.hpp" |
32 #include "runtime/stubRoutines.hpp" |
180 #ifdef ASSERT |
181 #ifdef ASSERT |
181 typedef void (*arraycopy_fn)(address src, address dst, int count); |
182 typedef void (*arraycopy_fn)(address src, address dst, int count); |
182 |
183 |
183 // simple tests of generated arraycopy functions |
184 // simple tests of generated arraycopy functions |
184 static void test_arraycopy_func(address func, int alignment) { |
185 static void test_arraycopy_func(address func, int alignment) { |
|
186 if (CodeCacheExtensions::use_pregenerated_interpreter() || !CodeCacheExtensions::is_executable(func)) { |
|
187 // Exit safely if stubs were generated but cannot be used. |
|
188 // Also excluding pregenerated interpreter since the code may depend on |
|
189 // some registers being properly initialized (for instance Rthread) |
|
190 return; |
|
191 } |
185 int v = 0xcc; |
192 int v = 0xcc; |
186 int v2 = 0x11; |
193 int v2 = 0x11; |
187 jlong lbuffer[8]; |
194 jlong lbuffer[8]; |
188 jlong lbuffer2[8]; |
195 jlong lbuffer2[8]; |
189 address fbuffer = (address) lbuffer; |
196 address fbuffer = (address) lbuffer; |