src/cpu/sparc/vm/cppInterpreter_sparc.cpp

Print this page
rev 4376 : 8010460: Interpreter on some platforms loads ConstMethod::_max_stack and misses extra stack slots for JSR 292
Summary: ConstMethod::max_stack() doesn't account for JSR 292 appendix.
Reviewed-by:

*** 1057,1067 **** // that returns a result. const int slop_factor = 2*wordSize; const int fixed_size = ((sizeof(BytecodeInterpreter) + slop_factor) >> LogBytesPerWord) + // what is the slop factor? - //6815692//Method::extra_stack_words() + // extra push slots for MH adapters frame::memory_parameter_word_sp_offset + // register save area + param window (native ? frame::interpreter_frame_extra_outgoing_argument_words : 0); // JNI, class // XXX G5_method valid --- 1057,1066 ----
*** 2076,2088 **** // is "slop_factor" here. const int slop_factor = 2; const int fixed_size = sizeof(BytecodeInterpreter)/wordSize + // interpreter state object frame::memory_parameter_word_sp_offset; // register save area + param window - const int extra_stack = 0; //6815692//Method::extra_stack_entries(); return (round_to(max_stack + - extra_stack + slop_factor + fixed_size + monitor_size + (callee_extra_locals * Interpreter::stackElementWords), WordsPerLong)); --- 2075,2085 ----
*** 2165,2176 **** to_fill->_oop_temp = NULL; to_fill->_stack_base = stack_base; // Need +1 here because stack_base points to the word just above the first expr stack entry // and stack_limit is supposed to point to the word just below the last expr stack entry. // See generate_compute_interpreter_state. ! int extra_stack = 0; //6815692//Method::extra_stack_entries(); ! to_fill->_stack_limit = stack_base - (method->max_stack() + 1 + extra_stack); to_fill->_monitor_base = (BasicObjectLock*) monitor_base; // sparc specific to_fill->_frame_bottom = frame_bottom; to_fill->_self_link = to_fill; --- 2162,2172 ---- to_fill->_oop_temp = NULL; to_fill->_stack_base = stack_base; // Need +1 here because stack_base points to the word just above the first expr stack entry // and stack_limit is supposed to point to the word just below the last expr stack entry. // See generate_compute_interpreter_state. ! to_fill->_stack_limit = stack_base - (method->max_stack() + 1); to_fill->_monitor_base = (BasicObjectLock*) monitor_base; // sparc specific to_fill->_frame_bottom = frame_bottom; to_fill->_self_link = to_fill;