Refactor runtime support builder.
Also, add inline assembly for load offset from current thread.
Change-Id: I5c32c04a5ab9a8574acbaf8ee3e08761ebe33d4f
diff --git a/src/compiler_llvm/upcall_compiler.cc b/src/compiler_llvm/upcall_compiler.cc
index 37dc981..0f3a92e 100644
--- a/src/compiler_llvm/upcall_compiler.cc
+++ b/src/compiler_llvm/upcall_compiler.cc
@@ -91,7 +91,7 @@
llvm::Value* retval_addr = arg_iter++;
// Setup thread pointer
- irb_.CreateCall(irb_.GetRuntime(SetCurrentThread), thread_object_addr);
+ irb_.Runtime().EmitSetCurrentThread(thread_object_addr);
// Accurate function type
llvm::Type* accurate_ret_type = irb_.getJType(shorty[0], kAccurate);
@@ -158,7 +158,7 @@
llvm::Value* code_addr = irb_.CreatePointerCast(result, accurate_func_type->getPointerTo());
// Exception unwind.
- llvm::Value* exception_pending = irb_.CreateCall(irb_.GetRuntime(IsExceptionPending));
+ llvm::Value* exception_pending = irb_.Runtime().EmitIsExceptionPending();
llvm::BasicBlock* block_unwind = llvm::BasicBlock::Create(*context_, "exception_unwind", func);
llvm::BasicBlock* block_cont = llvm::BasicBlock::Create(*context_, "cont", func);
irb_.CreateCondBr(exception_pending, block_unwind, block_cont);