summaryrefslogtreecommitdiff
path: root/src/compiler_llvm/jni_compiler.cc
diff options
context:
space:
mode:
author TDYa127 <tdy@google.com> 2012-05-27 20:49:31 -0700
committer Shih-wei Liao <sliao@google.com> 2012-05-30 16:10:11 -0700
commit0de52be83fc634d1407d8574986e8014de1df4fa (patch)
tree8ae618f94b59174459b0332ad7608cab4933cf8b /src/compiler_llvm/jni_compiler.cc
parente21021411bcab601692815ea13696f7426ac026e (diff)
Remove data dependency of push/pop shadow frame.
Change-Id: I883a1082190084ddfa4a09b8953ac9dafa256e7e
Diffstat (limited to 'src/compiler_llvm/jni_compiler.cc')
-rw-r--r--src/compiler_llvm/jni_compiler.cc5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/compiler_llvm/jni_compiler.cc b/src/compiler_llvm/jni_compiler.cc
index 4b9fb052b2..c76c80d88b 100644
--- a/src/compiler_llvm/jni_compiler.cc
+++ b/src/compiler_llvm/jni_compiler.cc
@@ -136,7 +136,8 @@ CompiledMethod* JniCompiler::Compile() {
// Push the shadow frame
llvm::Value* shadow_frame_upcast = irb_.CreateConstGEP2_32(shadow_frame_, 0, 0);
- irb_.CreateCall(irb_.GetRuntime(PushShadowFrame), shadow_frame_upcast);
+ llvm::Value* old_shadow_frame =
+ irb_.CreateCall(irb_.GetRuntime(PushShadowFrame), shadow_frame_upcast);
// Get JNIEnv
llvm::Value* jni_env_object_addr =
@@ -271,7 +272,7 @@ CompiledMethod* JniCompiler::Compile() {
kTBAARuntimeInfo);
// Pop the shadow frame
- irb_.CreateCall(irb_.GetRuntime(PopShadowFrame));
+ irb_.CreateCall(irb_.GetRuntime(PopShadowFrame), old_shadow_frame);
// Return!
if (return_shorty != 'V') {