Implement direct apk -> boot calling

Also sharpen super calls.

Change-Id: Ie4d3ab2cbf2961a06ec86762a53132f49a4ed922
diff --git a/src/compiler.h b/src/compiler.h
index aa32854..f5f5f9f 100644
--- a/src/compiler.h
+++ b/src/compiler.h
@@ -115,7 +115,7 @@
 
   // Can we fastpath a interface, super class or virtual method call? Computes method's vtable index
   bool ComputeInvokeInfo(uint32_t method_idx, OatCompilationUnit* mUnit, InvokeType& type,
-                         int& vtable_idx);
+                         int& vtable_idx, uintptr_t& direct_code, uintptr_t& direct_method);
 
 #if defined(ART_USE_LLVM_COMPILER)
   void SetElfFileName(std::string const& filename);
@@ -134,6 +134,10 @@
 
  private:
 
+  // Compute constant code and method pointers when possible
+  void GetCodeAndMethodForDirectCall(InvokeType type, InvokeType sharp_type,Method* method,
+                                     uintptr_t& direct_code, uintptr_t& direct_method);
+
   // Checks if class specified by type_idx is one of the image_classes_
   bool IsImageClass(const std::string& descriptor) const;