summaryrefslogtreecommitdiff
path: root/src/compiler/codegen/arm/MethodCodegenDriver.cc
diff options
context:
space:
mode:
author buzbee <buzbee@google.com> 2011-09-21 18:40:28 -0700
committer Android (Google) Code Review <android-gerrit@google.com> 2011-09-21 18:40:28 -0700
commitae7cbf45460b472dbd159ab565d55b2880703abb (patch)
tree06df332a557297d987395fa341a951375b84a1aa /src/compiler/codegen/arm/MethodCodegenDriver.cc
parent33203b59aa5f27bac0433bdb640f1f1e911186eb (diff)
parent010cffc1b8d64a4afc1943729642477a16e9c3fb (diff)
Merge "Restore Method* following invoke with > 20 args" into dalvik-dev
Diffstat (limited to 'src/compiler/codegen/arm/MethodCodegenDriver.cc')
-rw-r--r--src/compiler/codegen/arm/MethodCodegenDriver.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/compiler/codegen/arm/MethodCodegenDriver.cc b/src/compiler/codegen/arm/MethodCodegenDriver.cc
index 8dc388c7e3..ce658033ea 100644
--- a/src/compiler/codegen/arm/MethodCodegenDriver.cc
+++ b/src/compiler/codegen/arm/MethodCodegenDriver.cc
@@ -849,6 +849,8 @@ static int genDalvikArgsRange(CompilationUnit* cUnit, MIR* mir,
loadWordDisp(cUnit, rSELF, OFFSETOF_MEMBER(Thread, pMemcpy), rLR);
loadConstant(cUnit, r2, (numArgs - 3) * 4);
callNoUnwindHelper(cUnit, rLR);
+ // Restore Method*
+ loadCurrMethodDirect(cUnit, r0);
} else {
// Use vldm/vstm pair using r3 as a temp
int regsLeft = std::min(numArgs - 3, 16);