714 istate->set_locals(locals);
715 istate->set_method(method);
716 istate->set_self_link(istate);
717 istate->set_prev_link(NULL);
718 istate->set_thread(thread);
719 istate->set_bcp(method->is_native() ? NULL : method->code_base());
720 istate->set_constants(method->constants()->cache());
721 istate->set_msg(BytecodeInterpreter::method_entry);
722 istate->set_oop_temp(NULL);
723 istate->set_mdx(NULL);
724 istate->set_callee(NULL);
725
726 istate->set_monitor_base((BasicObjectLock *) stack->sp());
727 if (method->is_synchronized()) {
728 BasicObjectLock *monitor =
729 (BasicObjectLock *) stack->alloc(monitor_words * wordSize);
730 oop object;
731 if (method->is_static())
732 object = method->constants()->pool_holder()->java_mirror();
733 else
734 object = (oop) locals[0];
735 monitor->set_obj(object);
736 }
737
738 istate->set_stack_base(stack->sp());
739 istate->set_stack(stack->sp() - 1);
740 if (stack_words)
741 stack->alloc(stack_words * wordSize);
742 istate->set_stack_limit(stack->sp() - 1);
743
744 return (InterpreterFrame *) fp;
745 }
746
747 int AbstractInterpreter::BasicType_as_index(BasicType type) {
748 int i = 0;
749 switch (type) {
750 case T_BOOLEAN: i = 0; break;
751 case T_CHAR : i = 1; break;
752 case T_BYTE : i = 2; break;
753 case T_SHORT : i = 3; break;
754 case T_INT : i = 4; break;
|
714 istate->set_locals(locals);
715 istate->set_method(method);
716 istate->set_self_link(istate);
717 istate->set_prev_link(NULL);
718 istate->set_thread(thread);
719 istate->set_bcp(method->is_native() ? NULL : method->code_base());
720 istate->set_constants(method->constants()->cache());
721 istate->set_msg(BytecodeInterpreter::method_entry);
722 istate->set_oop_temp(NULL);
723 istate->set_mdx(NULL);
724 istate->set_callee(NULL);
725
726 istate->set_monitor_base((BasicObjectLock *) stack->sp());
727 if (method->is_synchronized()) {
728 BasicObjectLock *monitor =
729 (BasicObjectLock *) stack->alloc(monitor_words * wordSize);
730 oop object;
731 if (method->is_static())
732 object = method->constants()->pool_holder()->java_mirror();
733 else
734 object = (oop) (void*)locals[0];
735 monitor->set_obj(object);
736 }
737
738 istate->set_stack_base(stack->sp());
739 istate->set_stack(stack->sp() - 1);
740 if (stack_words)
741 stack->alloc(stack_words * wordSize);
742 istate->set_stack_limit(stack->sp() - 1);
743
744 return (InterpreterFrame *) fp;
745 }
746
747 int AbstractInterpreter::BasicType_as_index(BasicType type) {
748 int i = 0;
749 switch (type) {
750 case T_BOOLEAN: i = 0; break;
751 case T_CHAR : i = 1; break;
752 case T_BYTE : i = 2; break;
753 case T_SHORT : i = 3; break;
754 case T_INT : i = 4; break;
|