src/share/vm/runtime/frame.cpp

changeset 3969
1d7922586cf6
parent 3499
aa3d708d67c4
child 4037
da91efe96a93
     1.1 --- a/src/share/vm/runtime/frame.cpp	Mon Jul 23 13:04:59 2012 -0700
     1.2 +++ b/src/share/vm/runtime/frame.cpp	Tue Jul 24 10:51:00 2012 -0700
     1.3 @@ -170,11 +170,9 @@
     1.4  }
     1.5  
     1.6  // type testers
     1.7 -bool frame::is_ricochet_frame() const {
     1.8 -  RicochetBlob* rcb = SharedRuntime::ricochet_blob();
     1.9 -  return (_cb == rcb && rcb != NULL && rcb->returns_to_bounce_addr(_pc));
    1.10 +bool frame::is_ignored_frame() const {
    1.11 +  return false;  // FIXME: some LambdaForm frames should be ignored
    1.12  }
    1.13 -
    1.14  bool frame::is_deoptimized_frame() const {
    1.15    assert(_deopt_state != unknown, "not answerable");
    1.16    return _deopt_state == is_deoptimized;
    1.17 @@ -348,17 +346,12 @@
    1.18  frame frame::real_sender(RegisterMap* map) const {
    1.19    frame result = sender(map);
    1.20    while (result.is_runtime_frame() ||
    1.21 -         result.is_ricochet_frame()) {
    1.22 +         result.is_ignored_frame()) {
    1.23      result = result.sender(map);
    1.24    }
    1.25    return result;
    1.26  }
    1.27  
    1.28 -frame frame::sender_for_ricochet_frame(RegisterMap* map) const {
    1.29 -  assert(is_ricochet_frame(), "");
    1.30 -  return MethodHandles::ricochet_frame_sender(*this, map);
    1.31 -}
    1.32 -
    1.33  // Note: called by profiler - NOT for current thread
    1.34  frame frame::profile_find_Java_sender_frame(JavaThread *thread) {
    1.35  // If we don't recognize this frame, walk back up the stack until we do
    1.36 @@ -541,7 +534,6 @@
    1.37  const char* frame::print_name() const {
    1.38    if (is_native_frame())      return "Native";
    1.39    if (is_interpreted_frame()) return "Interpreted";
    1.40 -  if (is_ricochet_frame())    return "Ricochet";
    1.41    if (is_compiled_frame()) {
    1.42      if (is_deoptimized_frame()) return "Deoptimized";
    1.43      return "Compiled";
    1.44 @@ -728,8 +720,6 @@
    1.45        st->print("v  ~RuntimeStub::%s", ((RuntimeStub *)_cb)->name());
    1.46      } else if (_cb->is_deoptimization_stub()) {
    1.47        st->print("v  ~DeoptimizationBlob");
    1.48 -    } else if (_cb->is_ricochet_stub()) {
    1.49 -      st->print("v  ~RichochetBlob");
    1.50      } else if (_cb->is_exception_stub()) {
    1.51        st->print("v  ~ExceptionBlob");
    1.52      } else if (_cb->is_safepoint_stub()) {
    1.53 @@ -993,9 +983,6 @@
    1.54  
    1.55  void frame::oops_code_blob_do(OopClosure* f, CodeBlobClosure* cf, const RegisterMap* reg_map) {
    1.56    assert(_cb != NULL, "sanity check");
    1.57 -  if (_cb == SharedRuntime::ricochet_blob()) {
    1.58 -    oops_ricochet_do(f, reg_map);
    1.59 -  }
    1.60    if (_cb->oop_maps() != NULL) {
    1.61      OopMapSet::oops_do(this, reg_map, f);
    1.62  
    1.63 @@ -1014,11 +1001,6 @@
    1.64      cf->do_code_blob(_cb);
    1.65  }
    1.66  
    1.67 -void frame::oops_ricochet_do(OopClosure* f, const RegisterMap* map) {
    1.68 -  assert(is_ricochet_frame(), "");
    1.69 -  MethodHandles::ricochet_frame_oops_do(*this, f, map);
    1.70 -}
    1.71 -
    1.72  class CompiledArgumentOopFinder: public SignatureInfo {
    1.73   protected:
    1.74    OopClosure*     _f;
    1.75 @@ -1087,7 +1069,7 @@
    1.76    // First consult the ADLC on where it puts parameter 0 for this signature.
    1.77    VMReg reg = SharedRuntime::name_for_receiver();
    1.78    oop r = *caller.oopmapreg_to_location(reg, reg_map);
    1.79 -  assert( Universe::heap()->is_in_or_null(r), "bad receiver" );
    1.80 +  assert(Universe::heap()->is_in_or_null(r), err_msg("bad receiver: " INTPTR_FORMAT " (" INTX_FORMAT ")", (intptr_t) r, (intptr_t) r));
    1.81    return r;
    1.82  }
    1.83  
    1.84 @@ -1407,8 +1389,6 @@
    1.85      values.describe(-1, info_address,
    1.86                      FormatBuffer<1024>("#%d nmethod " INTPTR_FORMAT " for native method %s", frame_no,
    1.87                                         nm, nm->method()->name_and_sig_as_C_string()), 2);
    1.88 -  } else if (is_ricochet_frame()) {
    1.89 -      values.describe(-1, info_address, err_msg("#%d ricochet frame", frame_no), 2);
    1.90    } else {
    1.91      // provide default info if not handled before
    1.92      char *info = (char *) "special frame";

mercurial