Move 64-bit multiplication to helper

We're right on the edge for supporting inline 64-bit arithmetic
with our current temp register pool allocation.  Moving 64-bit multiplication
out of line to sidestep the problem, and added some temp frees to
3-operand long ops.  In the latter case there was a potential problem
if the result long was located in a part of the frame not in the range
of a single base+displacement store.

Change-Id: I6f8e0a11b440ed35e08f2e3457de6cbea89cfccc
diff --git a/src/compiler_test.cc b/src/compiler_test.cc
index 2a47936..6a2f81e 100644
--- a/src/compiler_test.cc
+++ b/src/compiler_test.cc
@@ -172,7 +172,7 @@
 TEST_F(CompilerTest, LongOperTest) {
   CompileDex(kIntMathDex, "kIntMathDex");
   AssertStaticIntMethod("IntMath", "longOperTest", "(JJ)I", 0,
-                        70000000000LL, 3);
+                        70000000000LL, -3LL);
 }
 
 TEST_F(CompilerTest, LongShiftTest) {
@@ -235,7 +235,7 @@
                         19, 20LL, 21LL, 22, 23, 24, 25, 26);
 }
 
-#if 0 // White-list needs some work, must allow some virtual methods through
+#if 0 // Need bdc's new Alloc(Method*, type_idx, [length])
 TEST_F(CompilerTest, VirtualCall) {
   CompileDex(kIntMathDex, "kIntMathDex");
   AssertStaticIntMethod("IntMath", "staticCall", "(I)I", 6,