Wed, 08 Feb 2012 09:52:24 +0100
7119286: JSR292: SIGSEGV in JNIHandleBlock::release_block(JNIHandleBlock*, Thread*)+0x3c
Summary: unaligned stack in throw_NullPointerException_at_call_entry().
Reviewed-by: twisti, never, kvn
src/cpu/x86/vm/stubGenerator_x86_64.cpp | file | annotate | diff | comparison | revisions |
1.1 --- a/src/cpu/x86/vm/stubGenerator_x86_64.cpp Tue Feb 07 16:33:43 2012 -0800 1.2 +++ b/src/cpu/x86/vm/stubGenerator_x86_64.cpp Wed Feb 08 09:52:24 2012 +0100 1.3 @@ -2978,7 +2978,9 @@ 1.4 int frame_complete = __ pc() - start; 1.5 1.6 // Set up last_Java_sp and last_Java_fp 1.7 - __ set_last_Java_frame(rsp, rbp, NULL); 1.8 + address the_pc = __ pc(); 1.9 + __ set_last_Java_frame(rsp, rbp, the_pc); 1.10 + __ andptr(rsp, -(StackAlignmentInBytes)); // Align stack 1.11 1.12 // Call runtime 1.13 if (arg1 != noreg) { 1.14 @@ -2997,7 +2999,7 @@ 1.15 1.16 oop_maps->add_gc_map(__ pc() - start, map); 1.17 1.18 - __ reset_last_Java_frame(true, false); 1.19 + __ reset_last_Java_frame(true, true); 1.20 1.21 __ leave(); // required for proper stackwalking of RuntimeStub frame 1.22