src/share/vm/interpreter/abstractInterpreter.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Sdiff src/share/vm/interpreter

src/share/vm/interpreter/abstractInterpreter.hpp

Print this page
rev 6086 : 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:


 164   static address deopt_entry(TosState state, int length) { ShouldNotReachHere(); return NULL; }
 165   static address return_entry(TosState state, int length, Bytecodes::Code code) { ShouldNotReachHere(); return NULL; }
 166 
 167   static address    rethrow_exception_entry()                   { return _rethrow_exception_entry; }
 168 
 169   // Activation size in words for a method that is just being called.
 170   // Parameters haven't been pushed so count them too.
 171   static int        size_top_interpreter_activation(Method* method);
 172 
 173   // Deoptimization support
 174   // Compute the entry address for continuation after
 175   static address deopt_continue_after_entry(Method* method,
 176                                             address bcp,
 177                                             int callee_parameters,
 178                                             bool is_top_frame);
 179   // Compute the entry address for reexecution
 180   static address deopt_reexecute_entry(Method* method, address bcp);
 181   // Deoptimization should reexecute this bytecode
 182   static bool    bytecode_should_reexecute(Bytecodes::Code code);
 183 
 184   // share implementation of size_activation and layout_activation:
 185   static int        size_activation(Method* method,

 186                                     int temps,
 187                                     int popframe_args,
 188                                     int monitors,
 189                                     int caller_actual_parameters,
 190                                     int callee_params,
 191                                     int callee_locals,
 192                                     bool is_top_frame,
 193                                     bool is_bottom_frame) {
 194     return layout_activation(method,
 195                              temps,
 196                              popframe_args,
 197                              monitors,
 198                              caller_actual_parameters,
 199                              callee_params,
 200                              callee_locals,
 201                              (frame*)NULL,
 202                              (frame*)NULL,
 203                              is_top_frame,
 204                              is_bottom_frame);
 205   }
 206 
 207   static int       layout_activation(Method* method,
 208                                      int temps,
 209                                      int popframe_args,
 210                                      int monitors,
 211                                      int caller_actual_parameters,
 212                                      int callee_params,
 213                                      int callee_locals,
 214                                      frame* caller,
 215                                      frame* interpreter_frame,
 216                                      bool is_top_frame,
 217                                      bool is_bottom_frame);
 218 
 219   // Runtime support
 220   static bool       is_not_reached(                       methodHandle method, int bci);
 221   // Safepoint support
 222   static void       notice_safepoints()                         { ShouldNotReachHere(); } // stops the thread when reaching a safepoint
 223   static void       ignore_safepoints()                         { ShouldNotReachHere(); } // ignores safepoints
 224 
 225   // Support for native calls
 226   static address    slow_signature_handler()                    { return _slow_signature_handler; }
 227   static address    result_handler(BasicType type)              { return _native_abi_to_tosca[BasicType_as_index(type)]; }




 164   static address deopt_entry(TosState state, int length) { ShouldNotReachHere(); return NULL; }
 165   static address return_entry(TosState state, int length, Bytecodes::Code code) { ShouldNotReachHere(); return NULL; }
 166 
 167   static address    rethrow_exception_entry()                   { return _rethrow_exception_entry; }
 168 
 169   // Activation size in words for a method that is just being called.
 170   // Parameters haven't been pushed so count them too.
 171   static int        size_top_interpreter_activation(Method* method);
 172 
 173   // Deoptimization support
 174   // Compute the entry address for continuation after
 175   static address deopt_continue_after_entry(Method* method,
 176                                             address bcp,
 177                                             int callee_parameters,
 178                                             bool is_top_frame);
 179   // Compute the entry address for reexecution
 180   static address deopt_reexecute_entry(Method* method, address bcp);
 181   // Deoptimization should reexecute this bytecode
 182   static bool    bytecode_should_reexecute(Bytecodes::Code code);
 183 
 184   // deoptimization support
 185   template<class M>
 186   static int        size_activation(M* method,
 187                                     int temps,
 188                                     int popframe_args,
 189                                     int monitors,

 190                                     int callee_params,
 191                                     int callee_locals,
 192                                     bool is_top_frame);













 193 
 194   static void      layout_activation(Method* method,
 195                                      int temps,
 196                                      int popframe_args,
 197                                      int monitors,
 198                                      int caller_actual_parameters,
 199                                      int callee_params,
 200                                      int callee_locals,
 201                                      frame* caller,
 202                                      frame* interpreter_frame,
 203                                      bool is_top_frame,
 204                                      bool is_bottom_frame);
 205 
 206   // Runtime support
 207   static bool       is_not_reached(                       methodHandle method, int bci);
 208   // Safepoint support
 209   static void       notice_safepoints()                         { ShouldNotReachHere(); } // stops the thread when reaching a safepoint
 210   static void       ignore_safepoints()                         { ShouldNotReachHere(); } // ignores safepoints
 211 
 212   // Support for native calls
 213   static address    slow_signature_handler()                    { return _slow_signature_handler; }
 214   static address    result_handler(BasicType type)              { return _native_abi_to_tosca[BasicType_as_index(type)]; }


src/share/vm/interpreter/abstractInterpreter.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File