8049252: VerifyStack logic in Deoptimization::unpack_frames does not expect to see invoke bc at the top frame during normal deoptimization
Summary: Add missing check for reexecute flag to VerifyStack code.
Reviewed-by: roland
--- a/hotspot/src/share/vm/runtime/deoptimization.cpp Mon Jul 28 15:06:38 2014 -0700
+++ b/hotspot/src/share/vm/runtime/deoptimization.cpp Tue Jul 29 13:40:58 2014 -0700
@@ -661,7 +661,7 @@
(iframe->interpreter_frame_expression_stack_size() == (next_mask_expression_stack_size -
top_frame_expression_stack_adjustment))) ||
(is_top_frame && (exec_mode == Unpack_exception) && iframe->interpreter_frame_expression_stack_size() == 0) ||
- (is_top_frame && (exec_mode == Unpack_uncommon_trap || exec_mode == Unpack_reexecute) &&
+ (is_top_frame && (exec_mode == Unpack_uncommon_trap || exec_mode == Unpack_reexecute || el->should_reexecute()) &&
(iframe->interpreter_frame_expression_stack_size() == mask.expression_stack_size() + cur_invoke_parameter_size))
)) {
ttyLocker ttyl;