1.1 --- a/src/cpu/x86/vm/templateInterpreter_x86_32.cpp Mon Jun 09 15:42:31 2014 -0700 1.2 +++ b/src/cpu/x86/vm/templateInterpreter_x86_32.cpp Tue Apr 01 09:36:49 2014 +0200 1.3 @@ -1686,91 +1686,6 @@ 1.4 return overhead_size + method_stack + stub_code; 1.5 } 1.6 1.7 -// asm based interpreter deoptimization helpers 1.8 - 1.9 -int AbstractInterpreter::layout_activation(Method* method, 1.10 - int tempcount, 1.11 - int popframe_extra_args, 1.12 - int moncount, 1.13 - int caller_actual_parameters, 1.14 - int callee_param_count, 1.15 - int callee_locals, 1.16 - frame* caller, 1.17 - frame* interpreter_frame, 1.18 - bool is_top_frame, 1.19 - bool is_bottom_frame) { 1.20 - // Note: This calculation must exactly parallel the frame setup 1.21 - // in AbstractInterpreterGenerator::generate_method_entry. 1.22 - // If interpreter_frame!=NULL, set up the method, locals, and monitors. 1.23 - // The frame interpreter_frame, if not NULL, is guaranteed to be the right size, 1.24 - // as determined by a previous call to this method. 1.25 - // It is also guaranteed to be walkable even though it is in a skeletal state 1.26 - // NOTE: return size is in words not bytes 1.27 - 1.28 - // fixed size of an interpreter frame: 1.29 - int max_locals = method->max_locals() * Interpreter::stackElementWords; 1.30 - int extra_locals = (method->max_locals() - method->size_of_parameters()) * 1.31 - Interpreter::stackElementWords; 1.32 - 1.33 - int overhead = frame::sender_sp_offset - frame::interpreter_frame_initial_sp_offset; 1.34 - 1.35 - // Our locals were accounted for by the caller (or last_frame_adjust on the transistion) 1.36 - // Since the callee parameters already account for the callee's params we only need to account for 1.37 - // the extra locals. 1.38 - 1.39 - 1.40 - int size = overhead + 1.41 - ((callee_locals - callee_param_count)*Interpreter::stackElementWords) + 1.42 - (moncount*frame::interpreter_frame_monitor_size()) + 1.43 - tempcount*Interpreter::stackElementWords + popframe_extra_args; 1.44 - 1.45 - if (interpreter_frame != NULL) { 1.46 -#ifdef ASSERT 1.47 - if (!EnableInvokeDynamic) 1.48 - // @@@ FIXME: Should we correct interpreter_frame_sender_sp in the calling sequences? 1.49 - // Probably, since deoptimization doesn't work yet. 1.50 - assert(caller->unextended_sp() == interpreter_frame->interpreter_frame_sender_sp(), "Frame not properly walkable"); 1.51 - assert(caller->sp() == interpreter_frame->sender_sp(), "Frame not properly walkable(2)"); 1.52 -#endif 1.53 - 1.54 - interpreter_frame->interpreter_frame_set_method(method); 1.55 - // NOTE the difference in using sender_sp and interpreter_frame_sender_sp 1.56 - // interpreter_frame_sender_sp is the original sp of the caller (the unextended_sp) 1.57 - // and sender_sp is fp+8 1.58 - intptr_t* locals = interpreter_frame->sender_sp() + max_locals - 1; 1.59 - 1.60 -#ifdef ASSERT 1.61 - if (caller->is_interpreted_frame()) { 1.62 - assert(locals < caller->fp() + frame::interpreter_frame_initial_sp_offset, "bad placement"); 1.63 - } 1.64 -#endif 1.65 - 1.66 - interpreter_frame->interpreter_frame_set_locals(locals); 1.67 - BasicObjectLock* montop = interpreter_frame->interpreter_frame_monitor_begin(); 1.68 - BasicObjectLock* monbot = montop - moncount; 1.69 - interpreter_frame->interpreter_frame_set_monitor_end(monbot); 1.70 - 1.71 - // Set last_sp 1.72 - intptr_t* rsp = (intptr_t*) monbot - 1.73 - tempcount*Interpreter::stackElementWords - 1.74 - popframe_extra_args; 1.75 - interpreter_frame->interpreter_frame_set_last_sp(rsp); 1.76 - 1.77 - // All frames but the initial (oldest) interpreter frame we fill in have a 1.78 - // value for sender_sp that allows walking the stack but isn't 1.79 - // truly correct. Correct the value here. 1.80 - 1.81 - if (extra_locals != 0 && 1.82 - interpreter_frame->sender_sp() == interpreter_frame->interpreter_frame_sender_sp() ) { 1.83 - interpreter_frame->set_interpreter_frame_sender_sp(caller->sp() + extra_locals); 1.84 - } 1.85 - *interpreter_frame->interpreter_frame_cache_addr() = 1.86 - method->constants()->cache(); 1.87 - } 1.88 - return size; 1.89 -} 1.90 - 1.91 - 1.92 //------------------------------------------------------------------------------------------------------------------------ 1.93 // Exceptions 1.94