< prev index next >

src/share/vm/runtime/sharedRuntime.hpp

Print this page

        

@@ -59,10 +59,12 @@
   static RuntimeStub*        _wrong_method_abstract_blob;
   static RuntimeStub*        _ic_miss_blob;
   static RuntimeStub*        _resolve_opt_virtual_call_blob;
   static RuntimeStub*        _resolve_virtual_call_blob;
   static RuntimeStub*        _resolve_static_call_blob;
+  static address             _memento_stack_trace_return_handler;
+  static address             _memento_stack_trace_exception_handler;
 
   static DeoptimizationBlob* _deopt_blob;
 
   static SafepointBlob*      _polling_page_vectors_safepoint_handler_blob;
   static SafepointBlob*      _polling_page_safepoint_handler_blob;

@@ -79,10 +81,11 @@
 
  private:
   enum { POLL_AT_RETURN,  POLL_AT_LOOP, POLL_AT_VECTOR_LOOP };
   static SafepointBlob* generate_handler_blob(address call_ptr, int poll_type);
   static RuntimeStub*   generate_resolve_blob(address destination, const char* name);
+  static void           generate_memento_stack_trace_blob();
 
  public:
   static void generate_stubs(void);
 
   // max bytes for each dtrace string parameter

@@ -234,10 +237,15 @@
   static address get_resolve_static_call_stub() {
     assert(_resolve_static_call_blob != NULL, "oops");
     return _resolve_static_call_blob->entry_point();
   }
 
+  static address get_memento_stack_trace_return_handler()            { return _memento_stack_trace_return_handler; }
+  static address get_memento_stack_trace_exception_handler()         { return _memento_stack_trace_exception_handler; }
+  static bool is_memento_stack_trace_return_handler(address addr)    { return addr == _memento_stack_trace_return_handler; }
+  static bool is_memento_stack_trace_exception_handler(address addr) { return addr == _memento_stack_trace_exception_handler; }
+
   static SafepointBlob* polling_page_return_handler_blob()     { return _polling_page_return_handler_blob; }
   static SafepointBlob* polling_page_safepoint_handler_blob()  { return _polling_page_safepoint_handler_blob; }
   static SafepointBlob* polling_page_vectors_safepoint_handler_blob()  { return _polling_page_vectors_safepoint_handler_blob; }
 
   // Counters
< prev index next >