RFR (XS): 8010460: Interpreter on some platforms loads ConstMethod::_max_stack and misses extra stack slots for JSR 292

Christian Thalinger christian.thalinger at oracle.com
Thu Mar 21 16:43:37 PDT 2013

On Mar 21, 2013, at 3:10 AM, Roland Westrelin <roland.westrelin at oracle.com> wrote:

> http://cr.openjdk.java.net/~roland/8010460/webrev.00/
> Method::max_stack() accounts for extra slots for JSR 292 extra arguments. Some platforms (sparc) load ConstMethod::max_stack_offset() directly and so doesn't take the extra slots into account. On sparc it's possible that the appendix argument to a call ends up in the space reserved for the register window. 

Grep'ing for extra_stack_words shows a couple more occurrences:

1062:                         //6815692//Method::extra_stack_words() +  // extra push slots for MH adapters

502:    //6815692//Method::extra_stack_words() +       // extra push slots for MH adapters
1553:                   //6815692//+ Method::extra_stack_words()

542:    const int extra_stack = 0; //6815692//Method::extra_stack_words();

396:int Method::extra_stack_words() {

635:  static int extra_stack_words();  // = extra_stack_entries() * Interpreter::stackElementSize()

Especially the second one in templateInterpreter_sparc.cpp.

-- Chris

> Roland.

More information about the hotspot-compiler-dev mailing list