Fix manyargs test

Had the src & dst backwards in the argument copying case > 20 arguments.

Change-Id: I0247c4ac2992d4505277a773cfbf65edc7d57695
diff --git a/build/Android.oattest.mk b/build/Android.oattest.mk
index 739e961..79b2b97 100644
--- a/build/Android.oattest.mk
+++ b/build/Android.oattest.mk
@@ -66,8 +66,7 @@
 
 $(eval $(call declare-test-test-target,HelloWorld,))
 $(eval $(call declare-test-test-target,Fibonacci,10))
-# TODO: enable this when manyArgs is passing (and remove compiler_test IntMath test cases)
-#$(eval $(call declare-test-test-target,IntMath,))
+$(eval $(call declare-test-test-target,IntMath,))
 $(eval $(call declare-test-test-target,ExceptionTest,))
 $(eval $(call declare-test-test-target,SystemMethods,))
 
diff --git a/src/compiler/codegen/arm/MethodCodegenDriver.cc b/src/compiler/codegen/arm/MethodCodegenDriver.cc
index 1b7e4ed..f42237a 100644
--- a/src/compiler/codegen/arm/MethodCodegenDriver.cc
+++ b/src/compiler/codegen/arm/MethodCodegenDriver.cc
@@ -830,9 +830,9 @@
     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);