Add Thread to some runtime support.
Change-Id: Ic88e4a17126d2902d26e84009848c36fef7a9075
diff --git a/src/compiler_llvm/method_compiler.cc b/src/compiler_llvm/method_compiler.cc
index fa8a827..556dd51 100644
--- a/src/compiler_llvm/method_compiler.cc
+++ b/src/compiler_llvm/method_compiler.cc
@@ -1736,10 +1736,12 @@
llvm::Value* method_object_addr = EmitLoadMethodObjectAddr();
+ llvm::Value* thread_object_addr = irb_.CreateCall(irb_.GetRuntime(GetCurrentThread));
+
EmitUpdateLineNumFromDexPC(dex_pc);
llvm::Value* object_addr =
- irb_.CreateCall2(runtime_func, type_index_value, method_object_addr);
+ irb_.CreateCall3(runtime_func, type_index_value, method_object_addr, thread_object_addr);
EmitGuard_ExceptionLandingPad(dex_pc);
@@ -1777,11 +1779,13 @@
llvm::Value* method_object_addr = EmitLoadMethodObjectAddr();
+ llvm::Value* thread_object_addr = irb_.CreateCall(irb_.GetRuntime(GetCurrentThread));
+
EmitUpdateLineNumFromDexPC(dex_pc);
llvm::Value* object_addr =
- irb_.CreateCall3(runtime_func, type_index_value, method_object_addr,
- array_length_value);
+ irb_.CreateCall4(runtime_func, type_index_value, method_object_addr,
+ array_length_value, thread_object_addr);
EmitGuard_ExceptionLandingPad(dex_pc);
@@ -3074,13 +3078,16 @@
llvm::Value* caller_method_object_addr = EmitLoadMethodObjectAddr();
+ llvm::Value* thread_object_addr = irb_.CreateCall(irb_.GetRuntime(GetCurrentThread));
+
EmitUpdateLineNumFromDexPC(dex_pc);
llvm::Value* callee_method_object_addr =
- irb_.CreateCall3(runtime_func,
+ irb_.CreateCall4(runtime_func,
callee_method_idx_value,
this_addr,
- caller_method_object_addr);
+ caller_method_object_addr,
+ thread_object_addr);
EmitGuard_ExceptionLandingPad(dex_pc);