< prev index next > src/hotspot/cpu/aarch64/methodHandles_aarch64.cpp
Print this page
__ ldr(rscratch1, Address(method, Method::interpreter_entry_offset()));
__ br(rscratch1);
__ BIND(run_compiled_code);
}
! const ByteSize entry_offset = for_compiler_entry ? Method::from_compiled_offset() :
Method::from_interpreted_offset();
__ ldr(rscratch1,Address(method, entry_offset));
__ br(rscratch1);
__ bind(L_no_such_method);
__ far_jump(RuntimeAddress(SharedRuntime::throw_AbstractMethodError_entry()));
__ ldr(rscratch1, Address(method, Method::interpreter_entry_offset()));
__ br(rscratch1);
__ BIND(run_compiled_code);
}
! // The following jump might pass an inline type argument that was erased to Object as oop to a
+ // callee that expects inline type arguments to be passed as fields. We need to call the compiled
+ // value entry (_code->inline_entry_point() or _adapter->c2i_inline_entry()) which will take care
+ // of translating between the calling conventions.
+ const ByteSize entry_offset = for_compiler_entry ? Method::from_compiled_inline_offset() :
Method::from_interpreted_offset();
__ ldr(rscratch1,Address(method, entry_offset));
__ br(rscratch1);
__ bind(L_no_such_method);
__ far_jump(RuntimeAddress(SharedRuntime::throw_AbstractMethodError_entry()));
< prev index next >