Implement X86 trampoline for llvm compiler.
Change-Id: I0c6ec3a59eaebd5e28ca8e95f2711a31b79b9279
diff --git a/src/object.cc b/src/object.cc
index 5413194..d91e70c 100644
--- a/src/object.cc
+++ b/src/object.cc
@@ -549,16 +549,20 @@
self->PushNativeToManagedRecord(&record);
#endif
-#if defined(ART_USE_LLVM_COMPILER)
- art_fix_stub_from_code(const_cast<Method*>(this));
-#endif
-
// Call the invoke stub associated with the method.
// Pass everything as arguments.
const Method::InvokeStub* stub = GetInvokeStub();
bool have_executable_code = (GetCode() != NULL);
+#if defined(ART_USE_LLVM_COMPILER)
+ if (stub == NULL || !have_executable_code) {
+ Runtime::Current()->GetClassLinker()->LinkOatCodeFor(const_cast<Method*>(this));
+ stub = GetInvokeStub();
+ have_executable_code = (GetCode() != NULL);
+ }
+#endif
+
if (Runtime::Current()->IsStarted() && have_executable_code && stub != NULL) {
bool log = false;
if (log) {