src/share/vm/c1/c1_LIRAssembler.cpp

changeset 6723
0bf37f737702
parent 6688
15766b73dc1d
child 6876
710a3c8b516e
child 8427
c3d0bd36ab28
     1.1 --- a/src/share/vm/c1/c1_LIRAssembler.cpp	Mon Jun 09 15:42:31 2014 -0700
     1.2 +++ b/src/share/vm/c1/c1_LIRAssembler.cpp	Tue Apr 01 09:36:49 2014 +0200
     1.3 @@ -185,6 +185,13 @@
     1.4    return _masm->pc();
     1.5  }
     1.6  
     1.7 +// To bang the stack of this compiled method we use the stack size
     1.8 +// that the interpreter would need in case of a deoptimization. This
     1.9 +// removes the need to bang the stack in the deoptimization blob which
    1.10 +// in turn simplifies stack overflow handling.
    1.11 +int LIR_Assembler::bang_size_in_bytes() const {
    1.12 +  return MAX2(initial_frame_size_in_bytes(), _compilation->interpreter_frame_size());
    1.13 +}
    1.14  
    1.15  void LIR_Assembler::emit_exception_entries(ExceptionInfoList* info_list) {
    1.16    for (int i = 0; i < info_list->length(); i++) {
    1.17 @@ -792,7 +799,7 @@
    1.18  
    1.19  
    1.20  void LIR_Assembler::build_frame() {
    1.21 -  _masm->build_frame(initial_frame_size_in_bytes());
    1.22 +  _masm->build_frame(initial_frame_size_in_bytes(), bang_size_in_bytes());
    1.23  }
    1.24  
    1.25  

mercurial