Home | History | Annotate | Download | only in interpreter

Lines Matching defs:shadow_frame

255                                     ShadowFrame& shadow_frame, JValue result_register);
258 ShadowFrame& shadow_frame, JValue result_register);
261 ShadowFrame& shadow_frame, JValue result_register);
264 ShadowFrame& shadow_frame, JValue result_register);
270 ShadowFrame& shadow_frame,
273 DCHECK(!shadow_frame.GetMethod()->IsAbstract());
274 DCHECK(!shadow_frame.GetMethod()->IsNative());
275 if (LIKELY(shadow_frame.GetDexPC() == 0)) { // Entering the method, but not via deoptimization.
280 ArtMethod *method = shadow_frame.GetMethod();
283 instrumentation->MethodEnterEvent(self, shadow_frame.GetThisObject(code_item->ins_size_),
290 jit->MethodEntered(self, shadow_frame.GetMethod());
296 ArtInterpreterToCompiledCodeBridge(self, nullptr, code_item, &shadow_frame, &result);
298 self->PushShadowFrame(&shadow_frame);
306 shadow_frame.GetMethod()->GetDeclaringClass()->AssertInitializedOrInitializingInThread(self);
310 ArtMethod* method = shadow_frame.GetMethod();
319 return ExecuteSwitchImpl<false, true>(self, code_item, shadow_frame, result_register,
322 return ExecuteSwitchImpl<false, false>(self, code_item, shadow_frame, result_register,
328 return ExecuteSwitchImpl<false, false>(self, code_item, shadow_frame, result_register,
331 bool returned = ExecuteMterpImpl(self, code_item, &shadow_frame, &result_register);
336 result_register = ExecuteSwitchImpl<false, false>(self, code_item, shadow_frame,
338 if (shadow_frame.GetDexPC() == DexFile::kDexNoIndex) {
347 return ExecuteSwitchImpl<false, true>(self, code_item, shadow_frame, result_register,
350 return ExecuteSwitchImpl<false, false>(self, code_item, shadow_frame, result_register,
356 return ExecuteGotoImpl<false, true>(self, code_item, shadow_frame, result_register);
358 return ExecuteGotoImpl<false, false>(self, code_item, shadow_frame, result_register);
366 return ExecuteSwitchImpl<true, true>(self, code_item, shadow_frame, result_register,
369 return ExecuteSwitchImpl<true, false>(self, code_item, shadow_frame, result_register,
374 return ExecuteSwitchImpl<true, true>(self, code_item, shadow_frame, result_register,
377 return ExecuteSwitchImpl<true, false>(self, code_item, shadow_frame, result_register,
383 return ExecuteGotoImpl<true, true>(self, code_item, shadow_frame, result_register);
385 return ExecuteGotoImpl<true, false>(self, code_item, shadow_frame, result_register);
424 ShadowFrame* shadow_frame = shadow_frame_unique_ptr.get();
425 self->PushShadowFrame(shadow_frame);
430 shadow_frame->SetVRegReference(cur_reg, receiver);
440 shadow_frame->SetVRegReference(cur_reg, o);
445 shadow_frame->SetVRegLong(cur_reg, wide_value);
451 shadow_frame->SetVReg(cur_reg, args[arg_pos]);
468 JValue r = Execute(self, code_item, *shadow_frame, JValue(), stay_in_interpreter);
477 args = shadow_frame->GetVRegArgs(method->IsStatic() ? 0 : 1);
518 ShadowFrame* shadow_frame,
527 while (shadow_frame != nullptr) {
530 DCHECK(!shadow_frame->GetMethod()->MustCountLocks());
532 self->SetTopOfShadowStack(shadow_frame);
533 const DexFile::CodeItem* code_item = shadow_frame->GetMethod()->GetCodeItem();
534 const uint32_t dex_pc = shadow_frame->GetDexPC();
542 uint32_t found_dex_pc = FindNextInstructionFollowingException(self, *shadow_frame, dex_pc,
552 if (IsStringInit(instr, shadow_frame->GetMethod())) {
558 SetStringInitValueToAllAliases(shadow_frame, this_obj_vreg, value);
568 shadow_frame->SetVRegReference(instr->VRegA_21c(), value.GetL());
575 // This is a suspend point. But it's ok since value has been set into shadow_frame.
577 instr->VRegB_21c(), shadow_frame->GetMethod());
583 << " of method: " << PrettyMethod(shadow_frame->GetMethod(), false);
590 shadow_frame->SetDexPC(new_dex_pc);
591 value = Execute(self, code_item, *shadow_frame, value);
593 ShadowFrame* old_frame = shadow_frame;
594 shadow_frame = shadow_frame->GetLink();
604 ShadowFrame* shadow_frame) {
614 jit->NotifyCompiledCodeToInterpreterTransition(self, shadow_frame->GetMethod());
616 return Execute(self, code_item, *shadow_frame, JValue());
620 ShadowFrame* shadow_frame, JValue* result) {
627 self->PushShadowFrame(shadow_frame);
628 ArtMethod* method = shadow_frame->GetMethod();
646 if (LIKELY(!shadow_frame->GetMethod()->IsNative())) {
647 result->SetJ(Execute(self, code_item, *shadow_frame, JValue()).GetJ());
652 Object* receiver = is_static ? nullptr : shadow_frame->GetVRegReference(0);
653 uint32_t* args = shadow_frame->GetVRegArgs(is_static ? 0 : 1);
654 UnstartedRuntime::Jni(self, shadow_frame->GetMethod(), receiver, args, result);