Add more Thread to runtime support llvm.
Change-Id: I0ee7c841f7b287126fa1ba8db5983a9fa2a1f04f
diff --git a/src/compiler_llvm/method_compiler.cc b/src/compiler_llvm/method_compiler.cc
index e16d522..b128693 100644
--- a/src/compiler_llvm/method_compiler.cc
+++ b/src/compiler_llvm/method_compiler.cc
@@ -1442,13 +1442,15 @@
llvm::Value* method_object_addr = EmitLoadMethodObjectAddr();
+ llvm::Value* thread_object_addr = irb_.CreateCall(irb_.GetRuntime(GetCurrentThread));
+
llvm::Function* runtime_func =
irb_.GetRuntime(InitializeTypeAndVerifyAccess);
EmitUpdateDexPC(dex_pc);
llvm::Value* type_object_addr =
- irb_.CreateCall2(runtime_func, type_idx_value, method_object_addr);
+ irb_.CreateCall3(runtime_func, type_idx_value, method_object_addr, thread_object_addr);
EmitGuard_ExceptionLandingPad(dex_pc);
@@ -1488,10 +1490,12 @@
llvm::Value* method_object_addr = EmitLoadMethodObjectAddr();
+ llvm::Value* thread_object_addr = irb_.CreateCall(irb_.GetRuntime(GetCurrentThread));
+
EmitUpdateDexPC(dex_pc);
llvm::Value* loaded_type_object_addr =
- irb_.CreateCall2(runtime_func, type_idx_value, method_object_addr);
+ irb_.CreateCall3(runtime_func, type_idx_value, method_object_addr, thread_object_addr);
EmitGuard_ExceptionLandingPad(dex_pc);
@@ -1537,7 +1541,9 @@
EmitUpdateDexPC(dex_pc);
- irb_.CreateCall(irb_.GetRuntime(LockObject), object_addr);
+ llvm::Value* thread_object_addr = irb_.CreateCall(irb_.GetRuntime(GetCurrentThread));
+
+ irb_.CreateCall2(irb_.GetRuntime(LockObject), object_addr, thread_object_addr);
EmitGuard_ExceptionLandingPad(dex_pc);
irb_.CreateBr(GetNextBasicBlock(dex_pc));
@@ -1556,7 +1562,9 @@
EmitUpdateDexPC(dex_pc);
- irb_.CreateCall(irb_.GetRuntime(UnlockObject), object_addr);
+ llvm::Value* thread_object_addr = irb_.CreateCall(irb_.GetRuntime(GetCurrentThread));
+
+ irb_.CreateCall2(irb_.GetRuntime(UnlockObject), object_addr, thread_object_addr);
EmitGuard_ExceptionLandingPad(dex_pc);
irb_.CreateBr(GetNextBasicBlock(dex_pc));
@@ -2541,10 +2549,12 @@
llvm::Value* method_object_addr = EmitLoadMethodObjectAddr();
+ llvm::Value* thread_object_addr = irb_.CreateCall(irb_.GetRuntime(GetCurrentThread));
+
EmitUpdateDexPC(dex_pc);
llvm::Value* loaded_storage_object_addr =
- irb_.CreateCall2(runtime_func, type_idx_value, method_object_addr);
+ irb_.CreateCall3(runtime_func, type_idx_value, method_object_addr, thread_object_addr);
EmitGuard_ExceptionLandingPad(dex_pc);