< prev index next >

src/hotspot/share/prims/forte.cpp

Print this page




  74 
  75 class vframeStreamForte : public vframeStreamCommon {
  76  public:
  77   // constructor that starts with sender of frame fr (top_frame)
  78   vframeStreamForte(JavaThread *jt, frame fr, bool stop_at_java_call_stub);
  79   void forte_next();
  80 };
  81 
  82 
  83 static bool is_decipherable_compiled_frame(JavaThread* thread, frame* fr, CompiledMethod* nm);
  84 static bool is_decipherable_interpreted_frame(JavaThread* thread,
  85                                               frame* fr,
  86                                               Method** method_p,
  87                                               int* bci_p);
  88 
  89 
  90 
  91 
  92 vframeStreamForte::vframeStreamForte(JavaThread *jt,
  93                                      frame fr,
  94                                      bool stop_at_java_call_stub) : vframeStreamCommon(jt) {

  95 
  96   _stop_at_java_call_stub = stop_at_java_call_stub;
  97   _frame = fr;
  98 
  99   // We must always have a valid frame to start filling
 100 
 101   bool filled_in = fill_from_frame();
 102 
 103   assert(filled_in, "invariant");
 104 
 105 }
 106 
 107 
 108 // Solaris SPARC Compiler1 needs an additional check on the grandparent
 109 // of the top_frame when the parent of the top_frame is interpreted and
 110 // the grandparent is compiled. However, in this method we do not know
 111 // the relationship of the current _frame relative to the top_frame so
 112 // we implement a more broad sanity check. When the previous callee is
 113 // interpreted and the current sender is compiled, we verify that the
 114 // current sender is also walkable. If it is not walkable, then we mark




  74 
  75 class vframeStreamForte : public vframeStreamCommon {
  76  public:
  77   // constructor that starts with sender of frame fr (top_frame)
  78   vframeStreamForte(JavaThread *jt, frame fr, bool stop_at_java_call_stub);
  79   void forte_next();
  80 };
  81 
  82 
  83 static bool is_decipherable_compiled_frame(JavaThread* thread, frame* fr, CompiledMethod* nm);
  84 static bool is_decipherable_interpreted_frame(JavaThread* thread,
  85                                               frame* fr,
  86                                               Method** method_p,
  87                                               int* bci_p);
  88 
  89 
  90 
  91 
  92 vframeStreamForte::vframeStreamForte(JavaThread *jt,
  93                                      frame fr,
  94                                      bool stop_at_java_call_stub) 
  95     : vframeStreamCommon(RegisterMap(jt, false, true)) {
  96 
  97   _stop_at_java_call_stub = stop_at_java_call_stub;
  98   _frame = fr;
  99 
 100   // We must always have a valid frame to start filling
 101 
 102   bool filled_in = fill_from_frame();
 103 
 104   assert(filled_in, "invariant");
 105 
 106 }
 107 
 108 
 109 // Solaris SPARC Compiler1 needs an additional check on the grandparent
 110 // of the top_frame when the parent of the top_frame is interpreted and
 111 // the grandparent is compiled. However, in this method we do not know
 112 // the relationship of the current _frame relative to the top_frame so
 113 // we implement a more broad sanity check. When the previous callee is
 114 // interpreted and the current sender is compiled, we verify that the
 115 // current sender is also walkable. If it is not walkable, then we mark


< prev index next >