src/share/vm/runtime/frame.cpp

changeset 1636
24128c2ffa87
parent 1635
ba263cfb7611
child 1639
18a389214829
     1.1 --- a/src/share/vm/runtime/frame.cpp	Fri Jan 29 12:13:05 2010 +0100
     1.2 +++ b/src/share/vm/runtime/frame.cpp	Fri Jan 29 08:33:24 2010 -0800
     1.3 @@ -1,5 +1,5 @@
     1.4  /*
     1.5 - * Copyright 1997-2010 Sun Microsystems, Inc.  All Rights Reserved.
     1.6 + * Copyright 1997-2009 Sun Microsystems, Inc.  All Rights Reserved.
     1.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     1.8   *
     1.9   * This code is free software; you can redistribute it and/or modify it
    1.10 @@ -107,11 +107,7 @@
    1.11  
    1.12  address frame::raw_pc() const {
    1.13    if (is_deoptimized_frame()) {
    1.14 -    nmethod* nm = cb()->as_nmethod_or_null();
    1.15 -    if (nm->is_method_handle_return(pc()))
    1.16 -      return nm->deopt_mh_handler_begin() - pc_return_offset;
    1.17 -    else
    1.18 -      return nm->deopt_handler_begin() - pc_return_offset;
    1.19 +    return ((nmethod*) cb())->deopt_handler_begin() - pc_return_offset;
    1.20    } else {
    1.21      return (pc() - pc_return_offset);
    1.22    }
    1.23 @@ -273,16 +269,10 @@
    1.24    } // NeedsDeoptSuspend
    1.25  
    1.26  
    1.27 -  // If the call site is a MethodHandle call site use the MH deopt
    1.28 -  // handler.
    1.29 -  address deopt = nm->is_method_handle_return(pc()) ?
    1.30 -    nm->deopt_mh_handler_begin() :
    1.31 -    nm->deopt_handler_begin();
    1.32 -
    1.33 +  address deopt = nm->deopt_handler_begin();
    1.34    // Save the original pc before we patch in the new one
    1.35    nm->set_original_pc(this, pc());
    1.36    patch_pc(thread, deopt);
    1.37 -
    1.38  #ifdef ASSERT
    1.39    {
    1.40      RegisterMap map(thread, false);
    1.41 @@ -311,29 +301,6 @@
    1.42    return result;
    1.43  }
    1.44  
    1.45 -
    1.46 -//------------------------------------------------------------------------------
    1.47 -// frame::verify_deopt_original_pc
    1.48 -//
    1.49 -// Verifies the calculated original PC of a deoptimization PC for the
    1.50 -// given unextended SP.  The unextended SP might also be the saved SP
    1.51 -// for MethodHandle call sites.
    1.52 -#if ASSERT
    1.53 -void frame::verify_deopt_original_pc(nmethod* nm, intptr_t* unextended_sp, bool is_method_handle_return) {
    1.54 -  frame fr;
    1.55 -
    1.56 -  // This is ugly but it's better than to change {get,set}_original_pc
    1.57 -  // to take an SP value as argument.  And it's only a debugging
    1.58 -  // method anyway.
    1.59 -  fr._unextended_sp = unextended_sp;
    1.60 -
    1.61 -  address original_pc = nm->get_original_pc(&fr);
    1.62 -  assert(nm->code_contains(original_pc), "original PC must be in nmethod");
    1.63 -  assert(nm->is_method_handle_return(original_pc) == is_method_handle_return, "must be");
    1.64 -}
    1.65 -#endif
    1.66 -
    1.67 -
    1.68  // Note: called by profiler - NOT for current thread
    1.69  frame frame::profile_find_Java_sender_frame(JavaThread *thread) {
    1.70  // If we don't recognize this frame, walk back up the stack until we do

mercurial