Home | History | Annotate | Download | only in quick

Lines Matching defs:method

29 #include "mirror/method.h"
40 // Number of bytes for each out register in the caller method's frame.
53 // | Method* | ---
63 // | Method* | <- sp
88 // | Method* | ---
100 // | Method* | <- sp
125 // | Method* | ---
131 // | A0/Method* | <- sp
153 // | Method* | ---
172 // | A0/Method* | <- sp
199 // | Method* | ---
209 // | EAX/Method* | <- sp
228 // | Method* | ---
250 // | RDI/Method* | <- sp
280 // kRefAndArgs runtime method. Since 'this' is a reference, it is located in the
396 // (a) 'stack_args_' should point to the first method's argument
542 // Returns the 'this' object of a proxy method. This function is only used by StackVisitor. It
598 extern "C" uint64_t artQuickToInterpreterBridge(ArtMethod* method, Thread* self, ArtMethod** sp)
604 if (method->IsAbstract()) {
605 ThrowAbstractMethodError(method);
608 DCHECK(!method->IsNative()) << PrettyMethod(method);
611 const DexFile::CodeItem* code_item = method->GetCodeItem();
612 DCHECK(code_item != nullptr) << PrettyMethod(method);
616 ShadowFrame* shadow_frame(ShadowFrame::Create(num_regs, nullptr, method, 0, memory));
619 auto* non_proxy_method = method->GetInterfaceMethodIfProxy(sizeof(void*));
621 BuildQuickShadowFrameVisitor shadow_frame_builder(sp, method->IsStatic(), shorty, shorty_len,
625 method->IsStatic() && !method->GetDeclaringClass()->IsInitialized();
633 // Ensure static method's class is initialized.
653 // No need to restore the args since the method has already been run by the interpreter.
721 // Handler for invocation on proxy methods. On entry a frame will exist for the proxy object method
743 // Create local ref. copies of proxy method and the receiver.
759 // Convert proxy method into expected interface method.
765 mirror::Method::CreateFromArtMethod(soa.Self(), interface_method));
813 // Lazily resolve a method for quick. Called by stub code.
822 const char* old_cause = self->StartAssertNoThreadSuspension("Quick method resolution set up");
824 // Compute details about the called method (avoid GCs)
898 // Resolve method filling in dex cache.
909 // Incompatible class change should have been handled in resolve method.
913 // Refine called method based on receiver.
927 // We came here because of sharpening. Ensure the dex cache is up-to-date on the method index
928 // of the sharpened method avoiding dirtying the dex cache if possible.
929 // Note, called_method.dex_method_index references the dex method before the
934 // Calling from one dex file to another, need to compute the method index appropriate to
936 // method, we've got the correct dex_file and a dex_method_idx from above.
952 // For static invokes, we may dispatch to the static method in the superclass but resolve
954 // resolved method for the super class dex method index if we are in the same dex file.
962 // Ensure that the called method's class is initialized.
968 // If we are single-stepping or the called method is deoptimized (by a
969 // breakpoint, for example), then we have to execute the called method
975 // method. Because we do not want to execute the called method with the
977 // When the called method returns, it will execute the instrumentation
987 // If we are single-stepping or the called method is deoptimized (by a
988 // breakpoint, for example), then we have to execute the called method
1006 // Place called method in callee-save frame to be placed as first argument to quick method.
1490 ArtMethod* method = **m;
1497 // We have to squeeze in the HandleScope, and relocate the method pointer.
1499 // "Free" the slot for the method.
1502 // Under the callee saves put handle scope and new method stack reference.
1514 // Add a slot for the method pointer, and fill it. Fix the pointer-pointer given to us.
1517 *new_method_ref = method;
1532 // We have to squeeze in the HandleScope, and relocate the method pointer.
1535 // The bottom of the callee-save frame is now where the method is, *m.
1544 // WARNING: After this, *sp won't be pointing to the method anymore!
1938 // for the method pointer.
1952 ArtMethod* method = FindMethodFast(method_idx, this_object, caller_method, access_check, type);
1953 if (UNLIKELY(method == nullptr)) {
1962 method = FindMethodFromCode<type, access_check>(method_idx, &this_object, &caller_method,
1967 if (UNLIKELY(method == nullptr)) {
1973 const void* code = method->GetEntryPointFromQuickCompiledCode();
1976 DCHECK(code != nullptr) << "Code was null in method: " << PrettyMethod(method)
1978 << method->GetDexFile()->GetLocation();
1981 reinterpret_cast<uintptr_t>(method));
2054 ArtMethod* method;
2056 method = this_object->GetClass()->FindVirtualMethodForInterface(
2058 if (UNLIKELY(method == nullptr)) {
2097 method = FindMethodFromCode<kInterface, false>(dex_method_idx, &this_object, &caller_method,
2102 if (UNLIKELY(method == nullptr)) {
2107 const void* code = method->GetEntryPointFromQuickCompiledCode();
2110 DCHECK(code != nullptr) << "Code was null in method: " << PrettyMethod(method)
2111 << " location: " << method->GetDexFile()->GetLocation();
2114 reinterpret_cast<uintptr_t>(method));