Enable virtual invokes, use new alloc, misc

Make use of the new alloc routines.  Extended the filter to allow
simple virtual invoke test to get through.  Fixed a register allocation
problem.

Note that the invoke sequeces are still the verbose & long path.
Will start using the new CodeandDirectMethods mechanism in upcoming CL

Change-Id: I8ff79f6392ff3da14d7679dcf65029ae48f18eba
diff --git a/src/thread.h b/src/thread.h
index 215da71..6e145fd 100644
--- a/src/thread.h
+++ b/src/thread.h
@@ -198,13 +198,14 @@
   int (*pIdiv)(int, int);
   long long (*pLmul)(long long, long long);
   long long (*pLdivmod)(long long, long long);
+  Array* (*pAllocFromCode)(uint32_t, Method*, int32_t);
+  Object* (*pNewInstanceFromCode)(uint32_t, Method*);
   bool (*pArtUnlockObject)(struct Thread*, struct Object*);
   bool (*pArtCanPutArrayElementNoThrow)(const struct ClassObject*,
                  const struct ClassObject*);
   int (*pArtInstanceofNonTrivialNoThrow) (const struct ClassObject*,
                 const struct ClassObject*);
   int (*pArtInstanceofNonTrivial) (const struct ClassObject*, const struct ClassObject*);
-  Array* (*pArtAllocArrayByClass)(Class*, int32_t);
   struct Method* (*pArtFindInterfaceMethodInCache)(ClassObject*, uint32_t,
                            const struct Method*, struct DvmDex*);
   bool (*pArtUnlockObjectNoThrow)(struct Thread*, struct Object*);