summaryrefslogtreecommitdiff
path: root/src/compiler_llvm/gbc_expander.cc
diff options
context:
space:
mode:
author TDYa127 <tdy@google.com> 2012-09-26 16:03:51 -0700
committer TDYa127 <tdy@google.com> 2012-09-26 16:05:33 -0700
commit823433dbf4afec17169d5ca738031af5b374e140 (patch)
tree74a1c19c016ce7bf63b043d161d96a56f4b71688 /src/compiler_llvm/gbc_expander.cc
parent4d980b0e085ea59bc243da3eff5ea84acc7afc24 (diff)
Corresponding CL of thread flags for portable.
Change-Id: I6ad0c6159115e0d8879e0d9d674d760cd48f29c9
Diffstat (limited to 'src/compiler_llvm/gbc_expander.cc')
-rw-r--r--src/compiler_llvm/gbc_expander.cc19
1 files changed, 1 insertions, 18 deletions
diff --git a/src/compiler_llvm/gbc_expander.cc b/src/compiler_llvm/gbc_expander.cc
index bcca08d654..8750c0bed2 100644
--- a/src/compiler_llvm/gbc_expander.cc
+++ b/src/compiler_llvm/gbc_expander.cc
@@ -161,8 +161,6 @@ class GBCExpanderPass : public llvm::FunctionPass {
void Expand_MarkGCCard(llvm::CallInst& call_inst);
- llvm::Value* Expand_GetException();
-
llvm::Value* Expand_LoadStringFromDexCache(llvm::Value* string_idx_value);
llvm::Value* Expand_LoadTypeFromDexCache(llvm::Value* type_idx_value);
@@ -775,21 +773,6 @@ void GBCExpanderPass::Expand_MarkGCCard(llvm::CallInst& call_inst) {
return;
}
-llvm::Value* GBCExpanderPass::Expand_GetException() {
- // Get thread-local exception field address
- llvm::Value* exception_object_addr =
- irb_.Runtime().EmitLoadFromThreadOffset(art::Thread::ExceptionOffset().Int32Value(),
- irb_.getJObjectTy(),
- kTBAAJRuntime);
-
- // Set thread-local exception field address to NULL
- irb_.Runtime().EmitStoreToThreadOffset(art::Thread::ExceptionOffset().Int32Value(),
- irb_.getJNull(),
- kTBAAJRuntime);
-
- return exception_object_addr;
-}
-
llvm::Value*
GBCExpanderPass::Expand_LoadStringFromDexCache(llvm::Value* string_idx_value) {
uint32_t string_idx =
@@ -2721,7 +2704,7 @@ GBCExpanderPass::ExpandIntrinsic(IntrinsicHelper::IntrinsicId intr_id,
return NULL;
}
case IntrinsicHelper::GetException: {
- return Expand_GetException();
+ return irb_.Runtime().EmitGetAndClearException();
}
case IntrinsicHelper::IsExceptionPending: {
return irb_.Runtime().EmitIsExceptionPending();