summaryrefslogtreecommitdiff
path: root/src/compiler/codegen/arm/MethodCodegenDriver.cc
diff options
context:
space:
mode:
author buzbee <buzbee@google.com> 2011-09-18 20:19:14 -0700
committer buzbee <buzbee@google.com> 2011-09-18 21:04:18 -0700
commitc0fe6c7dcc3d5269d2c7dcffafe8b0741f6b8bca (patch)
treed069d52ede0ce006827f789935a6395d30b6ae92 /src/compiler/codegen/arm/MethodCodegenDriver.cc
parent081be7fcd72490937e188e9ef56e72df06b7b006 (diff)
Fix manyargs test
Had the src & dst backwards in the argument copying case > 20 arguments. Change-Id: I0247c4ac2992d4505277a773cfbf65edc7d57695
Diffstat (limited to 'src/compiler/codegen/arm/MethodCodegenDriver.cc')
-rw-r--r--src/compiler/codegen/arm/MethodCodegenDriver.cc6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/compiler/codegen/arm/MethodCodegenDriver.cc b/src/compiler/codegen/arm/MethodCodegenDriver.cc
index 1b7e4ed1a4..f42237a235 100644
--- a/src/compiler/codegen/arm/MethodCodegenDriver.cc
+++ b/src/compiler/codegen/arm/MethodCodegenDriver.cc
@@ -830,9 +830,9 @@ static int genDalvikArgsRange(CompilationUnit* cUnit, MIR* mir,
int startOffset = cUnit->regLocation[mir->ssaRep->uses[3]].spOffset;
int outsOffset = 4 /* Method* */ + (3 * 4);
if (numArgs >= 20) {
- // Generate memcpy, but first make sure all of
- opRegRegImm(cUnit, kOpAdd, r0, rSP, startOffset);
- opRegRegImm(cUnit, kOpAdd, r1, rSP, outsOffset);
+ // Generate memcpy
+ opRegRegImm(cUnit, kOpAdd, r0, rSP, outsOffset);
+ opRegRegImm(cUnit, kOpAdd, r1, rSP, startOffset);
loadWordDisp(cUnit, rSELF, OFFSETOF_MEMBER(Thread, pMemcpy), rLR);
loadConstant(cUnit, r2, (numArgs - 3) * 4);
callNoUnwindHelper(cUnit, rLR);