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