Mercurial > hg > truffle
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, |