summaryrefslogtreecommitdiff
path: root/src/compiler_llvm/method_compiler.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler_llvm/method_compiler.cc')
-rw-r--r--src/compiler_llvm/method_compiler.cc11
1 files changed, 1 insertions, 10 deletions
diff --git a/src/compiler_llvm/method_compiler.cc b/src/compiler_llvm/method_compiler.cc
index 61fffbe238..ca9cbdf410 100644
--- a/src/compiler_llvm/method_compiler.cc
+++ b/src/compiler_llvm/method_compiler.cc
@@ -1257,16 +1257,7 @@ void MethodCompiler::EmitInsn_MoveException(uint32_t dex_pc,
DecodedInstruction dec_insn(insn);
- // Get thread-local exception field address
- llvm::Value* exception_object_addr =
- irb_.Runtime().EmitLoadFromThreadOffset(Thread::ExceptionOffset().Int32Value(),
- irb_.getJObjectTy(),
- kTBAAJRuntime);
-
- // Set thread-local exception field address to NULL
- irb_.Runtime().EmitStoreToThreadOffset(Thread::ExceptionOffset().Int32Value(),
- irb_.getJNull(),
- kTBAAJRuntime);
+ llvm::Value* exception_object_addr = irb_.Runtime().EmitGetAndClearException();
// Keep the exception object in the Dalvik register
EmitStoreDalvikReg(dec_insn.vA, kObject, kAccurate, exception_object_addr);