Tue, 10 Jul 2018 16:46:48 +0800
#7241 [C1] Fix an oopmap not found assert
# Internal Error (/home/zhaixiang/project/loongson/jdk8-mips-c1/hotspot/src/share/vm/compiler/oopMap.cpp:305), pid=10960, tid=0x000000ff9795f1f0
# assert(i < len) failed: oopmap not found
src/cpu/mips/vm/c1_Runtime1_mips.cpp | file | annotate | diff | comparison | revisions |
1.1 --- a/src/cpu/mips/vm/c1_Runtime1_mips.cpp Tue Jul 10 14:18:39 2018 +0800 1.2 +++ b/src/cpu/mips/vm/c1_Runtime1_mips.cpp Tue Jul 10 16:46:48 2018 +0800 1.3 @@ -69,12 +69,10 @@ 1.4 get_thread(thread); 1.5 move(A0, thread); 1.6 1.7 - int call_offset; 1.8 if(!align_stack) { 1.9 set_last_Java_frame(thread, NOREG, FP, NULL); 1.10 } else { 1.11 address the_pc = pc(); 1.12 - call_offset = offset(); 1.13 set_last_Java_frame(thread, NOREG, FP, the_pc); 1.14 move(AT, -(StackAlignmentInBytes)); 1.15 andr(SP, SP, AT); 1.16 @@ -102,9 +100,8 @@ 1.17 #endif 1.18 jalr(T9); 1.19 delayed()->nop(); 1.20 - if (!align_stack) { 1.21 - call_offset = offset(); 1.22 - } 1.23 + 1.24 + int call_offset = offset(); 1.25 1.26 // verify callee-saved register 1.27 #ifdef ASSERT 1.28 @@ -707,8 +704,10 @@ 1.29 1.30 // compute the exception handler. 1.31 // the exception oop and the throwing pc are read from the fields in JavaThread 1.32 + __ block_comment(";; will call_RT exception_handler_for_pc"); 1.33 int call_offset = __ call_RT(noreg, noreg, CAST_FROM_FN_PTR(address, exception_handler_for_pc)); 1.34 oop_maps->add_gc_map(call_offset, oop_map); 1.35 + __ block_comment(";; end of call_RT exception_handler_for_pc"); 1.36 // V0: handler address or NULL if no handler exists 1.37 // will be the deopt blob if nmethod was deoptimized while we looked up 1.38 // handler regardless of whether handler existed in the nmethod.