Lines Matching refs:self

75 static inline void DoMonitorEnter(Thread* self, ShadowFrame* frame, ObjPtr<mirror::Object> ref)  in DoMonitorEnter()  argument
79 StackHandleScope<1> hs(self); in DoMonitorEnter()
81 h_ref->MonitorEnter(self); in DoMonitorEnter()
82 DCHECK(self->HoldsLock(h_ref.Get())); in DoMonitorEnter()
83 if (UNLIKELY(self->IsExceptionPending())) { in DoMonitorEnter()
84 bool unlocked = h_ref->MonitorExit(self); in DoMonitorEnter()
89 frame->GetLockCountData().AddMonitor(self, h_ref.Get()); in DoMonitorEnter()
94 static inline void DoMonitorExit(Thread* self, ShadowFrame* frame, ObjPtr<mirror::Object> ref) in DoMonitorExit() argument
97 StackHandleScope<1> hs(self); in DoMonitorExit()
99 h_ref->MonitorExit(self); in DoMonitorExit()
101 frame->GetLockCountData().RemoveMonitorOrThrow(self, h_ref.Get()); in DoMonitorExit()
106 static inline bool DoMonitorCheckOnExit(Thread* self, ShadowFrame* frame) in DoMonitorCheckOnExit() argument
110 return frame->GetLockCountData().CheckAllMonitorsReleasedOrThrow(self); in DoMonitorCheckOnExit()
115 void AbortTransactionF(Thread* self, const char* fmt, ...)
119 void AbortTransactionV(Thread* self, const char* fmt, va_list args)
129 bool DoCall(ArtMethod* called_method, Thread* self, ShadowFrame& shadow_frame,
136 NO_INLINE bool CheckStackOverflow(Thread* self, size_t frame_size)
143 Thread* self,
159 static NO_INLINE void UnlockHeldMonitors(Thread* self, ShadowFrame* shadow_frame) in UnlockHeldMonitors() argument
169 DoMonitorExit<kMonitorCounting>(self, shadow_frame, *obj); in UnlockHeldMonitors()
184 self, shadow_frame, shadow_frame->GetVRegReference(*reg.dex_registers.begin())); in UnlockHeldMonitors()
198 Thread* self, in PerformNonStandardReturn() argument
207 StackHandleScope<1> hs(self); in PerformNonStandardReturn()
210 if (UNLIKELY(self->IsExceptionPending())) { in PerformNonStandardReturn()
212 << self->GetException()->Dump(); in PerformNonStandardReturn()
213 self->ClearException(); in PerformNonStandardReturn()
216 UnlockHeldMonitors<kMonitorCounting>(self, &frame); in PerformNonStandardReturn()
218 DoMonitorCheckOnExit<kMonitorCounting>(self, &frame); in PerformNonStandardReturn()
222 self, instrumentation, frame, h_thiz.Get(), frame.GetMethod(), dex_pc, result); in PerformNonStandardReturn()
232 static ALWAYS_INLINE bool DoInvoke(Thread* self, in DoInvoke() argument
239 if (is_mterp && self->UseMterp()) { in DoInvoke()
240 DCHECK(!self->ObserveAsyncException()); in DoInvoke()
241 } else if (UNLIKELY(self->ObserveAsyncException())) { in DoInvoke()
250 InterpreterCache* tls_cache = self->GetInterpreterCache(); in DoInvoke()
262 resolved_method = class_linker->ResolveMethod<resolve_mode>(self, method_idx, sf_method, type); in DoInvoke()
264 CHECK(self->IsExceptionPending()); in DoInvoke()
288 method_idx, resolved_method, &receiver, sf_method, self); in DoInvoke()
291 CHECK(self->IsExceptionPending()); in DoInvoke()
310 jit->NotifyInterpreterToCompiledCodeTransition(self, sf_method); in DoInvoke()
312 return !self->IsExceptionPending(); in DoInvoke()
320 if (is_mterp && self->UseMterp()) { in DoInvoke()
349 if (UNLIKELY(!CheckStackOverflow(self, ShadowFrame::ComputeSize(num_regs)))) { in DoInvoke()
354 jit->AddSamples(self, called_method, 1, /* with_backedges */false); in DoInvoke()
358 const char* old_cause = self->StartAssertNoThreadSuspension("DoFastInvoke"); in DoInvoke()
376 self->PushShadowFrame(new_shadow_frame); in DoInvoke()
377 self->EndAssertNoThreadSuspension(old_cause); in DoInvoke()
381 DCheckStaticState(self, called_method); in DoInvoke()
384 if (!self->UseMterp()) { in DoInvoke()
386 ExecuteSwitchImpl<false, false>(self, accessor, *new_shadow_frame, *result, false); in DoInvoke()
389 if (ExecuteMterpImpl(self, accessor.Insns(), new_shadow_frame, result)) { in DoInvoke()
393 *result = ExecuteSwitchImpl<false, false>(self, accessor, *new_shadow_frame, *result, true); in DoInvoke()
399 self->PopShadowFrame(); in DoInvoke()
401 return !self->IsExceptionPending(); in DoInvoke()
404 return DoCall<is_range, do_access_check>(called_method, self, shadow_frame, inst, inst_data, in DoInvoke()
408 static inline ObjPtr<mirror::MethodHandle> ResolveMethodHandle(Thread* self, in ResolveMethodHandle() argument
413 return class_linker->ResolveMethodHandle(self, method_handle_index, referrer); in ResolveMethodHandle()
416 static inline ObjPtr<mirror::MethodType> ResolveMethodType(Thread* self, in ResolveMethodType() argument
421 return class_linker->ResolveMethodType(self, method_type_index, referrer); in ResolveMethodType()
425 bool Do ## Name(Thread* self, \
437 bool DoInvokePolymorphic(Thread* self,
444 bool DoInvokeCustom(Thread* self,
453 bool DoInvokeCustom(Thread* self, in DoInvokeCustom() argument
462 return DoInvokeCustom(self, shadow_frame, call_site_idx, &operands, result); in DoInvokeCustom()
467 return DoInvokeCustom(self, shadow_frame, call_site_idx, &operands, result); in DoInvokeCustom()
508 ALWAYS_INLINE bool DoFieldGet(Thread* self, ShadowFrame& shadow_frame, const Instruction* inst, in DoFieldGet() argument
513 FindFieldFromCode<find_type, do_access_check>(field_idx, shadow_frame.GetMethod(), self, in DoFieldGet()
516 CHECK(self->IsExceptionPending()); in DoFieldGet()
523 if (Runtime::Current()->GetTransaction()->ReadConstraint(self, obj)) { in DoFieldGet()
524 Runtime::Current()->AbortTransactionAndThrowAbortError(self, "Can't read static fields of " in DoFieldGet()
538 if (UNLIKELY(!DoFieldGetCommon<field_type>(self, shadow_frame, obj, f, &result))) { in DoFieldGet()
540 CHECK(self->IsExceptionPending()); in DoFieldGet()
594 Thread* self = Thread::Current(); in DoIGetQuick() local
595 StackHandleScope<1> hs(self); in DoIGetQuick()
598 instrumentation->FieldReadEvent(self, in DoIGetQuick()
603 if (UNLIKELY(self->IsExceptionPending())) { in DoIGetQuick()
638 static inline bool CheckWriteConstraint(Thread* self, ObjPtr<mirror::Object> obj) in CheckWriteConstraint() argument
641 if (runtime->GetTransaction()->WriteConstraint(self, obj)) { in CheckWriteConstraint()
646 runtime->AbortTransactionAndThrowAbortError(self, base_msg + obj->PrettyTypeOf()); in CheckWriteConstraint()
652 static inline bool CheckWriteValueConstraint(Thread* self, ObjPtr<mirror::Object> value) in CheckWriteValueConstraint() argument
655 if (runtime->GetTransaction()->WriteValueConstraint(self, value)) { in CheckWriteValueConstraint()
660 runtime->AbortTransactionAndThrowAbortError(self, msg); in CheckWriteValueConstraint()
670 ALWAYS_INLINE bool DoFieldPut(Thread* self, const ShadowFrame& shadow_frame, in DoFieldPut() argument
677 FindFieldFromCode<find_type, do_access_check>(field_idx, shadow_frame.GetMethod(), self, in DoFieldPut()
680 CHECK(self->IsExceptionPending()); in DoFieldPut()
693 if (transaction_active && !CheckWriteConstraint(self, obj)) { in DoFieldPut()
702 !CheckWriteValueConstraint(self, value.GetL())) { in DoFieldPut()
706 return DoFieldPutCommon<field_type, do_assignability_check, transaction_active>(self, in DoFieldPut()
736 Thread* self = Thread::Current(); in DoIPutQuick() local
737 StackHandleScope<2> hs(self); in DoIPutQuick()
743 instrumentation->FieldWriteEvent(self, in DoIPutQuick()
749 if (UNLIKELY(self->IsExceptionPending())) { in DoIPutQuick()
790 static inline ObjPtr<mirror::String> ResolveString(Thread* self, in ResolveString() argument
796 StackHandleScope<1> hs(self); in ResolveString()
799 self, h_class, /*can_init_fields=*/ true, /*can_init_parents=*/ true))) { in ResolveString()
800 DCHECK(self->IsExceptionPending()); in ResolveString()
891 Thread* self, JValue* result);
963 bool MoveToExceptionHandler(Thread* self,
1007 void ArtInterpreterToCompiledCodeBridge(Thread* self,