hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp

Print this page




 803     (interpreterState) stack->alloc(sizeof(BytecodeInterpreter));
 804   assert(fp - stack->sp() == istate_off, "should be");
 805   istate->set_self_link(NULL); // mark invalid
 806 
 807   stack->alloc((size_in_words - header_words) * wordSize);
 808 
 809   return (InterpreterFrame *) fp;
 810 }
 811 
 812 int AbstractInterpreter::layout_activation(methodOop method,
 813                                            int       tempcount,
 814                                            int       popframe_extra_args,
 815                                            int       moncount,
 816                                            int       callee_param_count,
 817                                            int       callee_locals,
 818                                            frame*    caller,
 819                                            frame*    interpreter_frame,
 820                                            bool      is_top_frame) {
 821   assert(popframe_extra_args == 0, "what to do?");
 822   assert(!is_top_frame || (!callee_locals && !callee_param_count),
 823          "top frame should have no caller")
 824 
 825   // This code must exactly match what InterpreterFrame::build
 826   // does (the full InterpreterFrame::build, that is, not the
 827   // one that creates empty frames for the deoptimizer).
 828   //
 829   // If interpreter_frame is not NULL then it will be filled in.
 830   // It's size is determined by a previous call to this method,
 831   // so it should be correct.
 832   //
 833   // Note that tempcount is the current size of the expression
 834   // stack.  For top most frames we will allocate a full sized
 835   // expression stack and not the trimmed version that non-top
 836   // frames have.
 837 
 838   int header_words        = InterpreterFrame::header_words;
 839   int monitor_words       = moncount * frame::interpreter_frame_monitor_size();
 840   int stack_words         = is_top_frame ? method->max_stack() : tempcount;
 841   int callee_extra_locals = callee_locals - callee_param_count;
 842 
 843   if (interpreter_frame) {




 803     (interpreterState) stack->alloc(sizeof(BytecodeInterpreter));
 804   assert(fp - stack->sp() == istate_off, "should be");
 805   istate->set_self_link(NULL); // mark invalid
 806 
 807   stack->alloc((size_in_words - header_words) * wordSize);
 808 
 809   return (InterpreterFrame *) fp;
 810 }
 811 
 812 int AbstractInterpreter::layout_activation(methodOop method,
 813                                            int       tempcount,
 814                                            int       popframe_extra_args,
 815                                            int       moncount,
 816                                            int       callee_param_count,
 817                                            int       callee_locals,
 818                                            frame*    caller,
 819                                            frame*    interpreter_frame,
 820                                            bool      is_top_frame) {
 821   assert(popframe_extra_args == 0, "what to do?");
 822   assert(!is_top_frame || (!callee_locals && !callee_param_count),
 823          "top frame should have no caller");
 824 
 825   // This code must exactly match what InterpreterFrame::build
 826   // does (the full InterpreterFrame::build, that is, not the
 827   // one that creates empty frames for the deoptimizer).
 828   //
 829   // If interpreter_frame is not NULL then it will be filled in.
 830   // It's size is determined by a previous call to this method,
 831   // so it should be correct.
 832   //
 833   // Note that tempcount is the current size of the expression
 834   // stack.  For top most frames we will allocate a full sized
 835   // expression stack and not the trimmed version that non-top
 836   // frames have.
 837 
 838   int header_words        = InterpreterFrame::header_words;
 839   int monitor_words       = moncount * frame::interpreter_frame_monitor_size();
 840   int stack_words         = is_top_frame ? method->max_stack() : tempcount;
 841   int callee_extra_locals = callee_locals - callee_param_count;
 842 
 843   if (interpreter_frame) {