hotspot/src/cpu/x86/vm/templateInterpreter_x86.cpp
changeset 35214 d86005e0b4c2
parent 34651 07b1cc0f6040
equal deleted inserted replaced
35211:3771329165d4 35214:d86005e0b4c2
    25 #include "precompiled.hpp"
    25 #include "precompiled.hpp"
    26 #include "ci/ciMethod.hpp"
    26 #include "ci/ciMethod.hpp"
    27 #include "interpreter/interpreter.hpp"
    27 #include "interpreter/interpreter.hpp"
    28 #include "runtime/frame.inline.hpp"
    28 #include "runtime/frame.inline.hpp"
    29 
    29 
    30 #ifndef CC_INTERP
    30 // Size of interpreter code.  Increase if too small.  Interpreter will
       
    31 // fail with a guarantee ("not enough space for interpreter generation");
       
    32 // if too small.
       
    33 // Run with +PrintInterpreter to get the VM to print out the size.
       
    34 // Max size with JVMTI
       
    35 #ifdef AMD64
       
    36 int TemplateInterpreter::InterpreterCodeSize = 256 * 1024;
       
    37 #else
       
    38 int TemplateInterpreter::InterpreterCodeSize = 224 * 1024;
       
    39 #endif // AMD64
    31 
    40 
    32 // asm based interpreter deoptimization helpers
    41 // asm based interpreter deoptimization helpers
    33 int AbstractInterpreter::size_activation(int max_stack,
    42 int AbstractInterpreter::size_activation(int max_stack,
    34                                          int temps,
    43                                          int temps,
    35                                          int extra_args,
    44                                          int extra_args,
    36                                          int monitors,
    45                                          int monitors,
    37                                          int callee_params,
    46                                          int callee_params,
    38                                          int callee_locals,
    47                                          int callee_locals,
    39                                          bool is_top_frame) {
    48                                          bool is_top_frame) {
    40   // Note: This calculation must exactly parallel the frame setup
    49   // Note: This calculation must exactly parallel the frame setup
    41   // in InterpreterGenerator::generate_fixed_frame.
    50   // in TemplateInterpreterGenerator::generate_fixed_frame.
    42 
    51 
    43   // fixed size of an interpreter frame:
    52   // fixed size of an interpreter frame:
    44   int overhead = frame::sender_sp_offset -
    53   int overhead = frame::sender_sp_offset -
    45                  frame::interpreter_frame_initial_sp_offset;
    54                  frame::interpreter_frame_initial_sp_offset;
    46   // Our locals were accounted for by the caller (or last_frame_adjust
    55   // Our locals were accounted for by the caller (or last_frame_adjust
   196 
   205 
   197   const int method_stack = (method->max_locals() + method->max_stack()) *
   206   const int method_stack = (method->max_locals() + method->max_stack()) *
   198                            Interpreter::stackElementWords;
   207                            Interpreter::stackElementWords;
   199   return (overhead_size + method_stack + stub_code);
   208   return (overhead_size + method_stack + stub_code);
   200 }
   209 }
   201 
       
   202 #endif // CC_INTERP