comparison src/share/vm/runtime/vframeArray.cpp @ 17980:0bf37f737702

8032410: compiler/uncommontrap/TestStackBangRbp.java times out on Solaris-Sparc V9 Summary: make compiled code bang the stack by the worst case size of the interpreter frame at deoptimization points. Reviewed-by: twisti, kvn
author roland
date Tue, 01 Apr 2014 09:36:49 +0200
parents 78bbf4d43a14
children 52b4284cb496 d3f3f7677537
comparison
equal deleted inserted replaced
17978:ad51f24671c2 17980:0bf37f737702
417 417
418 _locals = _expressions = NULL; 418 _locals = _expressions = NULL;
419 419
420 } 420 }
421 421
422 int vframeArrayElement::on_stack_size(int caller_actual_parameters, 422 int vframeArrayElement::on_stack_size(int callee_parameters,
423 int callee_parameters,
424 int callee_locals, 423 int callee_locals,
425 bool is_top_frame, 424 bool is_top_frame,
426 bool is_bottom_frame,
427 int popframe_extra_stack_expression_els) const { 425 int popframe_extra_stack_expression_els) const {
428 assert(method()->max_locals() == locals()->size(), "just checking"); 426 assert(method()->max_locals() == locals()->size(), "just checking");
429 int locks = monitors() == NULL ? 0 : monitors()->number_of_monitors(); 427 int locks = monitors() == NULL ? 0 : monitors()->number_of_monitors();
430 int temps = expressions()->size(); 428 int temps = expressions()->size();
431 return Interpreter::size_activation(method(), 429 return Interpreter::size_activation(method()->max_stack(),
432 temps + callee_parameters, 430 temps + callee_parameters,
433 popframe_extra_stack_expression_els, 431 popframe_extra_stack_expression_els,
434 locks, 432 locks,
435 caller_actual_parameters,
436 callee_parameters, 433 callee_parameters,
437 callee_locals, 434 callee_locals,
438 is_top_frame, 435 is_top_frame);
439 is_bottom_frame);
440 } 436 }
441 437
442 438
443 439
444 vframeArray* vframeArray::allocate(JavaThread* thread, int frame_size, GrowableArray<compiledVFrame*>* chunk, 440 vframeArray* vframeArray::allocate(JavaThread* thread, int frame_size, GrowableArray<compiledVFrame*>* chunk,