332 // A dead location. If it is an oop then we need a NULL to prevent GC from following it |
327 // A dead location. If it is an oop then we need a NULL to prevent GC from following it |
333 *addr = NULL_WORD; |
328 *addr = NULL_WORD; |
334 break; |
329 break; |
335 default: |
330 default: |
336 ShouldNotReachHere(); |
331 ShouldNotReachHere(); |
337 } |
|
338 if (TaggedStackInterpreter) { |
|
339 // Write tag to stack |
|
340 iframe()->interpreter_frame_set_local_tag(i, |
|
341 frame::tag_for_basic_type(value->type())); |
|
342 } |
332 } |
343 } |
333 } |
344 |
334 |
345 if (is_top_frame && JvmtiExport::can_pop_frame() && thread->popframe_forcing_deopt_reexecution()) { |
335 if (is_top_frame && JvmtiExport::can_pop_frame() && thread->popframe_forcing_deopt_reexecution()) { |
346 // An interpreted frame was popped but it returns to a deoptimized |
336 // An interpreted frame was popped but it returns to a deoptimized |
352 // addresses. |
342 // addresses. |
353 if (popframe_preserved_args_size_in_words != 0) { |
343 if (popframe_preserved_args_size_in_words != 0) { |
354 void* saved_args = thread->popframe_preserved_args(); |
344 void* saved_args = thread->popframe_preserved_args(); |
355 assert(saved_args != NULL, "must have been saved by interpreter"); |
345 assert(saved_args != NULL, "must have been saved by interpreter"); |
356 #ifdef ASSERT |
346 #ifdef ASSERT |
357 int stack_words = Interpreter::stackElementWords(); |
|
358 assert(popframe_preserved_args_size_in_words <= |
347 assert(popframe_preserved_args_size_in_words <= |
359 iframe()->interpreter_frame_expression_stack_size()*stack_words, |
348 iframe()->interpreter_frame_expression_stack_size()*Interpreter::stackElementWords, |
360 "expression stack size should have been extended"); |
349 "expression stack size should have been extended"); |
361 #endif // ASSERT |
350 #endif // ASSERT |
362 int top_element = iframe()->interpreter_frame_expression_stack_size()-1; |
351 int top_element = iframe()->interpreter_frame_expression_stack_size()-1; |
363 intptr_t* base; |
352 intptr_t* base; |
364 if (frame::interpreter_frame_expression_stack_direction() < 0) { |
353 if (frame::interpreter_frame_expression_stack_direction() < 0) { |